From 7c04b6970da651ba61eb25fd3ded600e93ac41d4 Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Fri, 16 Nov 2018 01:03:26 -0800 Subject: [PATCH 01/18] npm audit fix --- package-lock.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0a64383..f9dba357 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9606,9 +9606,9 @@ } }, "mime": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { @@ -12408,8 +12408,7 @@ "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "mime": "1.3.x" + "loader-utils": "^1.0.2" } } } From d50847e501b86a5141244f90139d32353b11fdf1 Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Fri, 16 Nov 2018 01:24:12 -0800 Subject: [PATCH 02/18] Fixed up benchmark and preact watch port clash --- package.json | 5 +++-- rollup.benchmark.js | 2 +- rollup.config.js | 16 ++++++++-------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index f921f0f0..31cc2838 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,9 @@ "debugger:serve": "npx run-s debugger:build debugger:serve:nobuild", "debugger:serve:nobuild": "preact serve", "debugger:build": "preact build -p --src demo/debugger --no-prerender --service-worker false", - "benchmark:build": "npx rollup -c --environment PROD,BENCHMARK", - "benchmark:watch": "npx rollup -c -w --environment BENCHMARK", + "benchmark:build": "npx rollup -c --environment PROD,TS,BENCHMARK", + "benchmark:dev": "npm run benchmark:watch", + "benchmark:watch": "npx rollup -c -w --environment TS,BENCHMARK,SERVE", "demo:cname": "echo 'wasmboy.app' > build/CNAME", "demo:build": "npx run-s core:build lib:build debugger:build benchmark:build", "demo:dist": "cp -r dist/ build/dist", diff --git a/rollup.benchmark.js b/rollup.benchmark.js index c2043ae3..b0494090 100644 --- a/rollup.benchmark.js +++ b/rollup.benchmark.js @@ -40,7 +40,7 @@ let plugins = [ ]; let sourcemap = false; -if (process.env.ROLLUP_WATCH) { +if (process.env.SERVE) { plugins = [ ...plugins, serve({ diff --git a/rollup.config.js b/rollup.config.js index 25be110d..2e79c2bc 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -5,14 +5,14 @@ import coreTsBundles from './rollup.core'; import getCoreBundles from './rollup.getcore'; import benchmarkBundles from './rollup.benchmark'; -let exports = []; -if (process.env.BENCHMARK) { - exports = [...benchmarkBundles]; -} else { - exports = [...getCoreBundles, ...workerBundles, ...libBundles]; - if (process.env.TS) { - exports = [...coreTsBundles, ...exports]; - } +let exports = [...getCoreBundles, ...workerBundles, ...libBundles]; + +// Add TS Bundles +if (process.env.TS) { + exports = [...coreTsBundles, ...exports]; } +if (process.env.BENCHMARK) { + exports = [...exports, ...benchmarkBundles]; +} export default exports; From 7791867a01fe89ef40bee3901f20fb6fffb3e64f Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sat, 17 Nov 2018 01:11:16 -0800 Subject: [PATCH 03/18] Fixed up Halt and Interrupt Handling --- core/core.ts | 57 +- core/cpu/cpu.ts | 59 +- core/cpu/opcodes.ts | 2 +- core/interrupts/interrupts.ts | 76 +- core/portable/importObject.js | 6 +- dist/core/core.untouched.wasm | Bin 41408 -> 41606 bytes dist/core/core.untouched.wast | 1582 ++++++++++++++++++--------------- 7 files changed, 1006 insertions(+), 776 deletions(-) diff --git a/core/core.ts b/core/core.ts index 80b08b90..53b30668 100644 --- a/core/core.ts +++ b/core/core.ts @@ -284,36 +284,41 @@ export function executeStep(): i32 { // Set has started to 1 since we ran a emulation step hasStarted = true; + // Check if we are in the halt bug + if (Cpu.isHaltBug) { + // Need to run the next opcode twice + + // E.g + // 0x76 - halt + // FA 34 12 - ld a,(1234) + // Becomes + // FA FA 34 ld a,(34FA) + // 12 ld (de),a + + let haltBugOpcode: i32 = eightBitLoadFromGBMemory(Cpu.programCounter); + let haltBugCycles: i32 = executeOpcode(haltBugOpcode); + syncCycles(haltBugCycles); + Cpu.programCounter = u16Portable(Cpu.programCounter - 1); + Cpu.exitHalt(); + } + + // Interrupts should be handled before reading an opcode + // https://github.com/Gekkio/mooneye-gb/blob/master/docs/accuracy.markdown#what-is-the-exact-timing-of-cpu-servicing-an-interrupt + let interruptCycles: i32 = checkInterrupts(); + if (interruptCycles > 0) { + syncCycles(interruptCycles); + } + // Get the opcode, and additional bytes to be handled // Number of cycles defaults to 4, because while we're halted, we run 4 cycles (according to matt :)) let numberOfCycles: i32 = 4; let opcode: i32 = 0; - // Cpu Halting best explained: https://www.reddit.com/r/EmuDev/comments/5ie3k7/infinite_loop_trying_to_pass_blarggs_interrupt/db7xnbe/ - if (!Cpu.isHalted && !Cpu.isStopped) { + // If we are not halted or stopped, run instructions + // If we are halted, this will be skipped and just sync the 4 cycles + if (!Cpu.isHalted() && !Cpu.isStopped) { opcode = eightBitLoadFromGBMemory(Cpu.programCounter); numberOfCycles = executeOpcode(opcode); - } else { - // if we were halted, and interrupts were disabled but interrupts are pending, stop waiting - if (Cpu.isHalted && !Interrupts.masterInterruptSwitch && Interrupts.areInterruptsPending()) { - Cpu.isHalted = false; - Cpu.isStopped = false; - - // Need to run the next opcode twice, it's a bug menitoned in - // The reddit comment mentioned above - - // CTRL+F "low-power" on gameboy cpu manual - // http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf - // E.g - // 0x76 - halt - // FA 34 12 - ld a,(1234) - // Becomes - // FA FA 34 ld a,(34FA) - // 12 ld (de),a - opcode = eightBitLoadFromGBMemory(Cpu.programCounter); - numberOfCycles = executeOpcode(opcode); - Cpu.programCounter = u16Portable(Cpu.programCounter - 1); - } } // blarggFixes, don't allow register F to have the bottom nibble @@ -324,12 +329,6 @@ export function executeStep(): i32 { return numberOfCycles; } - // Interrupt Handling requires 20 cycles - // https://github.com/Gekkio/mooneye-gb/blob/master/docs/accuracy.markdown#what-is-the-exact-timing-of-cpu-servicing-an-interrupt - // Only check interrupts after an opcode is executed - // Since we don't want to mess up our PC as we are executing - numberOfCycles += checkInterrupts(); - // Sync other GB Components with the number of cycles syncCycles(numberOfCycles); diff --git a/core/cpu/cpu.ts b/core/cpu/cpu.ts index 3fc84bcc..02c18dab 100644 --- a/core/cpu/cpu.ts +++ b/core/cpu/cpu.ts @@ -10,7 +10,7 @@ import { loadBooleanDirectlyFromWasmMemory, storeBooleanDirectlyToWasmMemory } from '../memory/index'; - +import { Interrupts } from '../interrupts/index'; import { log, hexLog } from '../helpers/index'; // Everything Static as class instances just aren't quite there yet @@ -56,14 +56,49 @@ export class Cpu { return 70224; } + // Memory Location for the GBC Speed switch + static readonly memoryLocationSpeedSwitch: u16 = 0xff4d; + // HALT and STOP instructions need to stop running opcodes, but simply check timers // https://github.com/nakardo/node-gameboy/blob/master/lib/cpu/opcodes.js // Matt said is should work to, so it must work! - static isHalted: boolean = false; + // TCAGBD shows three different HALT states. Therefore, we need to handle each + static isHaltNormal: boolean = false; + static isHaltNoJump: boolean = false; + static isHaltBug: boolean = false; static isStopped: boolean = false; - // Memory Location for the GBC Speed switch - static readonly memoryLocationSpeedSwitch: u16 = 0xff4d; + // See section 4.10 of TCAGBD + // Cpu Halting explained: https://www.reddit.com/r/EmuDev/comments/5ie3k7/infinite_loop_trying_to_pass_blarggs_interrupt/db7xnbe/ + static enableHalt(): void { + if (Interrupts.masterInterruptSwitch) { + Cpu.isHaltNormal = true; + return; + } + + let haltTypeValue: i32 = Interrupts.interruptsEnabledValue & Interrupts.interruptsRequestedValue & 0x1f; + + if (haltTypeValue === 0) { + Cpu.isHaltNoJump = true; + return; + } + + Cpu.isHaltBug = true; + } + + static exitHalt(): void { + Cpu.isHaltNoJump = false; + Cpu.isHaltNormal = false; + Cpu.isHaltBug = false; + } + + static isHalted(): boolean { + if (Cpu.isHaltNormal || Cpu.isHaltNoJump) { + return true; + } + + return false; + } // Save States static readonly saveStateSlot: u16 = 0; @@ -85,8 +120,10 @@ export class Cpu { store(getSaveStateMemoryOffset(0x0c, Cpu.saveStateSlot), Cpu.currentCycles); - storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x11, Cpu.saveStateSlot), Cpu.isHalted); - storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x12, Cpu.saveStateSlot), Cpu.isStopped); + storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x11, Cpu.saveStateSlot), Cpu.isHaltNormal); + storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x12, Cpu.saveStateSlot), Cpu.isHaltNoJump); + storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x13, Cpu.saveStateSlot), Cpu.isHaltBug); + storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x14, Cpu.saveStateSlot), Cpu.isStopped); } // Function to load the save state from memory @@ -106,8 +143,10 @@ export class Cpu { Cpu.currentCycles = load(getSaveStateMemoryOffset(0x0c, Cpu.saveStateSlot)); - Cpu.isHalted = loadBooleanDirectlyFromWasmMemory(getSaveStateMemoryOffset(0x11, Cpu.saveStateSlot)); - Cpu.isStopped = loadBooleanDirectlyFromWasmMemory(getSaveStateMemoryOffset(0x12, Cpu.saveStateSlot)); + Cpu.isHaltNormal = loadBooleanDirectlyFromWasmMemory(getSaveStateMemoryOffset(0x11, Cpu.saveStateSlot)); + Cpu.isHaltNoJump = loadBooleanDirectlyFromWasmMemory(getSaveStateMemoryOffset(0x12, Cpu.saveStateSlot)); + Cpu.isHaltBug = loadBooleanDirectlyFromWasmMemory(getSaveStateMemoryOffset(0x13, Cpu.saveStateSlot)); + Cpu.isStopped = loadBooleanDirectlyFromWasmMemory(getSaveStateMemoryOffset(0x14, Cpu.saveStateSlot)); } } @@ -126,7 +165,9 @@ export function initializeCpu(): void { Cpu.stackPointer = 0; Cpu.programCounter = 0x00; Cpu.currentCycles = 0; - Cpu.isHalted = false; + Cpu.isHaltNormal = false; + Cpu.isHaltNoJump = false; + Cpu.isHaltBug = false; Cpu.isStopped = false; if (Cpu.GBCEnabled) { diff --git a/core/cpu/opcodes.ts b/core/cpu/opcodes.ts index f1a8a2bd..b59b6f01 100644 --- a/core/cpu/opcodes.ts +++ b/core/cpu/opcodes.ts @@ -1250,7 +1250,7 @@ function handleOpcode7x(opcode: i32): i32 { // Can't Halt during an HDMA // https://gist.github.com/drhelius/3394856 if (!Memory.isHblankHdmaActive) { - Cpu.isHalted = true; + Cpu.enableHalt(); } return 4; case 0x77: diff --git a/core/interrupts/interrupts.ts b/core/interrupts/interrupts.ts index 966ef5b1..57a4ce73 100644 --- a/core/interrupts/interrupts.ts +++ b/core/interrupts/interrupts.ts @@ -22,7 +22,7 @@ export class Interrupts { static readonly bitPositionTimerInterrupt: i32 = 2; static readonly bitPositionJoypadInterrupt: i32 = 4; - static readonly memoryLocationInterruptEnabled: i32 = 0xffff; + static readonly memoryLocationInterruptEnabled: i32 = 0xffff; // A.K.A interrupt Flag (IE) // Cache which Interrupts are enabled static interruptsEnabledValue: i32 = 0; static isVBlankInterruptEnabled: boolean = false; @@ -78,40 +78,59 @@ export class Interrupts { } } +// NOTE: Interrupts should be handled before reading an opcode export function checkInterrupts(): i32 { - if (Interrupts.masterInterruptSwitch && Interrupts.interruptsEnabledValue > 0 && Interrupts.interruptsRequestedValue > 0) { + // First check for our delay was enabled + if (Interrupts.masterInterruptSwitchDelay) { + Interrupts.masterInterruptSwitch = true; + Interrupts.masterInterruptSwitchDelay = false; + } + + // Check if we have an enabled and requested interrupt + let isAnInterruptRequestedAndEnabledValue: i32 = Interrupts.interruptsEnabledValue & Interrupts.interruptsRequestedValue & 0x1f; + + if (isAnInterruptRequestedAndEnabledValue > 0) { // Boolean to track if interrupts were handled // Interrupt handling requires 20 cycles // https://github.com/Gekkio/mooneye-gb/blob/master/docs/accuracy.markdown#what-is-the-exact-timing-of-cpu-servicing-an-interrupt let wasInterruptHandled: boolean = false; - // Check our interrupts - if (Interrupts.isVBlankInterruptEnabled && Interrupts.isVBlankInterruptRequested) { - _handleInterrupt(Interrupts.bitPositionVBlankInterrupt); - wasInterruptHandled = true; - } else if (Interrupts.isLcdInterruptEnabled && Interrupts.isLcdInterruptRequested) { - _handleInterrupt(Interrupts.bitPositionLcdInterrupt); - wasInterruptHandled = true; - } else if (Interrupts.isTimerInterruptEnabled && Interrupts.isTimerInterruptRequested) { - _handleInterrupt(Interrupts.bitPositionTimerInterrupt); - wasInterruptHandled = true; - } else if (Interrupts.isJoypadInterruptEnabled && Interrupts.isJoypadInterruptRequested) { - _handleInterrupt(Interrupts.bitPositionJoypadInterrupt); - wasInterruptHandled = true; + // Service our interrupts, if we have the master switch enabled + // https://www.reddit.com/r/EmuDev/comments/5ie3k7/infinite_loop_trying_to_pass_blarggs_interrupt/ + if (Interrupts.masterInterruptSwitch) { + if (Interrupts.isVBlankInterruptEnabled && Interrupts.isVBlankInterruptRequested) { + _handleInterrupt(Interrupts.bitPositionVBlankInterrupt); + wasInterruptHandled = true; + } else if (Interrupts.isLcdInterruptEnabled && Interrupts.isLcdInterruptRequested) { + _handleInterrupt(Interrupts.bitPositionLcdInterrupt); + wasInterruptHandled = true; + } else if (Interrupts.isTimerInterruptEnabled && Interrupts.isTimerInterruptRequested) { + _handleInterrupt(Interrupts.bitPositionTimerInterrupt); + wasInterruptHandled = true; + } else if (Interrupts.isJoypadInterruptEnabled && Interrupts.isJoypadInterruptRequested) { + _handleInterrupt(Interrupts.bitPositionJoypadInterrupt); + wasInterruptHandled = true; + } } - // Interrupt handling requires 20 cycles, TCAGBD + let interuptHandlerCycles: i32 = 0; if (wasInterruptHandled) { - let intteruptHandlerCycles: i32 = 20; - if (Cpu.isHalted) { + // Interrupt handling requires 20 cycles, TCAGBD + interuptHandlerCycles = 20; + if (Cpu.isHalted()) { // If the CPU was halted, now is the time to un-halt // Should be done here when the jump occurs according to: // https://www.reddit.com/r/EmuDev/comments/6fmjch/gb_glitches_in_links_awakening_and_pok%C3%A9mon_gold/ - Cpu.isHalted = false; - intteruptHandlerCycles += 4; + Cpu.exitHalt(); + interuptHandlerCycles += 4; } - return intteruptHandlerCycles; } + + if (Cpu.isHalted()) { + Cpu.exitHalt(); + } + + return interuptHandlerCycles; } return 0; @@ -128,8 +147,13 @@ function _handleInterrupt(bitPosition: i32): void { eightBitStoreIntoGBMemory(Interrupts.memoryLocationInterruptRequest, interruptRequest); // Push the programCounter onto the stacks + // Push the next instruction, not the halt itself (TCAGBD). Cpu.stackPointer = Cpu.stackPointer - 2; - sixteenBitStoreIntoGBMemory(Cpu.stackPointer, Cpu.programCounter); + if (Cpu.isHalted()) { + sixteenBitStoreIntoGBMemory(Cpu.stackPointer, Cpu.programCounter + 1); + } else { + sixteenBitStoreIntoGBMemory(Cpu.stackPointer, Cpu.programCounter); + } // Jump to the correct interrupt location // Also puiggyback off of the switch to reset our HW Register caching @@ -166,7 +190,13 @@ function _requestInterrupt(bitPosition: i32): void { } export function setInterrupts(value: boolean): void { - Interrupts.masterInterruptSwitch = value; + // If we are enabling interrupts, + // we want to wait 4 cycles before enabling + if (value) { + Interrupts.masterInterruptSwitchDelay = true; + } else { + Interrupts.masterInterruptSwitch = false; + } } export function requestVBlankInterrupt(): void { diff --git a/core/portable/importObject.js b/core/portable/importObject.js index c2d979ae..3f093056 100644 --- a/core/portable/importObject.js +++ b/core/portable/importObject.js @@ -35,11 +35,11 @@ const wasmImportObject = { console.log(logString); // Comment the lines below to disable throttle - logRequest[arg0] = true; + /*logRequest[arg0] = true; setTimeout(() => { - // console.log(logString); + console.log(logString); logRequest[arg0] = false; - }, logThrottleLength); + }, logThrottleLength);*/ } } } diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index 088a0acb7dd6330fe916d76b6da7e8b8ed774a3f..62e1eae7de8065425474adef0d3317ea8674cbfd 100644 GIT binary patch delta 12036 zcmai4349bq*6-InldD70+(&>+Qq83X#03Q8NGAkB2sa)e1Ogd>T$2+)StlqWfp&{4!w?UuF%-D{`my{y+ZAclf zeMM$)esET8O>kmOutGaU@zsU%fEU&TwVx=yG*npR61V9|a|)}oLseW@RTC`Img-5> z!J53#f{KXDNw;CX?M#3i2=GxPDxA& zZ`ETUFl^*i+BQ8F*rbu89c{Z}P6D>W#hh$yryf&VQN(@uIW-HG)s`04%ng-$J>3E| zRR@i)4b}!nmKO!*qvMjRf-rfWkA6$KzOcG%bg(Q`wP51h8-fOXC;ye0+Ua|0#|2rT z1tZ!2^1@OzQcC2XvUjsU=O3v3?835OBZ)>@{v|`r+R*>VCC$3fPx66go$255rDh#^ z{79{5qE}{Dg=))-Mi*A(hh{0Sji1S^nOhnhR#;OAw(*NhN@~;pS8A?IET{=qMSDIKT-*0_f+=%WH3&$|Wi7U1j2DE_g#D&sha($U%VIT&qhPT?7 z{@DC9A0$W1Qz>0z$D|p+$2PR;xRz)^!=6rUC_J0=uv1sBr|Duo`mC-FmO%?FRSdZ;h{AfN!T#3MsAdFs zjw&rVBz3y~Mkj19l)F+dZGHW^&?c#3rh; zw~#pi17ZzHNB1P>bMK=zTF<@CL8IC0<=C{=VQy?MP28#M-bsvT`4C=9HmG%MYAx6E z12=t{R;Fp1GuWN2s>W7gMAg_vwxUpZJ6GF5PI9gvxT$&^Bo*5`h&eeCjuy^~j02aK zpd9)=3p*8OCkY_R!Y;BE1q*kvg}Yq~cX<{-!ouCKaF=HR9JJV75m*`q?rvmYH#uRj zc9Q_6EZjpb1q=7Gg+I9#?)5BygoQuB!o8jaaL!xc;t~|ACafUtrKtg}*q$n;S_2Sb z3`*>&dS>J&3gk!W<9ZaZ)&f!B#6buXu)uUE*>p6slP2!N&=%YGk=R4xJ~>4UmWM=- zu$V0#q!G~gAYr{x!pWwXBOX%BhX@Oh$8@zkth78#VlRn@sRTZ=A=n_ZhbH!^(tRWz zA>dr9#%D&3*L9vGylGI94ZTP_N+6mj>ZCb!me>NOUSq@CKft{`=n)XI+#VC&gSsVL z0H*5fJ(%^@D3AzY4P^}SQk2MJs-qtx0mSQ+$Iz`}84t?+=zmOG_{fvY?<6OiX^3&G zEPv(-Rz8PuSWWbRR_Y`dn=LRDVRR+LH1uUavqqzD+1K|JBCiDn9S@{=Tygb{|djA|}wA7EYp%Bs`JNvf%0#z9{HAbB8M87X&SR1t1#bFJa{HlArQ29i_C&oKeY+aj%=86d}3QhK0 ztnbCLZI6Xr3QY_+Rbu5HZ_mWm@8Xl}Sti_7{HyIExxdF{;WAT9gO)>7T5L}f)2zw7 zVgZzZDnk#I`9%q40fI}Edb@}y6f?yvQDjZ+V2ZggFOcpOi|N)hF&&6KT}&5Gt2sd> ztPRW(dpefKM8vyOch;zM;%dz}CeF#Z7o~SC4CwaEfML%H`0S$p=#JcXQTx>Y$B6vm zqKi6?v-%^ANj8m40Tdos{jHgdme}KDuZvR$^Lm1)Agi-qflg)z6|oK`5c3!?j|0Ks zR0TW+%#(8Y#UlI+CWbi7)9YDRMzcDxjAnJlswAFs4Jam>=`xQn6B!gsGEkDwGZVwe zOa{#Kix*h)i@&GjB_*HLw1Rkk`jFp$@eem;2&kh zh*9$AOU85zS<};zJq56hK=9VH#&DH`RY0IZ7G?Aqig}=l&JE>sVFWB72pmqu+U5Ag z2m}%&ROqMcKy)Vo8jy))W3ABaYYO`3`CbkS@vs=?7sEMdGf^WI6+{L!qH2|$fgLedZtK}Ie7^Fz#+9)H zMm$!Y4P(cKsmU41o9Hfh_*gW*Sro>(Y6FK2U z%=GcXYrh_GX}jmrHikbE&Ix(;{Y^yQ2uEb^@?>{4l6`>8W~^4N=k}XTYQ7bzc&}IS zo<A^D$)qIapBX+xI;=+Wv7~WulE+g+G z0DU+XAVYC8+t<+$e7)vTjkBjTR1Us&lhO5 z>&zXVGsheE7&@#cG8%gYd8Z7xf@y-(V^>(^z;6%|S)>)NLOy{+6|V9WzI#DucVmV1 z#ODxrQK$1PvnIeD?EepXiuh=PiS2r}hRpt4N0N6IffK7SncXef&6M9Fq`S_!bHuyq zL!K5sv9$E2DuQJ^TmzV3W<^5gD$l}|4t6ty)g&w(3@3VFHbt#q?d-`8+5-MH2vmkw zn+aMcFYK;0f73BudM32rbJiHai;TEd9=U86j_1XHSkSB_5hq=;>X07TrSi-lva+)y z_OJKs-{jfTR7RZ`DgHz|Bb>aiE4DomTS;9GU&ZsooYT`rY zos`G=bWC5&ORicVuoy0OvnTZRViG4HgtX;^OzPXS`(naocPn-odkJCdyN!!gwN6$H zt}k#pHY^0#30c&4Y~m+0JYDBSRTCe}1AW`m$MW62fe_l8ul>9R}42o0CouA+&Kd^fYjCbN^pB1szBA?skAFB zJ_th<*|mOAtLAVmW}GfU7Sh{H3p2?~F`m(Og_(kmw=21#fbA-rK-nP(z=3Nx;jO~O5bt;G?5co< zT@HIkfajs8w)oH<&>0ZxSC-phQ*{yEGXm%U3oJI~wF9G2?XK77sM>x8-6WnNXg`d* zBo}*u%!_f3P&WS&nIShTFB}MdiYlt?GxWB7OC#Y^5#i4xE`Je`{gP$BB6E-I(Z8BE zG7D8@MjwGY;|$zsR%tFs>_HrVi@NeLiGRJ-shq9W=V*^=MKaHy{t0 zW1iKTb60>8I}h1W|G`dpl$!3=Rx)i(jI`QBvP__yWwx=l5wlC|kxFoyCgx$MP;+oz zu?mWLrWnE&hKMX4iEemCGCk7TPP{5^!`{&q%yG;d$DElss&ogZJfIoHc6q}ugFn+n zGgI_&>agwCkxH+uJ-qYaAAIY6vil^O(&xNEe)*1*N{0N=NligHUt3uB@!vfJ55-`t z8&)fOaKmL;oyf>aY#}FP-$#k^*X+)eAXA3DPCog~u#PQt(+P9dXU*VD&+hNUCCeT; zfy5>{M&|4@C`ta3TMrF)jJ$zjWNh9XXsF2RD);53q+pt2Mq|aP!~%VHQwLtoTdQ|N zr=G^##ey>w1Naq*ThPMPN*;W&dG3+zn78Y)BBzU7I(l)Onv&K*lC8(=r>EsBV@@D1 zPqa+Y&jN&s%NZt_qCZ3Q*#L%#rWnW&{W<`cupTBR6S(UD<4w`mI!uXitOhWa)d0q@ z8bCj*0rasNK%BnG>JZ#{W2}DwLF&TleOcX3_s^N2&fzcR1N|v z2LY9XfQ=mlsT>4U4j%Cw1XK&e%)hXKU9aKwl4dPMv|#6>&^3$NgNH`T=rXy zBzw86x6ey9W68^1_VJdDMEMK`^Y6&IYudMcw^6~Xd+q0-Tg-J=?X`pq#H|u*7|>4iTr3SUqfDsp}!b(|RjK^XNI* zy`V=koEUi#wXu3zAIO4&;dDgqE?^m`lK$z}04tb&CA}aYoxYe}lmlkmp*S7n$r`3H$XqK~)&i{OJep(UHvF0x*hcHxEui1`$GR6bYuw}M0JLcn^~1<$+S zB^SKnf)g(Iy9+*a!AUZckj~h=eGkRs;D{@RBCQ+h7nw-w-1}t?2_~ z4Ez>{H}-TwDiwL9BiL!T>4U6KILR5Lb}+@VKE*{IXh2hTn3Wbr0&!5Y2P2?i7J1t9 zOkg9^I90=0aWFP75TD`N0EB5CBF-zncK4st*ds9zjW!{*kE`uToI;W>{sD8R)V(2^ zX2BTJ4ZrxDi*9Bl?3Gcp>G+i9 z9Cg{7l@qz6Cn;=u(<4PZ#w``T{dO7b&1hqfg16!F2jUjt>rk z(8^$8_|Jr)NAH}*J~&Xr1b6YijAK1uem}+y7r&fwtOCsM&p4+vzy~mne2?*gj3ee5 zzk=~N7aw#5Y$dq(V8#<2EzCkg`std}+$|VteN9da7tdt8rHea^w{r0;;HF@|iL2*v zb*ux7FCsRG^i$xz%C#MexihDK(2m?eD7%wUgn7w^ru&&9L3qTj`b zF&^XMIgH1;_;AMKTzmxM@h+arc!G=f1a1ywbAC2g?m8V-M2Lwvx1fgWm@Zz+I4<}E z?)J>CTsMa6PIc=ld>Xgc@A3CDs#q&z#0y#IYAEJTDZnS4sNalAY8q44>j% zYPsiylDpgULJ{A3UMONe6J|eFAJ6LRJ@txs#8a<`m5PXW#hy@JjpJ$wTur*w!Y=iw zS5Fn~_Ub8OwIY&Su|FxIrAr)88oO!MH)MTF))}(CBkOyz{z=vkWc`b*{~_z&Wc|p? zlrURh_sGCdaX`BZs>z|p^AGNz#O~w89^-wz*kin(7ki9f?!_MC{k_;@e1I2wj1Tl; zkMS$K*y}}_J;;ka#s_ok!ESf-zdgi@J?m#A^qQ^qJ4batQ40PdrNe@=ZfygSSLM7we6Vtq)WW2yyq&JF7R=kY+f#VYO!Zu#J zx`D}B@X{WE>8V_b_heCG2d{=)!b-p4sH-bg53>qnWzc*W@+ZdoHgN<5dMzvA7@W^xr0AW zpz!Vne@F3$4SczLEw7cFSk^84EFV>HU5Dc~&U{Fd6{?PRF8VwtXfCSGRWAAxA3$9c zhadjvgEbuGTRKD)XFERJsuXdafRC+kqQ9MQgd8Li!NDaL&bBDll==iMuhrS5w>oZk(*;It<2hQma9wxrr3Y%adl^q4U1JLb>U# zSc*l8g^pt>eYWE1iih-od4^&ciiIqJSw6+`DHfD6%dc2|#X`=&tQf_LQ7ohm%!*a4 zSZjs+uzYA>l)2TQ1otzh_~>U$@uvE4DM8%OFeJ2+=!`sCaR~pbD!bDbxxX@_O~~|V zqJsZ$56pLD)wmn0lD|}5(&G#z>7;9>hEY`slC@bkW6=xt88WpG3Vh}GG>+aX*xfL$ z>TqhOlv((sve&GNTJ>aC)b_m(ugHw@ky?fa{jX zM4S&8s|WUys_4vrSssvrj^e+a{6(7disEO@e^vIlGs8GWJ!Jl>l;-*TQRss5S=kHl zk!SU5)LkBuZRF-VTNtlH!o`!~Cd{2Zr{)dn6De#qX%0RqoIOW1;!W9n?d8T>)QwA9 zRnM7wT}^)Qy69J-Z_{O}+Ba(x6& z^VV57W?j2Z&hSp=QRnCogeqo*ih|X>yia1s zD)M7$9~IznQe!lKZVivnC%;oRx0*|WMW4$0^}XmH^5FUm<1@NQR&Gv_=7!{yQ`Fkk z#{=K!DA<8==D>nAVhod_;ca%?Uj5oeVu98;WQhu<}(*H^FqncK7#`4(2 zsQeEUkjHLoD>F95%cYxI%g%pHl=p4wBtr{L8Qv6+Z$)QpY9%jSVxBkgqhi%9G6PX9 zKT*r`O^tGYmfvmallsf=G$H!A@vrBb5as=bCUj4Tl4sGDF2=cNJ7UdfQJo%X(0Se> zUAEeiZrrT9?HacwUf#c@wJhJ#O1=q*cAb~KRhNaETFQf4TIow%6s@`51`xDH5yPYcId>|MyH=)d7qpHE-|+Q%SGjsyyX5E> z&+3Ec4YGcFS7W2zlgs35+uInM@UeE?jt+6^Q|Hb4^_=+wbzV?X6`WtQWOPksO=xmSWv~IG0~U;bQK$Kc*@93_V|CetlGofTS>zX1{v$8#kShL5sjUCXlB)cY>WccPj-Mz_->WBl^*kLou&@Ks zdbuchxO^aaUJu71JKuR;w~S13G_bu&3a< z64z8*({Npd>uOxr;JOyqbjZ!XH51n?T(hkN%d`@$Bu92k$?{i%RV4?dbQz=^z4?OS z^t57}y(8@^zr)l61oFf?x?N>Dw}L*;^m(%DnwwJQ>q$$-W*TO|K-4s`RG#hhj#z@g ziKP>nb7Odlk#kUw?r9b24f0H4s@x5p-; z8=C);o<^nDksfxM*6EqLxE?WVY651$%doh_FK#fih?$4=OcIM3dkh#%2lN10*`~NL z+IrJ3TL+rrH_GAP%Apxc{Y#v%y;MG$F{tA*a@Jlj&_BjBHN>t-p3k^Ayb>d3JP!!h$sYp4QnrGy zw~^RJPF#c7N+El@bTU)Io7n=#5&?z;_px%VQR>#6mgMo#+r2~+8G|hSJ&<@pO2Qi|0>?B)J=)8-&g?A&}3jH8V6?BkPZto`M6ht_1 z&`nUm%@t^de$T=l#o0pwh_bMkY(>GsKDMymHL%Y!01^iF!@xc^5QZ37trobw0`099 z4k*q65T9=KX}J$7Ra<#l@JqSjq2|lHZd!NWd%LGuwd)GW%)b zkZL_d;xGZ{R`q!16nM|ZlT4SHcB&oin65cZme>w?y}^cazlKZqA_5@f3VUMsUTCf0 z1~64{@5MN`t^kP%MME2d@!ge3vkGi82_Rk!nh{2E8$X2m5N~89dn3AS{LXSshd! zqYZrJ@j>=@lH#}X7$T1-j~`Kp=kX)#@hbNCet2ApnL)XX0olgoN4dxU;W8eL@|d5N zHQDp{F?fua;?c0jhn2^NVQHmKx@_u|7S^pR!N%N-DYJqB#}wj^D-R!6NWdLekE5TX zVIKYy42d=D>H}~Ua}rO&Vh-ZC^MYX+j=#}KuFKNwKOqqI98=u@E7Yr;!xxNlUVRl= z;|t5@dpCp+xsLNdvZk8dIhcPY@dP!%4BW<(W)!o!c}Qi&!z$7blX%#R^uthKU1clI zFNOzrPvTbUV3J`YqneA_Pckn+;eb}3MNWr?5Oe;*_X5$U!gUb=Cq^~l`K;%geh@c} znN>X=WV3oaa0H#KF21l6_9HK{v;aj1lX%Fz!H4(;uQo4IcZHR#$%h7r{#h!A>^SbS9u6zu9zoE z#C&U3H&ZNtd4c+;T+Fs+i`hVI0C7YOD5_v>U{=_(F>@wjYH*q^7 ztT}T7x;-yo*d+m7ZJX_gvf~d=vvsJk2Bcm@BGT=`5;QJu&NvXIwjqiP*TzXI%w~iSo;3 zKF3TRuISEyyZgoStoiu=rsM@BpWnWNc#*kmy{!{3F_R5}8L?*~xt((qGFQr*2UJj4 z{(V3@IuB81YU*!D$R~CX1_vClP+EX2gPJ6n}?p0O6(+WC%d!iK4T~X>W-z4#t zs#M>kkX`skkNY->cNF(+a33S{W?m=ME!j^*O#Q_(^)5x~rwA19%6kT-hyTolk7X+m zaKRuK9MN3(ss}&v;5mkB?8c}kcB^NieK}2LIlRFzxQ)Dh0`y_ifNI9AdS4|}t|Gjh zP-T0iGX{oNN4a%)bRW7A3yx-^nnpnn5mi&8#%bMs;I3U~?(m#>t8K&(uz^@k?N#LM zLEs983CfhcVO1Z$MyPR7g18EKe-c%Ar>F3pUj(}kD_ldoOTlPw(s`6wSHeqF4-a^X zc;kYB?RvJ3%%R+8J$XA7II$Lk*$4#AOX)8vi3fq6Kf@ex23dXwYBf-kB7>?(kk76Uzipfak!NrR{b6~a|x zS6izv+@Xr>dcUZLUd^t@*wjUpbtfSUcz~%@Hf(C5(&GKGUCG;%DpeF$sZ$IMD@ZLD zJ*t;q)T;Si_3fr9YtW2n!X_Kzu@BF?V~p4}+)==GE%veOkn6y;xG7PK(a5jRkOMjcV*Sc;7c8YN!mCRF0kFVgW8Qt>$<(y%`()nG zdMv?z9J-}*5%eKwJm59wSyi}T?7SyShZO|IC;E{F_7#af2E{5V>y{ZMr+$s2DjnCCK((N@uAxf*hkHm4M(xwfC5c- ztSS_f4Q3S*6~kTSfMcP;SwW7)!)pcNZbG@Zg=2#ujq#3+u*WFpk&iUM4s!(~YQKgD zs?r7H7RjIzL#eCc;g0-J6Bu=~5pT^JVxH8=9~O-;jgE!5isZS=yAKFEM{#y!STPtz z*j0+6ECc6$s0JMr9)3}1#SVjaCF&y1MRqY<7LvY&+p5UUeJ8C2MX zD1@etbizeyh+8-mu{ANyN{bYnKp|_TSy)GaSJ>l};A~Aas6_(dYbaNV&|r#DY+;nh zzJ&a zY{R8ZlTU@8^;`l}E&(c+0F_IC$|bpmGLKIRn_%8IZ~uK;_H}o-=^T89?O>pmGLKIRn_%nHS=` z_`DzoO`Q^Zltd18#&X}}RGBelfIL36clagGK|tjopmGpUIS8m61Z?XdNaY})a`1%b zAfR#(P&o*w90XJj0=9MVM8v@pvT@qg^h)!IX(dMLtC%q`YZypECm9ARyyu@X_)he09l9##cx7$eat_sH9kxyOQwe!1e8cy=L z7FHXw-j!#6(e|Ng<74x8WybXO{m!a36c}im^ozC@)fTJT!qdACey@$awWRD}p(888 z#~sG9-&<6h?zYL3(>q6dLL!DG?okrHcD*^4hZG-^6l;~;XLRox(ao*c1>zoKz1B%H z+Iw_Twelj`&Lg!xzN6ak$dukaGunBirkB%70>>k5db7>5itq08-;-be!Xqq~$|F~A z#>^k-r2J`iH~H&X%B5rSqS@oX$(%bdDM5pBOu1*sJY--3 z>m_Ti@yQovU#c`*PtVHGoPJ5z3G%#WV;Z(j$$RIFrRU_?IV_VocP0LXNMqr+9c<`^h>1p(n;2!G;Rc{xdFk-UTnZ z;AI#5)de58;BPMYkZ_J8mXY{M?K)-u()2DXct?jd;S^SFem%nlXcpPa@XIQ{#aUuM7=*g~D*7hiBg6B@q2E`~EC+H#s(K0(WA)kTjse8~-; zq2Wu_;PV>zjDYJvCl&T`*@&I%aCI2alKJ%2yoLCE7}>({u|z=@7g%`(k#n<=1vpgV zgOHDuW4SPLhOi~bRcEx;$EZV5t$BJiI}dSdmFLB_wv=`DeMaS3GBub4`v*>%KRaW z8!mnsvlEEc zeNE0qE}jP*PZs_WixsjMa*^>c>wV^eA#mno_Fxg6*=LBmqf%z#YbH!XBeR+Xe9X&c zySj^C3LFPfF5z%Tzl-NH9^>Mp8IN`GF^tE#cmd<_EKU$maKDR z{hh3Tko8Zpz9;Jkvi^m{u?1cg1hj0#k`H>kmwK%kh6Wpjw;J4x4|Xs!aGEeN#7i;8 zFY{82@u6OdF+R*oF~)~`DaQEaUW#2pnmxixF~&!7ia~#0U9(4d8D`-lfLt%btn*ip zou_uDDy>+q&`UAa8|DagP5 zI0{UlU)aWO$jv_1f|uoP_A#*%udE_+I6uU&=T5Bj8}gEm3A__^laF<8B*#rYR)ClF zZt`(hH&JWyvE(ZDB97-17R4(~H~W~t3w1a9n7}s;ZuT*;pS|FGW5eIF7ZCz)H>1hN z>esM(PBHF=*OLAyfv+Co6~SJG@y;=tecW$7_v3`)et7-oj}iyCU!(=cKW_4|7|s#h zDOf@dh6p?Fy3SF`Mt7~!tMdmJp65J1i;-eo1#p87= zV$Ol)pF_`N$PYIJ=;#KSjS_sIw2fmlP!5vaWQ|OvXXNe;8UCS*pQS9Bx4E-?N}9%V zXlML0*_oc_c4OG$gOze3Ey1itxrp=2|1Au98buD8wI_r zI_58aMSj0A+c-)6=cwO{U%D3dG%{j)~bg^=G_2yK1NABBvsqrq$u1}L+ zZ|-QkN4-^R+LmPOI(lyr^jGEC=*6dG<(B^RfuhDN{+ogYi$7Fw?Bb8)&sze<$2444 zZ|N=%t~NWDgz#Y^zN8E_);82n4px^fs$TF3Wy>RLvyD&T1LRWXE-a}ot8A6~jQTU* zDqR>Xt!VB2x%_x*=N?~BS}8s)y+r+aAEb`OC!4|3G)Nv@o+|rp>p@@2f^EI%D_OCv z51o;6n@wNK$F}9rH}czUJ@ju$It^XqsO#h9fbH?dcXUa_T{#EzS-hh;x;sVwX1j$? zB-d>3g-;}f%v_Zs53h=quR`J<6p(exJDbrDVE;)nb5~EH`dCrfwM00>&k1irK!v`6S;)~l9+4e}^jq#}wpDlm4F%--AA z*sR+!c~2KvyEl=x$lvT8L|f&-y_vL4zPfi9rh|li!;BsJujJvq-T13p+A06EuSX0% zy4|JsluzvI?!!m7yTQw#J@Wm18RlNyU(X*b@6+?WK0bMFZ&!Kwev|ggar<-s2ODE{ A)&Kwi diff --git a/dist/core/core.untouched.wast b/dist/core/core.untouched.wast index 14492c3d..0d2def99 100644 --- a/dist/core/core.untouched.wast +++ b/dist/core/core.untouched.wast @@ -78,7 +78,9 @@ (global $core/cpu/cpu/Cpu.stackPointer (mut i32) (i32.const 0)) (global $core/cpu/cpu/Cpu.programCounter (mut i32) (i32.const 0)) (global $core/cpu/cpu/Cpu.currentCycles (mut i32) (i32.const 0)) - (global $core/cpu/cpu/Cpu.isHalted (mut i32) (i32.const 0)) + (global $core/cpu/cpu/Cpu.isHaltNormal (mut i32) (i32.const 0)) + (global $core/cpu/cpu/Cpu.isHaltNoJump (mut i32) (i32.const 0)) + (global $core/cpu/cpu/Cpu.isHaltBug (mut i32) (i32.const 0)) (global $core/cpu/cpu/Cpu.isStopped (mut i32) (i32.const 0)) (global $core/memory/memory/Memory.isRamBankingEnabled (mut i32) (i32.const 0)) (global $core/memory/memory/Memory.isMBC1RomModeEnabled (mut i32) (i32.const 1)) @@ -597,175 +599,185 @@ ) ) (func $core/cpu/cpu/initializeCpu (; 4 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:117:2 + ;;@ core/cpu/cpu.ts:158:2 (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed - ;;@ core/cpu/cpu.ts:117:23 + ;;@ core/cpu/cpu.ts:158:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:118:2 + ;;@ core/cpu/cpu.ts:159:2 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:118:18 + ;;@ core/cpu/cpu.ts:159:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:119:2 + ;;@ core/cpu/cpu.ts:160:2 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:119:18 + ;;@ core/cpu/cpu.ts:160:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:120:2 + ;;@ core/cpu/cpu.ts:161:2 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:120:18 + ;;@ core/cpu/cpu.ts:161:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:121:2 + ;;@ core/cpu/cpu.ts:162:2 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:121:18 + ;;@ core/cpu/cpu.ts:162:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:122:2 + ;;@ core/cpu/cpu.ts:163:2 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:122:18 + ;;@ core/cpu/cpu.ts:163:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:123:2 + ;;@ core/cpu/cpu.ts:164:2 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:123:18 + ;;@ core/cpu/cpu.ts:164:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:124:2 + ;;@ core/cpu/cpu.ts:165:2 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:124:18 + ;;@ core/cpu/cpu.ts:165:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:125:2 + ;;@ core/cpu/cpu.ts:166:2 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:125:18 + ;;@ core/cpu/cpu.ts:166:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:126:2 + ;;@ core/cpu/cpu.ts:167:2 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:126:21 + ;;@ core/cpu/cpu.ts:167:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:127:2 + ;;@ core/cpu/cpu.ts:168:2 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:127:23 + ;;@ core/cpu/cpu.ts:168:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:128:2 + ;;@ core/cpu/cpu.ts:169:2 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:128:22 + ;;@ core/cpu/cpu.ts:169:22 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:129:2 - (set_global $core/cpu/cpu/Cpu.isHalted - ;;@ core/cpu/cpu.ts:129:17 + ;;@ core/cpu/cpu.ts:170:2 + (set_global $core/cpu/cpu/Cpu.isHaltNormal + ;;@ core/cpu/cpu.ts:170:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:130:2 + ;;@ core/cpu/cpu.ts:171:2 + (set_global $core/cpu/cpu/Cpu.isHaltNoJump + ;;@ core/cpu/cpu.ts:171:21 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:172:2 + (set_global $core/cpu/cpu/Cpu.isHaltBug + ;;@ core/cpu/cpu.ts:172:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:173:2 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:130:18 + ;;@ core/cpu/cpu.ts:173:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:132:2 + ;;@ core/cpu/cpu.ts:175:2 (if - ;;@ core/cpu/cpu.ts:132:6 + ;;@ core/cpu/cpu.ts:175:6 (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/cpu/cpu.ts:132:22 + ;;@ core/cpu/cpu.ts:175:22 (block - ;;@ core/cpu/cpu.ts:134:4 + ;;@ core/cpu/cpu.ts:177:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:134:20 + ;;@ core/cpu/cpu.ts:177:20 (i32.const 17) ) - ;;@ core/cpu/cpu.ts:135:4 + ;;@ core/cpu/cpu.ts:178:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:135:20 + ;;@ core/cpu/cpu.ts:178:20 (i32.const 128) ) - ;;@ core/cpu/cpu.ts:136:4 + ;;@ core/cpu/cpu.ts:179:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:136:20 + ;;@ core/cpu/cpu.ts:179:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:137:4 + ;;@ core/cpu/cpu.ts:180:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:137:20 + ;;@ core/cpu/cpu.ts:180:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:138:4 + ;;@ core/cpu/cpu.ts:181:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:138:20 + ;;@ core/cpu/cpu.ts:181:20 (i32.const 255) ) - ;;@ core/cpu/cpu.ts:139:4 + ;;@ core/cpu/cpu.ts:182:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:139:20 + ;;@ core/cpu/cpu.ts:182:20 (i32.const 86) ) - ;;@ core/cpu/cpu.ts:140:4 + ;;@ core/cpu/cpu.ts:183:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:140:20 + ;;@ core/cpu/cpu.ts:183:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:141:4 + ;;@ core/cpu/cpu.ts:184:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:141:20 + ;;@ core/cpu/cpu.ts:184:20 (i32.const 13) ) ) - ;;@ core/cpu/cpu.ts:146:9 + ;;@ core/cpu/cpu.ts:189:9 (block - ;;@ core/cpu/cpu.ts:148:4 + ;;@ core/cpu/cpu.ts:191:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:148:20 + ;;@ core/cpu/cpu.ts:191:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:149:4 + ;;@ core/cpu/cpu.ts:192:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:149:20 + ;;@ core/cpu/cpu.ts:192:20 (i32.const 176) ) - ;;@ core/cpu/cpu.ts:150:4 + ;;@ core/cpu/cpu.ts:193:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:150:20 + ;;@ core/cpu/cpu.ts:193:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:151:4 + ;;@ core/cpu/cpu.ts:194:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:151:20 + ;;@ core/cpu/cpu.ts:194:20 (i32.const 19) ) - ;;@ core/cpu/cpu.ts:152:4 + ;;@ core/cpu/cpu.ts:195:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:152:20 + ;;@ core/cpu/cpu.ts:195:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:153:4 + ;;@ core/cpu/cpu.ts:196:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:153:20 + ;;@ core/cpu/cpu.ts:196:20 (i32.const 216) ) - ;;@ core/cpu/cpu.ts:154:4 + ;;@ core/cpu/cpu.ts:197:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:154:20 + ;;@ core/cpu/cpu.ts:197:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:155:4 + ;;@ core/cpu/cpu.ts:198:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:155:20 + ;;@ core/cpu/cpu.ts:198:20 (i32.const 77) ) ) ) - ;;@ core/cpu/cpu.ts:144:4 + ;;@ core/cpu/cpu.ts:187:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:144:25 + ;;@ core/cpu/cpu.ts:187:25 (i32.const 256) ) - ;;@ core/cpu/cpu.ts:145:4 + ;;@ core/cpu/cpu.ts:188:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:145:23 + ;;@ core/cpu/cpu.ts:188:23 (i32.const 65534) ) ) @@ -4813,33 +4825,33 @@ ) (func $core/interrupts/interrupts/_requestInterrupt (; 54 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) - ;;@ core/interrupts/interrupts.ts:163:2 + ;;@ core/interrupts/interrupts.ts:190:2 (set_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue - ;;@ core/interrupts/interrupts.ts:161:2 + ;;@ core/interrupts/interrupts.ts:188:2 (tee_local $1 - ;;@ core/interrupts/interrupts.ts:161:21 + ;;@ core/interrupts/interrupts.ts:188:21 (call $core/helpers/index/setBitOnByte (get_local $0) - ;;@ core/interrupts/interrupts.ts:158:25 + ;;@ core/interrupts/interrupts.ts:185:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65295) ) ) ) ) - ;;@ core/interrupts/interrupts.ts:165:2 + ;;@ core/interrupts/interrupts.ts:192:2 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65295) (get_local $1) ) ) (func $core/interrupts/interrupts/requestLcdInterrupt (; 55 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:178:2 + ;;@ core/interrupts/interrupts.ts:211:2 (set_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested - ;;@ core/interrupts/interrupts.ts:178:39 + ;;@ core/interrupts/interrupts.ts:211:39 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:179:2 + ;;@ core/interrupts/interrupts.ts:212:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 1) ) @@ -10322,12 +10334,12 @@ ) ) (func $core/interrupts/interrupts/requestTimerInterrupt (; 139 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:183:2 + ;;@ core/interrupts/interrupts.ts:216:2 (set_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested - ;;@ core/interrupts/interrupts.ts:183:41 + ;;@ core/interrupts/interrupts.ts:216:41 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:184:2 + ;;@ core/interrupts/interrupts.ts:217:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 2) ) @@ -11680,12 +11692,12 @@ ) ) (func $core/interrupts/interrupts/requestVBlankInterrupt (; 156 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:173:2 + ;;@ core/interrupts/interrupts.ts:206:2 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested - ;;@ core/interrupts/interrupts.ts:173:42 + ;;@ core/interrupts/interrupts.ts:206:42 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:174:2 + ;;@ core/interrupts/interrupts.ts:207:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 0) ) @@ -12195,104 +12207,104 @@ ) ) (func $core/core/syncCycles (; 160 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ core/core.ts:342:2 + ;;@ core/core.ts:341:2 (if - ;;@ core/core.ts:342:6 + ;;@ core/core.ts:341:6 (i32.gt_s (get_global $core/memory/memory/Memory.DMACycles) - ;;@ core/core.ts:342:25 + ;;@ core/core.ts:341:25 (i32.const 0) ) - ;;@ core/core.ts:342:28 + ;;@ core/core.ts:341:28 (block - ;;@ core/core.ts:343:4 + ;;@ core/core.ts:342:4 (set_local $0 (i32.add (get_local $0) - ;;@ core/core.ts:343:22 + ;;@ core/core.ts:342:22 (get_global $core/memory/memory/Memory.DMACycles) ) ) - ;;@ core/core.ts:344:4 + ;;@ core/core.ts:343:4 (set_global $core/memory/memory/Memory.DMACycles - ;;@ core/core.ts:344:23 + ;;@ core/core.ts:343:23 (i32.const 0) ) ) ) - ;;@ core/core.ts:348:2 + ;;@ core/core.ts:347:2 (set_global $core/cpu/cpu/Cpu.currentCycles (i32.add (get_global $core/cpu/cpu/Cpu.currentCycles) (get_local $0) ) ) - ;;@ core/core.ts:351:2 + ;;@ core/core.ts:350:2 (if - ;;@ core/core.ts:351:6 + ;;@ core/core.ts:350:6 (i32.eqz - ;;@ core/core.ts:351:7 + ;;@ core/core.ts:350:7 (get_global $core/cpu/cpu/Cpu.isStopped) ) - ;;@ core/core.ts:351:22 + ;;@ core/core.ts:350:22 (block - ;;@ core/core.ts:352:4 + ;;@ core/core.ts:351:4 (if - ;;@ core/core.ts:352:8 + ;;@ core/core.ts:351:8 (get_global $core/config/Config.graphicsBatchProcessing) - ;;@ core/core.ts:352:40 + ;;@ core/core.ts:351:40 (block - ;;@ core/core.ts:355:6 + ;;@ core/core.ts:354:6 (set_global $core/graphics/graphics/Graphics.currentCycles (i32.add (get_global $core/graphics/graphics/Graphics.currentCycles) (get_local $0) ) ) - ;;@ core/core.ts:356:6 + ;;@ core/core.ts:355:6 (call $core/graphics/graphics/batchProcessGraphics) ) - ;;@ core/core.ts:357:11 + ;;@ core/core.ts:356:11 (call $core/graphics/graphics/updateGraphics (get_local $0) ) ) - ;;@ core/core.ts:361:4 + ;;@ core/core.ts:360:4 (if - ;;@ core/core.ts:361:8 + ;;@ core/core.ts:360:8 (get_global $core/config/Config.audioBatchProcessing) - ;;@ core/core.ts:361:37 + ;;@ core/core.ts:360:37 (set_global $core/sound/sound/Sound.currentCycles (i32.add - ;;@ core/core.ts:362:6 + ;;@ core/core.ts:361:6 (get_global $core/sound/sound/Sound.currentCycles) (get_local $0) ) ) - ;;@ core/core.ts:363:11 + ;;@ core/core.ts:362:11 (call $core/sound/sound/updateSound (get_local $0) ) ) ) ) - ;;@ core/core.ts:368:2 + ;;@ core/core.ts:367:2 (if - ;;@ core/core.ts:368:6 + ;;@ core/core.ts:367:6 (get_global $core/config/Config.timersBatchProcessing) - ;;@ core/core.ts:368:36 + ;;@ core/core.ts:367:36 (block - ;;@ core/core.ts:370:4 + ;;@ core/core.ts:369:4 (set_global $core/timers/timers/Timers.currentCycles (i32.add (get_global $core/timers/timers/Timers.currentCycles) (get_local $0) ) ) - ;;@ core/core.ts:371:4 + ;;@ core/core.ts:370:4 (call $core/timers/timers/batchProcessTimers) ) - ;;@ core/core.ts:372:9 + ;;@ core/core.ts:371:9 (call $core/timers/timers/updateTimers (get_local $0) ) @@ -12983,7 +12995,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner3) ) ;;@ core/cpu/opcodes.ts:235:6 (if @@ -13017,7 +13029,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner3) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:252:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles @@ -13237,7 +13249,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner3) ) ;;@ core/cpu/opcodes.ts:324:6 (if @@ -13271,7 +13283,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner3) + (br $folding-inner2) ) (return (i32.const -1) @@ -13306,34 +13318,34 @@ ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:227:6 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:227:27 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:227:39 - (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:227:60 - (i32.const 1) - ) - ) + ;;@ core/cpu/opcodes.ts:242:6 + (call $core/cpu/flags/setZeroFlag + ;;@ core/cpu/opcodes.ts:242:18 + (i32.const 0) + ) + ;;@ core/cpu/opcodes.ts:243:6 + (call $core/cpu/flags/setSubtractFlag + ;;@ core/cpu/opcodes.ts:243:22 + (i32.const 0) + ) + ;;@ core/cpu/opcodes.ts:244:6 + (call $core/cpu/flags/setHalfCarryFlag + ;;@ core/cpu/opcodes.ts:244:23 + (i32.const 0) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:242:6 - (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:242:18 - (i32.const 0) - ) - ;;@ core/cpu/opcodes.ts:243:6 - (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:243:22 - (i32.const 0) - ) - ;;@ core/cpu/opcodes.ts:244:6 - (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:244:23 - (i32.const 0) + ;;@ core/cpu/opcodes.ts:227:6 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/cpu/opcodes.ts:227:27 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:227:39 + (i32.add + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:227:60 + (i32.const 1) + ) + ) ) ) ;;@ core/cpu/opcodes.ts:165:13 @@ -13599,7 +13611,7 @@ ;;@ core/cpu/opcodes.ts:376:22 (i32.const 1) ) - (br $folding-inner1) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:386:6 (set_global $core/cpu/cpu/Cpu.registerD @@ -13775,7 +13787,7 @@ (i32.const 255) ) ) - (br $folding-inner1) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:445:6 (set_local $0 @@ -13809,7 +13821,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner2) + (br $folding-inner1) ) ;;@ core/cpu/opcodes.ts:468:6 (call $core/cpu/instructions/relativeJump @@ -14031,7 +14043,7 @@ (i32.const 255) ) ) - (br $folding-inner1) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:538:6 (set_local $0 @@ -14065,7 +14077,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner2) + (br $folding-inner1) ) (return (i32.const -1) @@ -14086,48 +14098,48 @@ (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:377:6 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:377:27 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:377:39 - (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:377:60 - (i32.const 1) - ) + ;;@ core/cpu/opcodes.ts:451:6 + (if + (get_local $0) + ;;@ core/cpu/opcodes.ts:451:22 + (call $core/cpu/flags/setCarryFlag + ;;@ core/cpu/opcodes.ts:452:21 + (i32.const 1) + ) + ;;@ core/cpu/opcodes.ts:453:13 + (call $core/cpu/flags/setCarryFlag + ;;@ core/cpu/opcodes.ts:454:21 + (i32.const 0) ) ) - (br $folding-inner3) - ) - ;;@ core/cpu/opcodes.ts:451:6 - (if - (get_local $0) - ;;@ core/cpu/opcodes.ts:451:22 - (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:452:21 - (i32.const 1) + ;;@ core/cpu/opcodes.ts:457:6 + (call $core/cpu/flags/setZeroFlag + ;;@ core/cpu/opcodes.ts:457:18 + (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:453:13 - (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:454:21 + ;;@ core/cpu/opcodes.ts:458:6 + (call $core/cpu/flags/setSubtractFlag + ;;@ core/cpu/opcodes.ts:458:22 (i32.const 0) ) + ;;@ core/cpu/opcodes.ts:459:6 + (call $core/cpu/flags/setHalfCarryFlag + ;;@ core/cpu/opcodes.ts:459:23 + (i32.const 0) + ) + (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:457:6 - (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:457:18 - (i32.const 0) - ) - ;;@ core/cpu/opcodes.ts:458:6 - (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:458:22 - (i32.const 0) - ) - ;;@ core/cpu/opcodes.ts:459:6 - (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:459:23 - (i32.const 0) + ;;@ core/cpu/opcodes.ts:377:6 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/cpu/opcodes.ts:377:27 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:377:39 + (i32.add + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:377:60 + (i32.const 1) + ) + ) ) ) ;;@ core/cpu/opcodes.ts:389:13 @@ -15046,7 +15058,7 @@ ;;@ core/cpu/opcodes.ts:786:43 (get_global $core/cpu/cpu/Cpu.registerA) ) - (br $folding-inner2) + (br $folding-inner0) ) ;;@ core/cpu/opcodes.ts:794:6 (set_global $core/cpu/cpu/Cpu.stackPointer @@ -15196,7 +15208,7 @@ (i32.const 255) ) ) - (br $folding-inner0) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:851:6 (call $core/cpu/flags/setSubtractFlag @@ -15327,7 +15339,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner0) ) ;;@ core/cpu/opcodes.ts:890:6 (set_global $core/cpu/cpu/Cpu.stackPointer @@ -15436,7 +15448,7 @@ (i32.const 255) ) ) - (br $folding-inner0) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:929:6 (call $core/cpu/flags/setSubtractFlag @@ -15473,16 +15485,35 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:844:6 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:844:27 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:844:39 - (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:844:60 - (i32.const 1) + ;;@ core/cpu/opcodes.ts:788:6 + (set_global $core/cpu/cpu/Cpu.registerH + (i32.and + ;;@ core/cpu/opcodes.ts:788:22 + (call $core/helpers/index/splitHighByte + ;;@ core/cpu/opcodes.ts:787:6 + (tee_local $0 + ;;@ core/cpu/opcodes.ts:787:20 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:787:32 + (i32.sub + (get_local $0) + ;;@ core/cpu/opcodes.ts:787:46 + (i32.const 1) + ) + ) + ) + ) + (i32.const 255) + ) + ) + ;;@ core/cpu/opcodes.ts:789:6 + (set_global $core/cpu/cpu/Cpu.registerL + (i32.and + ;;@ core/cpu/opcodes.ts:789:22 + (call $core/helpers/index/splitLowByte + (get_local $0) ) + (i32.const 255) ) ) (br $folding-inner3) @@ -15498,35 +15529,16 @@ ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:788:6 - (set_global $core/cpu/cpu/Cpu.registerH - (i32.and - ;;@ core/cpu/opcodes.ts:788:22 - (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:787:6 - (tee_local $0 - ;;@ core/cpu/opcodes.ts:787:20 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:787:32 - (i32.sub - (get_local $0) - ;;@ core/cpu/opcodes.ts:787:46 - (i32.const 1) - ) - ) - ) - ) - (i32.const 255) - ) - ) - ;;@ core/cpu/opcodes.ts:789:6 - (set_global $core/cpu/cpu/Cpu.registerL - (i32.and - ;;@ core/cpu/opcodes.ts:789:22 - (call $core/helpers/index/splitLowByte - (get_local $0) + ;;@ core/cpu/opcodes.ts:844:6 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/cpu/opcodes.ts:844:27 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:844:39 + (i32.add + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:844:60 + (i32.const 1) ) - (i32.const 255) ) ) ) @@ -16064,7 +16076,54 @@ ;;@ core/cpu/opcodes.ts:1123:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode7x (; 192 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/cpu/Cpu.enableHalt (; 192 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:74:4 + (if + ;;@ core/cpu/cpu.ts:74:8 + (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) + ;;@ core/cpu/cpu.ts:74:42 + (block + ;;@ core/cpu/cpu.ts:75:6 + (set_global $core/cpu/cpu/Cpu.isHaltNormal + ;;@ core/cpu/cpu.ts:75:25 + (i32.const 1) + ) + ;;@ core/cpu/cpu.ts:76:6 + (return) + ) + ) + ;;@ core/cpu/cpu.ts:83:4 + (if + (i32.eqz + ;;@ core/cpu/cpu.ts:79:29 + (i32.and + (i32.and + (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) + ;;@ core/cpu/cpu.ts:80:4 + (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) + ) + ;;@ core/cpu/cpu.ts:81:4 + (i32.const 31) + ) + ) + ;;@ core/cpu/cpu.ts:83:29 + (block + ;;@ core/cpu/cpu.ts:84:6 + (set_global $core/cpu/cpu/Cpu.isHaltNoJump + ;;@ core/cpu/cpu.ts:84:25 + (i32.const 1) + ) + ;;@ core/cpu/cpu.ts:85:6 + (return) + ) + ) + ;;@ core/cpu/cpu.ts:88:4 + (set_global $core/cpu/cpu/Cpu.isHaltBug + ;;@ core/cpu/cpu.ts:88:20 + (i32.const 1) + ) + ) + (func $core/cpu/opcodes/handleOpcode7x (; 193 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16202,10 +16261,7 @@ (get_global $core/memory/memory/Memory.isHblankHdmaActive) ) ;;@ core/cpu/opcodes.ts:1252:38 - (set_global $core/cpu/cpu/Cpu.isHalted - ;;@ core/cpu/opcodes.ts:1253:23 - (i32.const 1) - ) + (call $core/cpu/cpu/Cpu.enableHalt) ) (br $folding-inner0) ) @@ -16292,7 +16348,7 @@ ;;@ core/cpu/opcodes.ts:1212:13 (i32.const 4) ) - (func $core/cpu/flags/checkAndSetEightBitCarryFlag (; 193 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/flags/checkAndSetEightBitCarryFlag (; 194 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/flags.ts:75:2 (if ;;@ core/cpu/flags.ts:75:6 @@ -16363,7 +16419,7 @@ ) ) ) - (func $core/cpu/instructions/addARegister (; 194 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/addARegister (; 195 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:31:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -16415,7 +16471,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/addAThroughCarryRegister (; 195 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/addAThroughCarryRegister (; 196 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:46:2 (set_local $1 @@ -16524,7 +16580,7 @@ (i32.const 0) ) ) - (func $core/cpu/opcodes/handleOpcode8x (; 196 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode8x (; 197 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16698,7 +16754,7 @@ ;;@ core/cpu/opcodes.ts:1315:13 (i32.const 4) ) - (func $core/cpu/instructions/subARegister (; 197 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/subARegister (; 198 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:74:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -16756,7 +16812,7 @@ (i32.const 1) ) ) - (func $core/cpu/instructions/subAThroughCarryRegister (; 198 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/subAThroughCarryRegister (; 199 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:89:2 (set_local $1 @@ -16865,7 +16921,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcode9x (; 199 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode9x (; 200 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17039,7 +17095,7 @@ ;;@ core/cpu/opcodes.ts:1421:13 (i32.const 4) ) - (func $core/cpu/instructions/andARegister (; 200 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/andARegister (; 201 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:115:2 (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/instructions.ts:115:18 @@ -17079,7 +17135,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/xorARegister (; 201 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/xorARegister (; 202 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:127:2 (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/instructions.ts:127:18 @@ -17122,7 +17178,7 @@ (i32.const 0) ) ) - (func $core/cpu/opcodes/handleOpcodeAx (; 202 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeAx (; 203 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17296,7 +17352,7 @@ ;;@ core/cpu/opcodes.ts:1527:13 (i32.const 4) ) - (func $core/cpu/instructions/orARegister (; 203 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/orARegister (; 204 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:139:2 (set_global $core/cpu/cpu/Cpu.registerA (i32.and @@ -17339,7 +17395,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/cpARegister (; 204 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/cpARegister (; 205 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:157:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -17389,7 +17445,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcodeBx (; 205 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeBx (; 206 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17563,7 +17619,7 @@ ;;@ core/cpu/opcodes.ts:1634:13 (i32.const 4) ) - (func $core/memory/load/sixteenBitLoadFromGBMemory (; 206 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/sixteenBitLoadFromGBMemory (; 207 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/memory/load.ts:25:2 @@ -17631,7 +17687,7 @@ (get_local $1) ) ) - (func $core/cpu/opcodes/sixteenBitLoadSyncCycles (; 207 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/sixteenBitLoadSyncCycles (; 208 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/opcodes.ts:133:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:133:13 @@ -17642,7 +17698,7 @@ (get_local $0) ) ) - (func $core/cpu/instructions/rotateRegisterLeft (; 208 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterLeft (; 209 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:171:2 (if ;;@ core/cpu/instructions.ts:171:6 @@ -17698,7 +17754,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterRight (; 209 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterRight (; 210 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:195:2 (if ;;@ core/cpu/instructions.ts:195:6 @@ -17754,7 +17810,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterLeftThroughCarry (; 210 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterLeftThroughCarry (; 211 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:220:2 (if @@ -17821,7 +17877,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterRightThroughCarry (; 211 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterRightThroughCarry (; 212 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:247:2 (if @@ -17888,7 +17944,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftLeftRegister (; 212 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftLeftRegister (; 213 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:274:2 (if @@ -17960,7 +18016,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftRightArithmeticRegister (; 213 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftRightArithmeticRegister (; 214 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/cpu/instructions.ts:304:2 @@ -18067,7 +18123,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/swapNibblesOnRegister (; 214 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/swapNibblesOnRegister (; 215 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:344:2 (if ;;@ core/cpu/instructions.ts:342:2 @@ -18128,7 +18184,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftRightLogicalRegister (; 215 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftRightLogicalRegister (; 216 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:364:2 (if @@ -18202,7 +18258,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/testBitOnRegister (; 216 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/cpu/instructions/testBitOnRegister (; 217 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/cpu/instructions.ts:394:2 (if (i32.and @@ -18240,7 +18296,7 @@ ) (get_local $1) ) - (func $core/cpu/instructions/setBitOnRegister (; 217 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $core/cpu/instructions/setBitOnRegister (; 218 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (tee_local $2 ;;@ core/cpu/instructions.ts:409:2 (if (result i32) @@ -18276,7 +18332,7 @@ ) ) ) - (func $core/cpu/cbOpcodes/handleCbOpcode (; 218 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/cbOpcodes/handleCbOpcode (; 219 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -19459,7 +19515,7 @@ ) (get_local $6) ) - (func $core/cpu/opcodes/handleOpcodeCx (; 219 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeCx (; 220 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner5 (block $folding-inner4 @@ -19889,16 +19945,26 @@ ;;@ core/cpu/opcodes.ts:1800:13 (i32.const 4) ) - (func $core/interrupts/interrupts/setInterrupts (; 220 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ core/interrupts/interrupts.ts:169:2 - (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch + (func $core/interrupts/interrupts/setInterrupts (; 221 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + ;;@ core/interrupts/interrupts.ts:198:2 + (if (i32.and (get_local $0) (i32.const 1) ) + ;;@ core/interrupts/interrupts.ts:198:13 + (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay + ;;@ core/interrupts/interrupts.ts:199:44 + (i32.const 1) + ) + ;;@ core/interrupts/interrupts.ts:200:9 + (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch + ;;@ core/interrupts/interrupts.ts:201:39 + (i32.const 0) + ) ) ) - (func $core/cpu/opcodes/handleOpcodeDx (; 221 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeDx (; 222 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner4 (block $folding-inner3 @@ -20299,7 +20365,7 @@ ;;@ core/cpu/opcodes.ts:1950:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcodeEx (; 222 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeEx (; 223 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (block $folding-inner0 (block $break|0 (block $case10|0 @@ -20640,7 +20706,7 @@ ;;@ core/cpu/opcodes.ts:2038:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcodeFx (; 223 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeFx (; 224 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (block $folding-inner1 (block $folding-inner0 (block $break|0 @@ -21022,7 +21088,7 @@ ;;@ core/cpu/opcodes.ts:2150:13 (i32.const 4) ) - (func $core/cpu/opcodes/executeOpcode (; 224 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/executeOpcode (; 225 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/opcodes.ts:71:2 (set_global $core/cpu/cpu/Cpu.programCounter @@ -21210,21 +21276,40 @@ (get_local $0) ) ) - (func $core/interrupts/interrupts/Interrupts.areInterruptsPending (; 225 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/interrupts/interrupts.ts:59:87 - (i32.gt_s - ;;@ core/interrupts/interrupts.ts:59:11 - (i32.and - ;;@ core/interrupts/interrupts.ts:59:12 - (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) - ;;@ core/interrupts/interrupts.ts:59:50 - (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) - ) - ;;@ core/interrupts/interrupts.ts:59:87 + (func $core/cpu/cpu/Cpu.exitHalt (; 226 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:92:4 + (set_global $core/cpu/cpu/Cpu.isHaltNoJump + ;;@ core/cpu/cpu.ts:92:23 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:93:4 + (set_global $core/cpu/cpu/Cpu.isHaltNormal + ;;@ core/cpu/cpu.ts:93:23 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:94:4 + (set_global $core/cpu/cpu/Cpu.isHaltBug + ;;@ core/cpu/cpu.ts:94:20 (i32.const 0) ) ) - (func $core/memory/store/sixteenBitStoreIntoGBMemory (; 226 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/cpu/Cpu.isHalted (; 227 ;) (; has Stack IR ;) (type $i) (result i32) + ;;@ core/cpu/cpu.ts:98:4 + (if + ;;@ core/cpu/cpu.ts:98:8 + (if (result i32) + (get_global $core/cpu/cpu/Cpu.isHaltNormal) + (get_global $core/cpu/cpu/Cpu.isHaltNormal) + ;;@ core/cpu/cpu.ts:98:28 + (get_global $core/cpu/cpu/Cpu.isHaltNoJump) + ) + (return + (i32.const 1) + ) + ) + (i32.const 0) + ) + (func $core/memory/store/sixteenBitStoreIntoGBMemory (; 228 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) ;;@ core/memory/store.ts:35:2 (set_local $2 @@ -21252,52 +21337,71 @@ (get_local $2) ) ) - (func $core/interrupts/interrupts/_handleInterrupt (; 227 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/interrupts/interrupts/_handleInterrupt (; 229 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) - ;;@ core/interrupts/interrupts.ts:122:2 + ;;@ core/interrupts/interrupts.ts:144:2 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/interrupts/interrupts.ts:122:16 + ;;@ core/interrupts/interrupts.ts:144:16 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:127:2 + ;;@ core/interrupts/interrupts.ts:149:2 (set_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue - ;;@ core/interrupts/interrupts.ts:126:2 + ;;@ core/interrupts/interrupts.ts:148:2 (tee_local $1 - ;;@ core/interrupts/interrupts.ts:126:21 + ;;@ core/interrupts/interrupts.ts:148:21 (call $core/helpers/index/resetBitOnByte (get_local $0) - ;;@ core/interrupts/interrupts.ts:125:25 + ;;@ core/interrupts/interrupts.ts:147:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65295) ) ) ) ) - ;;@ core/interrupts/interrupts.ts:128:2 + ;;@ core/interrupts/interrupts.ts:150:2 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65295) (get_local $1) ) - ;;@ core/interrupts/interrupts.ts:131:2 + ;;@ core/interrupts/interrupts.ts:154:2 (set_global $core/cpu/cpu/Cpu.stackPointer (i32.and - ;;@ core/interrupts/interrupts.ts:131:21 + ;;@ core/interrupts/interrupts.ts:154:21 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/interrupts/interrupts.ts:131:40 + ;;@ core/interrupts/interrupts.ts:154:40 (i32.const 2) ) (i32.const 65535) ) ) - ;;@ core/interrupts/interrupts.ts:132:2 - (call $core/memory/store/sixteenBitStoreIntoGBMemory - ;;@ core/interrupts/interrupts.ts:132:30 - (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/interrupts/interrupts.ts:132:48 - (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/interrupts/interrupts.ts:155:2 + (if + ;;@ core/interrupts/interrupts.ts:155:10 + (call $core/cpu/cpu/Cpu.isHalted) + ;;@ core/interrupts/interrupts.ts:155:22 + (call $core/memory/store/sixteenBitStoreIntoGBMemory + ;;@ core/interrupts/interrupts.ts:156:32 + (get_global $core/cpu/cpu/Cpu.stackPointer) + ;;@ core/interrupts/interrupts.ts:156:50 + (i32.and + (i32.add + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/interrupts/interrupts.ts:156:71 + (i32.const 1) + ) + (i32.const 65535) + ) + ) + ;;@ core/interrupts/interrupts.ts:157:9 + (call $core/memory/store/sixteenBitStoreIntoGBMemory + ;;@ core/interrupts/interrupts.ts:158:32 + (get_global $core/cpu/cpu/Cpu.stackPointer) + ;;@ core/interrupts/interrupts.ts:158:50 + (get_global $core/cpu/cpu/Cpu.programCounter) + ) ) - ;;@ core/interrupts/interrupts.ts:137:2 + ;;@ core/interrupts/interrupts.ts:164:2 (block $break|0 (block $case3|0 (block $case2|0 @@ -21316,218 +21420,245 @@ (br $break|0) ) ) - ;;@ core/interrupts/interrupts.ts:139:6 + ;;@ core/interrupts/interrupts.ts:166:6 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested - ;;@ core/interrupts/interrupts.ts:139:46 + ;;@ core/interrupts/interrupts.ts:166:46 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:140:6 + ;;@ core/interrupts/interrupts.ts:167:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:140:27 + ;;@ core/interrupts/interrupts.ts:167:27 (i32.const 64) ) - ;;@ core/interrupts/interrupts.ts:141:6 + ;;@ core/interrupts/interrupts.ts:168:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:143:6 + ;;@ core/interrupts/interrupts.ts:170:6 (set_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested - ;;@ core/interrupts/interrupts.ts:143:43 + ;;@ core/interrupts/interrupts.ts:170:43 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:144:6 + ;;@ core/interrupts/interrupts.ts:171:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:144:27 + ;;@ core/interrupts/interrupts.ts:171:27 (i32.const 72) ) - ;;@ core/interrupts/interrupts.ts:145:6 + ;;@ core/interrupts/interrupts.ts:172:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:147:6 + ;;@ core/interrupts/interrupts.ts:174:6 (set_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested - ;;@ core/interrupts/interrupts.ts:147:45 + ;;@ core/interrupts/interrupts.ts:174:45 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:148:6 + ;;@ core/interrupts/interrupts.ts:175:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:148:27 + ;;@ core/interrupts/interrupts.ts:175:27 (i32.const 80) ) - ;;@ core/interrupts/interrupts.ts:149:6 + ;;@ core/interrupts/interrupts.ts:176:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:151:6 + ;;@ core/interrupts/interrupts.ts:178:6 (set_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested - ;;@ core/interrupts/interrupts.ts:151:46 + ;;@ core/interrupts/interrupts.ts:178:46 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:152:6 + ;;@ core/interrupts/interrupts.ts:179:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:152:27 + ;;@ core/interrupts/interrupts.ts:179:27 (i32.const 96) ) ) ) - (func $core/interrupts/interrupts/checkInterrupts (; 228 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/interrupts/interrupts/checkInterrupts (; 230 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) - ;;@ core/interrupts/interrupts.ts:82:6 + (local $1 i32) + ;;@ core/interrupts/interrupts.ts:85:2 (if - (tee_local $0 - (if (result i32) - (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) - ;;@ core/interrupts/interrupts.ts:82:42 - (i32.gt_s - (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) - ;;@ core/interrupts/interrupts.ts:82:78 - (i32.const 0) - ) - (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) + ;;@ core/interrupts/interrupts.ts:85:6 + (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay) + ;;@ core/interrupts/interrupts.ts:85:45 + (block + ;;@ core/interrupts/interrupts.ts:86:4 + (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch + ;;@ core/interrupts/interrupts.ts:86:39 + (i32.const 1) ) - ) - (set_local $0 - ;;@ core/interrupts/interrupts.ts:82:83 - (i32.gt_s - (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) - ;;@ core/interrupts/interrupts.ts:82:121 + ;;@ core/interrupts/interrupts.ts:87:4 + (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay + ;;@ core/interrupts/interrupts.ts:87:44 (i32.const 0) ) ) ) - ;;@ core/interrupts/interrupts.ts:82:2 + ;;@ core/interrupts/interrupts.ts:95:2 (if - (get_local $0) - ;;@ core/interrupts/interrupts.ts:82:124 - (block - ;;@ core/interrupts/interrupts.ts:86:4 - (set_local $0 - ;;@ core/interrupts/interrupts.ts:86:39 - (i32.const 0) + ;;@ core/interrupts/interrupts.ts:95:6 + (i32.gt_s + ;;@ core/interrupts/interrupts.ts:91:51 + (i32.and + (i32.and + (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) + ;;@ core/interrupts/interrupts.ts:92:4 + (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) + ) + ;;@ core/interrupts/interrupts.ts:93:4 + (i32.const 31) ) - ;;@ core/interrupts/interrupts.ts:89:4 + ;;@ core/interrupts/interrupts.ts:95:46 + (i32.const 0) + ) + ;;@ core/interrupts/interrupts.ts:95:49 + (block + ;;@ core/interrupts/interrupts.ts:103:4 (if - ;;@ core/interrupts/interrupts.ts:89:8 - (if (result i32) - (get_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptEnabled) - ;;@ core/interrupts/interrupts.ts:89:47 - (get_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested) - (get_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptEnabled) - ) - ;;@ core/interrupts/interrupts.ts:89:86 - (block - ;;@ core/interrupts/interrupts.ts:90:6 - (call $core/interrupts/interrupts/_handleInterrupt - (i32.const 0) - ) - ;;@ core/interrupts/interrupts.ts:91:6 - (set_local $0 - ;;@ core/interrupts/interrupts.ts:91:28 - (i32.const 1) - ) - ) - ;;@ core/interrupts/interrupts.ts:92:11 + ;;@ core/interrupts/interrupts.ts:103:8 + (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) + ;;@ core/interrupts/interrupts.ts:103:42 (if - ;;@ core/interrupts/interrupts.ts:92:15 - (if (result i32) - (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptEnabled) - ;;@ core/interrupts/interrupts.ts:92:51 - (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested) - (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptEnabled) + (tee_local $0 + ;;@ core/interrupts/interrupts.ts:104:10 + (if (result i32) + (get_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptEnabled) + ;;@ core/interrupts/interrupts.ts:104:49 + (get_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested) + (get_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptEnabled) + ) ) - ;;@ core/interrupts/interrupts.ts:92:87 + ;;@ core/interrupts/interrupts.ts:104:88 (block - ;;@ core/interrupts/interrupts.ts:93:6 + ;;@ core/interrupts/interrupts.ts:105:8 (call $core/interrupts/interrupts/_handleInterrupt - (i32.const 1) + (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:94:6 - (set_local $0 - ;;@ core/interrupts/interrupts.ts:94:28 + ;;@ core/interrupts/interrupts.ts:106:8 + (set_local $1 + ;;@ core/interrupts/interrupts.ts:106:30 (i32.const 1) ) ) - ;;@ core/interrupts/interrupts.ts:95:11 + ;;@ core/interrupts/interrupts.ts:107:13 (if - ;;@ core/interrupts/interrupts.ts:95:15 - (if (result i32) - (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptEnabled) - ;;@ core/interrupts/interrupts.ts:95:53 - (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested) - (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptEnabled) + (tee_local $0 + ;;@ core/interrupts/interrupts.ts:107:17 + (if (result i32) + (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptEnabled) + ;;@ core/interrupts/interrupts.ts:107:53 + (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested) + (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptEnabled) + ) ) - ;;@ core/interrupts/interrupts.ts:95:91 + ;;@ core/interrupts/interrupts.ts:107:89 (block - ;;@ core/interrupts/interrupts.ts:96:6 + ;;@ core/interrupts/interrupts.ts:108:8 (call $core/interrupts/interrupts/_handleInterrupt - (i32.const 2) + (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:97:6 - (set_local $0 - ;;@ core/interrupts/interrupts.ts:97:28 + ;;@ core/interrupts/interrupts.ts:109:8 + (set_local $1 + ;;@ core/interrupts/interrupts.ts:109:30 (i32.const 1) ) ) - ;;@ core/interrupts/interrupts.ts:98:11 + ;;@ core/interrupts/interrupts.ts:110:13 (if - ;;@ core/interrupts/interrupts.ts:98:15 - (if (result i32) - (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptEnabled) - ;;@ core/interrupts/interrupts.ts:98:54 - (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested) - (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptEnabled) + (tee_local $0 + ;;@ core/interrupts/interrupts.ts:110:17 + (if (result i32) + (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptEnabled) + ;;@ core/interrupts/interrupts.ts:110:55 + (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested) + (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptEnabled) + ) ) - ;;@ core/interrupts/interrupts.ts:98:93 + ;;@ core/interrupts/interrupts.ts:110:93 (block - ;;@ core/interrupts/interrupts.ts:99:6 + ;;@ core/interrupts/interrupts.ts:111:8 (call $core/interrupts/interrupts/_handleInterrupt - (i32.const 4) + (i32.const 2) ) - ;;@ core/interrupts/interrupts.ts:100:6 - (set_local $0 - ;;@ core/interrupts/interrupts.ts:100:28 + ;;@ core/interrupts/interrupts.ts:112:8 + (set_local $1 + ;;@ core/interrupts/interrupts.ts:112:30 (i32.const 1) ) ) + ;;@ core/interrupts/interrupts.ts:113:13 + (if + (tee_local $0 + ;;@ core/interrupts/interrupts.ts:113:17 + (if (result i32) + (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptEnabled) + ;;@ core/interrupts/interrupts.ts:113:56 + (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested) + (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptEnabled) + ) + ) + ;;@ core/interrupts/interrupts.ts:113:95 + (block + ;;@ core/interrupts/interrupts.ts:114:8 + (call $core/interrupts/interrupts/_handleInterrupt + (i32.const 4) + ) + ;;@ core/interrupts/interrupts.ts:115:8 + (set_local $1 + ;;@ core/interrupts/interrupts.ts:115:30 + (i32.const 1) + ) + ) + ) ) ) ) ) - ;;@ core/interrupts/interrupts.ts:104:4 + ;;@ core/interrupts/interrupts.ts:119:4 + (set_local $0 + ;;@ core/interrupts/interrupts.ts:119:37 + (i32.const 0) + ) + ;;@ core/interrupts/interrupts.ts:120:4 (if - (get_local $0) - ;;@ core/interrupts/interrupts.ts:104:29 + (get_local $1) + ;;@ core/interrupts/interrupts.ts:120:29 (block - ;;@ core/interrupts/interrupts.ts:105:6 + ;;@ core/interrupts/interrupts.ts:122:6 (set_local $0 - ;;@ core/interrupts/interrupts.ts:105:40 + ;;@ core/interrupts/interrupts.ts:122:30 (i32.const 20) ) - ;;@ core/interrupts/interrupts.ts:106:6 + ;;@ core/interrupts/interrupts.ts:123:6 (if - ;;@ core/interrupts/interrupts.ts:106:10 - (get_global $core/cpu/cpu/Cpu.isHalted) - ;;@ core/interrupts/interrupts.ts:106:24 + ;;@ core/interrupts/interrupts.ts:123:14 + (call $core/cpu/cpu/Cpu.isHalted) + ;;@ core/interrupts/interrupts.ts:123:26 (block - ;;@ core/interrupts/interrupts.ts:110:8 - (set_global $core/cpu/cpu/Cpu.isHalted - ;;@ core/interrupts/interrupts.ts:110:23 - (i32.const 0) - ) - ;;@ core/interrupts/interrupts.ts:111:8 + ;;@ core/interrupts/interrupts.ts:127:12 + (call $core/cpu/cpu/Cpu.exitHalt) + ;;@ core/interrupts/interrupts.ts:128:8 (set_local $0 (i32.const 24) ) ) ) - ;;@ core/interrupts/interrupts.ts:113:13 - (return - (get_local $0) - ) ) ) + ;;@ core/interrupts/interrupts.ts:132:4 + (if + ;;@ core/interrupts/interrupts.ts:132:12 + (call $core/cpu/cpu/Cpu.isHalted) + ;;@ core/interrupts/interrupts.ts:132:24 + (call $core/cpu/cpu/Cpu.exitHalt) + ) + ;;@ core/interrupts/interrupts.ts:136:11 + (return + (get_local $0) + ) ) ) (i32.const 0) ) - (func $core/core/executeStep (; 229 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/executeStep (; 231 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) ;;@ core/core.ts:285:2 @@ -21535,146 +21666,129 @@ ;;@ core/core.ts:285:15 (i32.const 1) ) - ;;@ core/core.ts:289:2 + ;;@ core/core.ts:288:2 + (if + ;;@ core/core.ts:288:6 + (get_global $core/cpu/cpu/Cpu.isHaltBug) + ;;@ core/core.ts:288:21 + (block + ;;@ core/core.ts:300:4 + (call $core/core/syncCycles + ;;@ core/core.ts:299:29 + (call $core/cpu/opcodes/executeOpcode + ;;@ core/core.ts:298:29 + (i32.and + ;;@ core/core.ts:298:33 + (call $core/memory/load/eightBitLoadFromGBMemory + ;;@ core/core.ts:298:58 + (get_global $core/cpu/cpu/Cpu.programCounter) + ) + (i32.const 255) + ) + ) + ) + ;;@ core/core.ts:301:4 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/core.ts:301:25 + (call $core/portable/portable/u16Portable + ;;@ core/core.ts:301:37 + (i32.sub + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/core.ts:301:58 + (i32.const 1) + ) + ) + ) + ;;@ core/core.ts:302:8 + (call $core/cpu/cpu/Cpu.exitHalt) + ) + ) + ;;@ core/core.ts:308:2 + (if + ;;@ core/core.ts:308:6 + (i32.gt_s + ;;@ core/core.ts:307:2 + (tee_local $1 + ;;@ core/core.ts:307:29 + (call $core/interrupts/interrupts/checkInterrupts) + ) + ;;@ core/core.ts:308:24 + (i32.const 0) + ) + ;;@ core/core.ts:308:27 + (call $core/core/syncCycles + (get_local $1) + ) + ) + ;;@ core/core.ts:314:2 (set_local $0 - ;;@ core/core.ts:289:28 + ;;@ core/core.ts:314:28 (i32.const 4) ) - ;;@ core/core.ts:293:6 + ;;@ core/core.ts:319:6 (if (tee_local $1 (i32.eqz - ;;@ core/core.ts:293:7 - (get_global $core/cpu/cpu/Cpu.isHalted) + ;;@ core/core.ts:319:11 + (call $core/cpu/cpu/Cpu.isHalted) ) ) (set_local $1 - ;;@ core/core.ts:293:23 + ;;@ core/core.ts:319:25 (i32.eqz - ;;@ core/core.ts:293:24 + ;;@ core/core.ts:319:26 (get_global $core/cpu/cpu/Cpu.isStopped) ) ) ) - ;;@ core/core.ts:293:2 + ;;@ core/core.ts:319:2 (if (get_local $1) - ;;@ core/core.ts:295:4 + ;;@ core/core.ts:321:4 (set_local $0 - ;;@ core/core.ts:295:21 + ;;@ core/core.ts:321:21 (call $core/cpu/opcodes/executeOpcode - ;;@ core/core.ts:294:13 + ;;@ core/core.ts:320:13 (i32.and - ;;@ core/core.ts:294:17 + ;;@ core/core.ts:320:17 (call $core/memory/load/eightBitLoadFromGBMemory - ;;@ core/core.ts:294:42 + ;;@ core/core.ts:320:42 (get_global $core/cpu/cpu/Cpu.programCounter) ) (i32.const 255) ) ) ) - (block - ;;@ core/core.ts:298:8 - (if - (tee_local $1 - (if (result i32) - (get_global $core/cpu/cpu/Cpu.isHalted) - ;;@ core/core.ts:298:24 - (i32.eqz - ;;@ core/core.ts:298:25 - (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) - ) - (get_global $core/cpu/cpu/Cpu.isHalted) - ) - ) - (set_local $1 - ;;@ core/core.ts:298:72 - (call $core/interrupts/interrupts/Interrupts.areInterruptsPending) - ) - ) - ;;@ core/core.ts:296:9 - (if - (get_local $1) - ;;@ core/core.ts:298:96 - (block - ;;@ core/core.ts:299:6 - (set_global $core/cpu/cpu/Cpu.isHalted - ;;@ core/core.ts:299:21 - (i32.const 0) - ) - ;;@ core/core.ts:300:6 - (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/core.ts:300:22 - (i32.const 0) - ) - ;;@ core/core.ts:314:6 - (set_local $0 - ;;@ core/core.ts:314:23 - (call $core/cpu/opcodes/executeOpcode - ;;@ core/core.ts:313:15 - (i32.and - ;;@ core/core.ts:313:19 - (call $core/memory/load/eightBitLoadFromGBMemory - ;;@ core/core.ts:313:44 - (get_global $core/cpu/cpu/Cpu.programCounter) - ) - (i32.const 255) - ) - ) - ) - ;;@ core/core.ts:315:6 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/core.ts:315:27 - (call $core/portable/portable/u16Portable - ;;@ core/core.ts:315:39 - (i32.sub - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/core.ts:315:60 - (i32.const 1) - ) - ) - ) - ) - ) - ) ) - ;;@ core/core.ts:320:2 + ;;@ core/core.ts:325:2 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/core.ts:320:18 + ;;@ core/core.ts:325:18 (i32.and (get_global $core/cpu/cpu/Cpu.registerF) - ;;@ core/core.ts:320:34 + ;;@ core/core.ts:325:34 (i32.const 240) ) ) - ;;@ core/core.ts:323:2 + ;;@ core/core.ts:328:2 (if - ;;@ core/core.ts:323:6 + ;;@ core/core.ts:328:6 (i32.le_s (get_local $0) - ;;@ core/core.ts:323:24 + ;;@ core/core.ts:328:24 (i32.const 0) ) - ;;@ core/core.ts:323:27 + ;;@ core/core.ts:328:27 (return (get_local $0) ) ) - ;;@ core/core.ts:334:2 + ;;@ core/core.ts:333:2 (call $core/core/syncCycles - ;;@ core/core.ts:331:2 - (tee_local $0 - (i32.add - (get_local $0) - ;;@ core/core.ts:331:20 - (call $core/interrupts/interrupts/checkInterrupts) - ) - ) + (get_local $0) ) (get_local $0) ) - (func $core/core/executeFrame (; 230 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/executeFrame (; 232 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) (loop $continue|0 @@ -21754,11 +21868,11 @@ ) (i32.const -1) ) - (func $core/sound/sound/getNumberOfSamplesInAudioBuffer (; 231 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/sound/getNumberOfSamplesInAudioBuffer (; 233 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/sound/sound.ts:202:15 (get_global $core/sound/sound/Sound.audioQueueIndex) ) - (func $core/core/executeFrameAndCheckAudio (; 232 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/core/executeFrameAndCheckAudio (; 234 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/core.ts:210:2 @@ -21883,7 +21997,7 @@ ) (i32.const -1) ) - (func $core/core/executeFrameUntilBreakpoint (; 233 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/core/executeFrameUntilBreakpoint (; 235 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (loop $continue|0 @@ -21985,22 +22099,22 @@ ) (i32.const -1) ) - (func $core/core/getSaveStateMemoryOffset (; 234 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - ;;@ core/core.ts:382:48 + (func $core/core/getSaveStateMemoryOffset (; 236 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + ;;@ core/core.ts:381:48 (i32.add - ;;@ core/core.ts:382:9 + ;;@ core/core.ts:381:9 (i32.add (get_local $0) (i32.const 1024) ) - ;;@ core/core.ts:382:43 + ;;@ core/core.ts:381:43 (i32.mul (get_local $1) (i32.const 50) ) ) ) - (func $core/memory/store/storeBooleanDirectlyToWasmMemory (; 235 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/storeBooleanDirectlyToWasmMemory (; 237 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/memory/store.ts:44:2 (if (i32.and @@ -22021,152 +22135,174 @@ ) ) ) - (func $core/cpu/cpu/Cpu.saveState (; 236 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:74:4 + (func $core/cpu/cpu/Cpu.saveState (; 238 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:111:4 (i32.store8 - ;;@ core/cpu/cpu.ts:74:14 + ;;@ core/cpu/cpu.ts:111:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:74:39 + ;;@ core/cpu/cpu.ts:111:39 (i32.const 0) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:74:65 + ;;@ core/cpu/cpu.ts:111:65 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/cpu.ts:75:4 + ;;@ core/cpu/cpu.ts:112:4 (i32.store8 - ;;@ core/cpu/cpu.ts:75:14 + ;;@ core/cpu/cpu.ts:112:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:75:39 + ;;@ core/cpu/cpu.ts:112:39 (i32.const 1) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:75:65 + ;;@ core/cpu/cpu.ts:112:65 (get_global $core/cpu/cpu/Cpu.registerB) ) - ;;@ core/cpu/cpu.ts:76:4 + ;;@ core/cpu/cpu.ts:113:4 (i32.store8 - ;;@ core/cpu/cpu.ts:76:14 + ;;@ core/cpu/cpu.ts:113:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:76:39 + ;;@ core/cpu/cpu.ts:113:39 (i32.const 2) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:76:65 + ;;@ core/cpu/cpu.ts:113:65 (get_global $core/cpu/cpu/Cpu.registerC) ) - ;;@ core/cpu/cpu.ts:77:4 + ;;@ core/cpu/cpu.ts:114:4 (i32.store8 - ;;@ core/cpu/cpu.ts:77:14 + ;;@ core/cpu/cpu.ts:114:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:77:39 + ;;@ core/cpu/cpu.ts:114:39 (i32.const 3) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:77:65 + ;;@ core/cpu/cpu.ts:114:65 (get_global $core/cpu/cpu/Cpu.registerD) ) - ;;@ core/cpu/cpu.ts:78:4 + ;;@ core/cpu/cpu.ts:115:4 (i32.store8 - ;;@ core/cpu/cpu.ts:78:14 + ;;@ core/cpu/cpu.ts:115:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:78:39 + ;;@ core/cpu/cpu.ts:115:39 (i32.const 4) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:78:65 + ;;@ core/cpu/cpu.ts:115:65 (get_global $core/cpu/cpu/Cpu.registerE) ) - ;;@ core/cpu/cpu.ts:79:4 + ;;@ core/cpu/cpu.ts:116:4 (i32.store8 - ;;@ core/cpu/cpu.ts:79:14 + ;;@ core/cpu/cpu.ts:116:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:79:39 + ;;@ core/cpu/cpu.ts:116:39 (i32.const 5) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:79:65 + ;;@ core/cpu/cpu.ts:116:65 (get_global $core/cpu/cpu/Cpu.registerH) ) - ;;@ core/cpu/cpu.ts:80:4 + ;;@ core/cpu/cpu.ts:117:4 (i32.store8 - ;;@ core/cpu/cpu.ts:80:14 + ;;@ core/cpu/cpu.ts:117:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:80:39 + ;;@ core/cpu/cpu.ts:117:39 (i32.const 6) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:80:65 + ;;@ core/cpu/cpu.ts:117:65 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/cpu.ts:81:4 + ;;@ core/cpu/cpu.ts:118:4 (i32.store8 - ;;@ core/cpu/cpu.ts:81:14 + ;;@ core/cpu/cpu.ts:118:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:81:39 + ;;@ core/cpu/cpu.ts:118:39 (i32.const 7) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:81:65 + ;;@ core/cpu/cpu.ts:118:65 (get_global $core/cpu/cpu/Cpu.registerF) ) - ;;@ core/cpu/cpu.ts:83:4 + ;;@ core/cpu/cpu.ts:120:4 (i32.store16 - ;;@ core/cpu/cpu.ts:83:15 + ;;@ core/cpu/cpu.ts:120:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:83:40 + ;;@ core/cpu/cpu.ts:120:40 (i32.const 8) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:83:66 + ;;@ core/cpu/cpu.ts:120:66 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - ;;@ core/cpu/cpu.ts:84:4 + ;;@ core/cpu/cpu.ts:121:4 (i32.store16 - ;;@ core/cpu/cpu.ts:84:15 + ;;@ core/cpu/cpu.ts:121:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:84:40 + ;;@ core/cpu/cpu.ts:121:40 (i32.const 10) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:84:66 + ;;@ core/cpu/cpu.ts:121:66 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/cpu.ts:86:4 + ;;@ core/cpu/cpu.ts:123:4 (i32.store - ;;@ core/cpu/cpu.ts:86:15 + ;;@ core/cpu/cpu.ts:123:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:86:40 + ;;@ core/cpu/cpu.ts:123:40 (i32.const 12) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:86:66 + ;;@ core/cpu/cpu.ts:123:66 (get_global $core/cpu/cpu/Cpu.currentCycles) ) - ;;@ core/cpu/cpu.ts:88:4 + ;;@ core/cpu/cpu.ts:125:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:88:37 + ;;@ core/cpu/cpu.ts:125:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:88:62 + ;;@ core/cpu/cpu.ts:125:62 (i32.const 17) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:88:88 - (get_global $core/cpu/cpu/Cpu.isHalted) + ;;@ core/cpu/cpu.ts:125:88 + (get_global $core/cpu/cpu/Cpu.isHaltNormal) ) - ;;@ core/cpu/cpu.ts:89:4 + ;;@ core/cpu/cpu.ts:126:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:89:37 + ;;@ core/cpu/cpu.ts:126:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:89:62 + ;;@ core/cpu/cpu.ts:126:62 (i32.const 18) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:89:88 + ;;@ core/cpu/cpu.ts:126:88 + (get_global $core/cpu/cpu/Cpu.isHaltNoJump) + ) + ;;@ core/cpu/cpu.ts:127:4 + (call $core/memory/store/storeBooleanDirectlyToWasmMemory + ;;@ core/cpu/cpu.ts:127:37 + (call $core/core/getSaveStateMemoryOffset + ;;@ core/cpu/cpu.ts:127:62 + (i32.const 19) + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:127:88 + (get_global $core/cpu/cpu/Cpu.isHaltBug) + ) + ;;@ core/cpu/cpu.ts:128:4 + (call $core/memory/store/storeBooleanDirectlyToWasmMemory + ;;@ core/cpu/cpu.ts:128:37 + (call $core/core/getSaveStateMemoryOffset + ;;@ core/cpu/cpu.ts:128:62 + (i32.const 20) + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:128:88 (get_global $core/cpu/cpu/Cpu.isStopped) ) ) - (func $core/graphics/graphics/Graphics.saveState (; 237 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/graphics/Graphics.saveState (; 239 ;) (; has Stack IR ;) (type $v) ;;@ core/graphics/graphics.ts:102:4 (i32.store ;;@ core/graphics/graphics.ts:102:15 @@ -22196,7 +22332,7 @@ (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) ) - (func $core/interrupts/interrupts/Interrupts.saveState (; 238 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/Interrupts.saveState (; 240 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:67:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/interrupts/interrupts.ts:67:37 @@ -22220,10 +22356,10 @@ (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay) ) ) - (func $core/joypad/joypad/Joypad.saveState (; 239 ;) (; has Stack IR ;) (type $v) + (func $core/joypad/joypad/Joypad.saveState (; 241 ;) (; has Stack IR ;) (type $v) (nop) ) - (func $core/memory/memory/Memory.saveState (; 240 ;) (; has Stack IR ;) (type $v) + (func $core/memory/memory/Memory.saveState (; 242 ;) (; has Stack IR ;) (type $v) ;;@ core/memory/memory.ts:104:4 (i32.store16 ;;@ core/memory/memory.ts:104:15 @@ -22324,7 +22460,7 @@ (get_global $core/memory/memory/Memory.isMBC5) ) ) - (func $core/timers/timers/Timers.saveState (; 241 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/Timers.saveState (; 243 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:138:4 (i32.store ;;@ core/timers/timers.ts:138:15 @@ -22376,7 +22512,7 @@ (get_global $core/timers/timers/Timers.timerCounter) ) ) - (func $core/sound/sound/Sound.saveState (; 242 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/Sound.saveState (; 244 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:126:4 (i32.store ;;@ core/sound/sound.ts:126:15 @@ -22411,7 +22547,7 @@ (get_global $core/sound/sound/Sound.frameSequencer) ) ) - (func $core/sound/channel1/Channel1.saveState (; 243 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.saveState (; 245 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:115:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel1.ts:115:37 @@ -22523,7 +22659,7 @@ (get_global $core/sound/channel1/Channel1.sweepShadowFrequency) ) ) - (func $core/sound/channel2/Channel2.saveState (; 244 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.saveState (; 246 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:99:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel2.ts:99:37 @@ -22602,7 +22738,7 @@ (get_global $core/sound/channel2/Channel2.waveFormPositionOnDuty) ) ) - (func $core/sound/channel3/Channel3.saveState (; 245 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.saveState (; 247 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:97:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel3.ts:97:37 @@ -22648,7 +22784,7 @@ (get_global $core/sound/channel3/Channel3.waveTablePosition) ) ) - (func $core/sound/channel4/Channel4.saveState (; 246 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.saveState (; 248 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:120:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel4.ts:120:37 @@ -22716,36 +22852,36 @@ (get_global $core/sound/channel4/Channel4.linearFeedbackShiftRegister) ) ) - (func $core/core/saveState (; 247 ;) (; has Stack IR ;) (type $v) - ;;@ core/core.ts:387:6 + (func $core/core/saveState (; 249 ;) (; has Stack IR ;) (type $v) + ;;@ core/core.ts:386:6 (call $core/cpu/cpu/Cpu.saveState) - ;;@ core/core.ts:388:11 + ;;@ core/core.ts:387:11 (call $core/graphics/graphics/Graphics.saveState) - ;;@ core/core.ts:389:13 + ;;@ core/core.ts:388:13 (call $core/interrupts/interrupts/Interrupts.saveState) - ;;@ core/core.ts:390:9 + ;;@ core/core.ts:389:9 (call $core/joypad/joypad/Joypad.saveState) - ;;@ core/core.ts:391:9 + ;;@ core/core.ts:390:9 (call $core/memory/memory/Memory.saveState) - ;;@ core/core.ts:392:9 + ;;@ core/core.ts:391:9 (call $core/timers/timers/Timers.saveState) - ;;@ core/core.ts:393:8 + ;;@ core/core.ts:392:8 (call $core/sound/sound/Sound.saveState) - ;;@ core/core.ts:394:11 + ;;@ core/core.ts:393:11 (call $core/sound/channel1/Channel1.saveState) - ;;@ core/core.ts:395:11 + ;;@ core/core.ts:394:11 (call $core/sound/channel2/Channel2.saveState) - ;;@ core/core.ts:396:11 + ;;@ core/core.ts:395:11 (call $core/sound/channel3/Channel3.saveState) - ;;@ core/core.ts:397:11 + ;;@ core/core.ts:396:11 (call $core/sound/channel4/Channel4.saveState) - ;;@ core/core.ts:400:2 + ;;@ core/core.ts:399:2 (set_global $core/core/hasStarted - ;;@ core/core.ts:400:15 + ;;@ core/core.ts:399:15 (i32.const 0) ) ) - (func $core/memory/load/loadBooleanDirectlyFromWasmMemory (; 248 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/loadBooleanDirectlyFromWasmMemory (; 250 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/memory/load.ts:55:2 (if ;;@ core/memory/load.ts:55:6 @@ -22763,165 +22899,189 @@ ) (i32.const 0) ) - (func $core/cpu/cpu/Cpu.loadState (; 249 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:95:4 + (func $core/cpu/cpu/Cpu.loadState (; 251 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:134:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:95:20 + ;;@ core/cpu/cpu.ts:134:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:95:29 + ;;@ core/cpu/cpu.ts:134:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:95:54 + ;;@ core/cpu/cpu.ts:134:54 (i32.const 0) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:96:4 + ;;@ core/cpu/cpu.ts:135:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:96:20 + ;;@ core/cpu/cpu.ts:135:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:96:29 + ;;@ core/cpu/cpu.ts:135:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:96:54 + ;;@ core/cpu/cpu.ts:135:54 (i32.const 1) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:97:4 + ;;@ core/cpu/cpu.ts:136:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:97:20 + ;;@ core/cpu/cpu.ts:136:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:97:29 + ;;@ core/cpu/cpu.ts:136:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:97:54 + ;;@ core/cpu/cpu.ts:136:54 (i32.const 2) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:98:4 + ;;@ core/cpu/cpu.ts:137:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:98:20 + ;;@ core/cpu/cpu.ts:137:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:98:29 + ;;@ core/cpu/cpu.ts:137:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:98:54 + ;;@ core/cpu/cpu.ts:137:54 (i32.const 3) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:99:4 + ;;@ core/cpu/cpu.ts:138:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:99:20 + ;;@ core/cpu/cpu.ts:138:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:99:29 + ;;@ core/cpu/cpu.ts:138:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:99:54 + ;;@ core/cpu/cpu.ts:138:54 (i32.const 4) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:100:4 + ;;@ core/cpu/cpu.ts:139:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:100:20 + ;;@ core/cpu/cpu.ts:139:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:100:29 + ;;@ core/cpu/cpu.ts:139:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:100:54 + ;;@ core/cpu/cpu.ts:139:54 (i32.const 5) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:101:4 + ;;@ core/cpu/cpu.ts:140:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:101:20 + ;;@ core/cpu/cpu.ts:140:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:101:29 + ;;@ core/cpu/cpu.ts:140:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:101:54 + ;;@ core/cpu/cpu.ts:140:54 (i32.const 6) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:102:4 + ;;@ core/cpu/cpu.ts:141:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:102:20 + ;;@ core/cpu/cpu.ts:141:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:102:29 + ;;@ core/cpu/cpu.ts:141:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:102:54 + ;;@ core/cpu/cpu.ts:141:54 (i32.const 7) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:104:4 + ;;@ core/cpu/cpu.ts:143:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:104:23 + ;;@ core/cpu/cpu.ts:143:23 (i32.load16_u - ;;@ core/cpu/cpu.ts:104:33 + ;;@ core/cpu/cpu.ts:143:33 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:104:58 + ;;@ core/cpu/cpu.ts:143:58 (i32.const 8) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:105:4 + ;;@ core/cpu/cpu.ts:144:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:105:25 + ;;@ core/cpu/cpu.ts:144:25 (i32.load16_u - ;;@ core/cpu/cpu.ts:105:35 + ;;@ core/cpu/cpu.ts:144:35 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:105:60 + ;;@ core/cpu/cpu.ts:144:60 (i32.const 10) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:107:4 + ;;@ core/cpu/cpu.ts:146:4 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:107:24 + ;;@ core/cpu/cpu.ts:146:24 (i32.load - ;;@ core/cpu/cpu.ts:107:34 + ;;@ core/cpu/cpu.ts:146:34 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:107:59 + ;;@ core/cpu/cpu.ts:146:59 (i32.const 12) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:109:4 - (set_global $core/cpu/cpu/Cpu.isHalted - ;;@ core/cpu/cpu.ts:109:19 + ;;@ core/cpu/cpu.ts:148:4 + (set_global $core/cpu/cpu/Cpu.isHaltNormal + ;;@ core/cpu/cpu.ts:148:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:109:53 + ;;@ core/cpu/cpu.ts:148:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:109:78 + ;;@ core/cpu/cpu.ts:148:82 (i32.const 17) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:110:4 - (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:110:20 + ;;@ core/cpu/cpu.ts:149:4 + (set_global $core/cpu/cpu/Cpu.isHaltNoJump + ;;@ core/cpu/cpu.ts:149:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:110:54 + ;;@ core/cpu/cpu.ts:149:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:110:79 + ;;@ core/cpu/cpu.ts:149:82 (i32.const 18) (i32.const 0) ) ) ) + ;;@ core/cpu/cpu.ts:150:4 + (set_global $core/cpu/cpu/Cpu.isHaltBug + ;;@ core/cpu/cpu.ts:150:20 + (call $core/memory/load/loadBooleanDirectlyFromWasmMemory + ;;@ core/cpu/cpu.ts:150:54 + (call $core/core/getSaveStateMemoryOffset + ;;@ core/cpu/cpu.ts:150:79 + (i32.const 19) + (i32.const 0) + ) + ) + ) + ;;@ core/cpu/cpu.ts:151:4 + (set_global $core/cpu/cpu/Cpu.isStopped + ;;@ core/cpu/cpu.ts:151:20 + (call $core/memory/load/loadBooleanDirectlyFromWasmMemory + ;;@ core/cpu/cpu.ts:151:54 + (call $core/core/getSaveStateMemoryOffset + ;;@ core/cpu/cpu.ts:151:79 + (i32.const 20) + (i32.const 0) + ) + ) + ) ) - (func $core/graphics/graphics/Graphics.loadState (; 250 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/graphics/Graphics.loadState (; 252 ;) (; has Stack IR ;) (type $v) ;;@ core/graphics/graphics.ts:110:4 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter ;;@ core/graphics/graphics.ts:110:36 @@ -22961,7 +23121,7 @@ ) ) ) - (func $core/interrupts/interrupts/Interrupts.loadState (; 251 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/Interrupts.loadState (; 253 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:73:4 (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch ;;@ core/interrupts/interrupts.ts:73:39 @@ -23001,7 +23161,7 @@ ) ) ) - (func $core/joypad/joypad/Joypad.loadState (; 252 ;) (; has Stack IR ;) (type $v) + (func $core/joypad/joypad/Joypad.loadState (; 254 ;) (; has Stack IR ;) (type $v) ;;@ core/joypad/joypad.ts:60:11 (call $core/joypad/joypad/Joypad.updateJoypad ;;@ core/joypad/joypad.ts:60:24 @@ -23010,7 +23170,7 @@ ) ) ) - (func $core/memory/memory/Memory.loadState (; 253 ;) (; has Stack IR ;) (type $v) + (func $core/memory/memory/Memory.loadState (; 255 ;) (; has Stack IR ;) (type $v) ;;@ core/memory/memory.ts:119:4 (set_global $core/memory/memory/Memory.currentRomBank ;;@ core/memory/memory.ts:119:28 @@ -23120,7 +23280,7 @@ ) ) ) - (func $core/timers/timers/Timers.loadState (; 254 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/Timers.loadState (; 256 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:148:4 (set_global $core/timers/timers/Timers.currentCycles ;;@ core/timers/timers.ts:148:27 @@ -23191,14 +23351,14 @@ ) ) ) - (func $core/sound/sound/clearAudioBuffer (; 255 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/clearAudioBuffer (; 257 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:207:2 (set_global $core/sound/sound/Sound.audioQueueIndex ;;@ core/sound/sound.ts:207:26 (i32.const 0) ) ) - (func $core/sound/sound/Sound.loadState (; 256 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/Sound.loadState (; 258 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:133:4 (set_global $core/sound/sound/Sound.frameSequenceCycleCounter ;;@ core/sound/sound.ts:133:38 @@ -23238,7 +23398,7 @@ ;;@ core/sound/sound.ts:137:4 (call $core/sound/sound/clearAudioBuffer) ) - (func $core/sound/channel1/Channel1.loadState (; 257 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.loadState (; 259 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:131:4 (set_global $core/sound/channel1/Channel1.isEnabled ;;@ core/sound/channel1.ts:131:25 @@ -23360,7 +23520,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.loadState (; 258 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.loadState (; 260 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:111:4 (set_global $core/sound/channel2/Channel2.isEnabled ;;@ core/sound/channel2.ts:111:25 @@ -23446,7 +23606,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.loadState (; 259 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.loadState (; 261 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:105:4 (set_global $core/sound/channel3/Channel3.isEnabled ;;@ core/sound/channel3.ts:105:25 @@ -23496,7 +23656,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.loadState (; 260 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.loadState (; 262 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:130:4 (set_global $core/sound/channel4/Channel4.isEnabled ;;@ core/sound/channel4.ts:130:25 @@ -23570,36 +23730,36 @@ ) ) ) - (func $core/core/loadState (; 261 ;) (; has Stack IR ;) (type $v) - ;;@ core/core.ts:405:6 + (func $core/core/loadState (; 263 ;) (; has Stack IR ;) (type $v) + ;;@ core/core.ts:404:6 (call $core/cpu/cpu/Cpu.loadState) - ;;@ core/core.ts:406:11 + ;;@ core/core.ts:405:11 (call $core/graphics/graphics/Graphics.loadState) - ;;@ core/core.ts:407:13 + ;;@ core/core.ts:406:13 (call $core/interrupts/interrupts/Interrupts.loadState) - ;;@ core/core.ts:408:9 + ;;@ core/core.ts:407:9 (call $core/joypad/joypad/Joypad.loadState) - ;;@ core/core.ts:409:9 + ;;@ core/core.ts:408:9 (call $core/memory/memory/Memory.loadState) - ;;@ core/core.ts:410:9 + ;;@ core/core.ts:409:9 (call $core/timers/timers/Timers.loadState) - ;;@ core/core.ts:411:8 + ;;@ core/core.ts:410:8 (call $core/sound/sound/Sound.loadState) - ;;@ core/core.ts:412:11 + ;;@ core/core.ts:411:11 (call $core/sound/channel1/Channel1.loadState) - ;;@ core/core.ts:413:11 + ;;@ core/core.ts:412:11 (call $core/sound/channel2/Channel2.loadState) - ;;@ core/core.ts:414:11 + ;;@ core/core.ts:413:11 (call $core/sound/channel3/Channel3.loadState) - ;;@ core/core.ts:415:11 + ;;@ core/core.ts:414:11 (call $core/sound/channel4/Channel4.loadState) - ;;@ core/core.ts:418:2 + ;;@ core/core.ts:417:2 (set_global $core/core/hasStarted - ;;@ core/core.ts:418:15 + ;;@ core/core.ts:417:15 (i32.const 0) ) ) - (func $core/core/hasCoreStarted (; 262 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/hasCoreStarted (; 264 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/core.ts:32:2 (if ;;@ core/core.ts:32:6 @@ -23610,7 +23770,7 @@ ) (i32.const 0) ) - (func $core/joypad/joypad/_getJoypadButtonStateFromButtonId (; 263 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/joypad/joypad/_getJoypadButtonStateFromButtonId (; 265 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $case8|0 (block $case7|0 @@ -23694,7 +23854,7 @@ ;;@ core/joypad/joypad.ts:251:13 (i32.const 0) ) - (func $core/joypad/joypad/_setJoypadButtonStateFromButtonId (; 264 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/joypad/joypad/_setJoypadButtonStateFromButtonId (; 266 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) ;;@ core/joypad/joypad.ts:256:2 (block $break|0 @@ -23807,18 +23967,18 @@ ) ) ) - (func $core/interrupts/interrupts/requestJoypadInterrupt (; 265 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:188:2 + (func $core/interrupts/interrupts/requestJoypadInterrupt (; 267 ;) (; has Stack IR ;) (type $v) + ;;@ core/interrupts/interrupts.ts:221:2 (set_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested - ;;@ core/interrupts/interrupts.ts:188:42 + ;;@ core/interrupts/interrupts.ts:221:42 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:189:2 + ;;@ core/interrupts/interrupts.ts:222:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 4) ) ) - (func $core/joypad/joypad/_pressJoypadButton (; 266 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/_pressJoypadButton (; 268 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) ;;@ core/joypad/joypad.ts:186:2 @@ -23915,7 +24075,7 @@ ) ) ) - (func $core/joypad/joypad/_releaseJoypadButton (; 267 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/_releaseJoypadButton (; 269 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/joypad/joypad.ts:229:2 (call $core/joypad/joypad/_setJoypadButtonStateFromButtonId (get_local $0) @@ -23923,7 +24083,7 @@ (i32.const 0) ) ) - (func $core/joypad/joypad/setJoypadState (; 268 ;) (; has Stack IR ;) (type $iiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) + (func $core/joypad/joypad/setJoypadState (; 270 ;) (; has Stack IR ;) (type $iiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) ;;@ core/joypad/joypad.ts:135:2 (if ;;@ core/joypad/joypad.ts:135:6 @@ -24077,58 +24237,58 @@ ) ) ) - (func $core/debug/debug-cpu/getRegisterA (; 269 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterA (; 271 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:6:13 (get_global $core/cpu/cpu/Cpu.registerA) ) - (func $core/debug/debug-cpu/getRegisterB (; 270 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterB (; 272 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:10:13 (get_global $core/cpu/cpu/Cpu.registerB) ) - (func $core/debug/debug-cpu/getRegisterC (; 271 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterC (; 273 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:14:13 (get_global $core/cpu/cpu/Cpu.registerC) ) - (func $core/debug/debug-cpu/getRegisterD (; 272 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterD (; 274 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:18:13 (get_global $core/cpu/cpu/Cpu.registerD) ) - (func $core/debug/debug-cpu/getRegisterE (; 273 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterE (; 275 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:22:13 (get_global $core/cpu/cpu/Cpu.registerE) ) - (func $core/debug/debug-cpu/getRegisterH (; 274 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterH (; 276 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:26:13 (get_global $core/cpu/cpu/Cpu.registerH) ) - (func $core/debug/debug-cpu/getRegisterL (; 275 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterL (; 277 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:30:13 (get_global $core/cpu/cpu/Cpu.registerL) ) - (func $core/debug/debug-cpu/getRegisterF (; 276 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterF (; 278 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:34:13 (get_global $core/cpu/cpu/Cpu.registerF) ) - (func $core/debug/debug-cpu/getProgramCounter (; 277 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getProgramCounter (; 279 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:38:13 (get_global $core/cpu/cpu/Cpu.programCounter) ) - (func $core/debug/debug-cpu/getStackPointer (; 278 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getStackPointer (; 280 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:42:13 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - (func $core/debug/debug-cpu/getOpcodeAtProgramCounter (; 279 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getOpcodeAtProgramCounter (; 281 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:46:56 (call $core/memory/load/eightBitLoadFromGBMemory ;;@ core/debug/debug-cpu.ts:46:38 (get_global $core/cpu/cpu/Cpu.programCounter) ) ) - (func $core/debug/debug-graphics/getLY (; 280 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-graphics/getLY (; 282 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-graphics.ts:19:18 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) - (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory (; 281 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory (; 283 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -24560,7 +24720,7 @@ ) ) ) - (func $core/graphics/tiles/drawPixelsFromLineOfTile|trampoline (; 282 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) + (func $core/graphics/tiles/drawPixelsFromLineOfTile|trampoline (; 284 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) (block $3of3 (block $2of3 (block $1of3 @@ -24606,7 +24766,7 @@ (get_local $12) ) ) - (func $core/debug/debug-graphics/drawTileDataToWasmMemory (; 283 ;) (; has Stack IR ;) (type $v) + (func $core/debug/debug-graphics/drawTileDataToWasmMemory (; 285 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -24815,19 +24975,19 @@ ) ) ) - (func $core/debug/debug-timer/getDIV (; 284 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getDIV (; 286 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:5:16 (get_global $core/timers/timers/Timers.dividerRegister) ) - (func $core/debug/debug-timer/getTIMA (; 285 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTIMA (; 287 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:9:16 (get_global $core/timers/timers/Timers.timerCounter) ) - (func $core/debug/debug-timer/getTMA (; 286 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTMA (; 288 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:13:16 (get_global $core/timers/timers/Timers.timerModulo) ) - (func $core/debug/debug-timer/getTAC (; 287 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTAC (; 289 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/debug/debug-timer.ts:17:2 (set_local $0 @@ -24850,7 +25010,7 @@ ) (get_local $0) ) - (func $start (; 288 ;) (; has Stack IR ;) (type $v) + (func $start (; 290 ;) (; has Stack IR ;) (type $v) ;;@ core/core.ts:25:0 (if ;;@ core/core.ts:25:4 @@ -24872,7 +25032,7 @@ ) ) ) - (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory|trampoline (; 289 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory|trampoline (; 291 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (block $1of1 (block $0of1 (block $outOfRange @@ -24891,7 +25051,7 @@ (get_local $0) ) ) - (func $~setargc (; 290 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~setargc (; 292 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (set_global $~argc (get_local $0) ) From d10e247f960f7937057a6afd993f99b159ffde42 Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sat, 17 Nov 2018 01:17:06 -0800 Subject: [PATCH 04/18] Fixed more small stuff --- core/interrupts/interrupts.ts | 2 +- dist/core/core.untouched.wasm | Bin 41606 -> 41618 bytes dist/core/core.untouched.wast | 434 +++++++++++++++++----------------- 3 files changed, 223 insertions(+), 213 deletions(-) diff --git a/core/interrupts/interrupts.ts b/core/interrupts/interrupts.ts index 57a4ce73..942f2c1e 100644 --- a/core/interrupts/interrupts.ts +++ b/core/interrupts/interrupts.ts @@ -97,7 +97,7 @@ export function checkInterrupts(): i32 { // Service our interrupts, if we have the master switch enabled // https://www.reddit.com/r/EmuDev/comments/5ie3k7/infinite_loop_trying_to_pass_blarggs_interrupt/ - if (Interrupts.masterInterruptSwitch) { + if (Interrupts.masterInterruptSwitch && !Cpu.isHaltNoJump) { if (Interrupts.isVBlankInterruptEnabled && Interrupts.isVBlankInterruptRequested) { _handleInterrupt(Interrupts.bitPositionVBlankInterrupt); wasInterruptHandled = true; diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index 62e1eae7de8065425474adef0d3317ea8674cbfd..191970ff53830e4226a8c7e1735e889ec1d00e52 100644 GIT binary patch delta 39 vcmZoW$~5UH(}om2#%Y^V`D#NM&rW`vtj=Ap?BL3({DzTRiD5HmO069LDNqe{ delta 27 jcmbPql&S3~(}om2#;(n&e6^vB2PZ#HR^Kd^Qey`IoQ?|h diff --git a/dist/core/core.untouched.wast b/dist/core/core.untouched.wast index 0d2def99..698cb535 100644 --- a/dist/core/core.untouched.wast +++ b/dist/core/core.untouched.wast @@ -599,185 +599,185 @@ ) ) (func $core/cpu/cpu/initializeCpu (; 4 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:158:2 + ;;@ core/cpu/cpu.ts:156:2 (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed - ;;@ core/cpu/cpu.ts:158:23 + ;;@ core/cpu/cpu.ts:156:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:159:2 + ;;@ core/cpu/cpu.ts:157:2 (set_global $core/cpu/cpu/Cpu.registerA + ;;@ core/cpu/cpu.ts:157:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:158:2 + (set_global $core/cpu/cpu/Cpu.registerB + ;;@ core/cpu/cpu.ts:158:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:159:2 + (set_global $core/cpu/cpu/Cpu.registerC ;;@ core/cpu/cpu.ts:159:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:160:2 - (set_global $core/cpu/cpu/Cpu.registerB + (set_global $core/cpu/cpu/Cpu.registerD ;;@ core/cpu/cpu.ts:160:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:161:2 - (set_global $core/cpu/cpu/Cpu.registerC + (set_global $core/cpu/cpu/Cpu.registerE ;;@ core/cpu/cpu.ts:161:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:162:2 - (set_global $core/cpu/cpu/Cpu.registerD + (set_global $core/cpu/cpu/Cpu.registerH ;;@ core/cpu/cpu.ts:162:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:163:2 - (set_global $core/cpu/cpu/Cpu.registerE + (set_global $core/cpu/cpu/Cpu.registerL ;;@ core/cpu/cpu.ts:163:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:164:2 - (set_global $core/cpu/cpu/Cpu.registerH + (set_global $core/cpu/cpu/Cpu.registerF ;;@ core/cpu/cpu.ts:164:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:165:2 - (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:165:18 - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:166:2 - (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:166:18 - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:167:2 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:167:21 + ;;@ core/cpu/cpu.ts:165:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:168:2 + ;;@ core/cpu/cpu.ts:166:2 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:168:23 + ;;@ core/cpu/cpu.ts:166:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:169:2 + ;;@ core/cpu/cpu.ts:167:2 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:169:22 + ;;@ core/cpu/cpu.ts:167:22 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:170:2 + ;;@ core/cpu/cpu.ts:168:2 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:170:21 + ;;@ core/cpu/cpu.ts:168:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:171:2 + ;;@ core/cpu/cpu.ts:169:2 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:171:21 + ;;@ core/cpu/cpu.ts:169:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:172:2 + ;;@ core/cpu/cpu.ts:170:2 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:172:18 + ;;@ core/cpu/cpu.ts:170:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:173:2 + ;;@ core/cpu/cpu.ts:171:2 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:173:18 + ;;@ core/cpu/cpu.ts:171:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:175:2 + ;;@ core/cpu/cpu.ts:173:2 (if - ;;@ core/cpu/cpu.ts:175:6 + ;;@ core/cpu/cpu.ts:173:6 (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/cpu/cpu.ts:175:22 + ;;@ core/cpu/cpu.ts:173:22 (block - ;;@ core/cpu/cpu.ts:177:4 + ;;@ core/cpu/cpu.ts:175:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:177:20 + ;;@ core/cpu/cpu.ts:175:20 (i32.const 17) ) - ;;@ core/cpu/cpu.ts:178:4 + ;;@ core/cpu/cpu.ts:176:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:178:20 + ;;@ core/cpu/cpu.ts:176:20 (i32.const 128) ) - ;;@ core/cpu/cpu.ts:179:4 + ;;@ core/cpu/cpu.ts:177:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:179:20 + ;;@ core/cpu/cpu.ts:177:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:180:4 + ;;@ core/cpu/cpu.ts:178:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:180:20 + ;;@ core/cpu/cpu.ts:178:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:181:4 + ;;@ core/cpu/cpu.ts:179:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:181:20 + ;;@ core/cpu/cpu.ts:179:20 (i32.const 255) ) - ;;@ core/cpu/cpu.ts:182:4 + ;;@ core/cpu/cpu.ts:180:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:182:20 + ;;@ core/cpu/cpu.ts:180:20 (i32.const 86) ) - ;;@ core/cpu/cpu.ts:183:4 + ;;@ core/cpu/cpu.ts:181:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:183:20 + ;;@ core/cpu/cpu.ts:181:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:184:4 + ;;@ core/cpu/cpu.ts:182:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:184:20 + ;;@ core/cpu/cpu.ts:182:20 (i32.const 13) ) ) - ;;@ core/cpu/cpu.ts:189:9 + ;;@ core/cpu/cpu.ts:187:9 (block - ;;@ core/cpu/cpu.ts:191:4 + ;;@ core/cpu/cpu.ts:189:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:191:20 + ;;@ core/cpu/cpu.ts:189:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:192:4 + ;;@ core/cpu/cpu.ts:190:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:192:20 + ;;@ core/cpu/cpu.ts:190:20 (i32.const 176) ) - ;;@ core/cpu/cpu.ts:193:4 + ;;@ core/cpu/cpu.ts:191:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:193:20 + ;;@ core/cpu/cpu.ts:191:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:194:4 + ;;@ core/cpu/cpu.ts:192:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:194:20 + ;;@ core/cpu/cpu.ts:192:20 (i32.const 19) ) - ;;@ core/cpu/cpu.ts:195:4 + ;;@ core/cpu/cpu.ts:193:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:195:20 + ;;@ core/cpu/cpu.ts:193:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:196:4 + ;;@ core/cpu/cpu.ts:194:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:196:20 + ;;@ core/cpu/cpu.ts:194:20 (i32.const 216) ) - ;;@ core/cpu/cpu.ts:197:4 + ;;@ core/cpu/cpu.ts:195:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:197:20 + ;;@ core/cpu/cpu.ts:195:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:198:4 + ;;@ core/cpu/cpu.ts:196:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:198:20 + ;;@ core/cpu/cpu.ts:196:20 (i32.const 77) ) ) ) - ;;@ core/cpu/cpu.ts:187:4 + ;;@ core/cpu/cpu.ts:185:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:187:25 + ;;@ core/cpu/cpu.ts:185:25 (i32.const 256) ) - ;;@ core/cpu/cpu.ts:188:4 + ;;@ core/cpu/cpu.ts:186:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:188:23 + ;;@ core/cpu/cpu.ts:186:23 (i32.const 65534) ) ) @@ -16092,34 +16092,34 @@ (return) ) ) - ;;@ core/cpu/cpu.ts:83:4 + ;;@ core/cpu/cpu.ts:81:4 (if (i32.eqz ;;@ core/cpu/cpu.ts:79:29 (i32.and (i32.and (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) - ;;@ core/cpu/cpu.ts:80:4 + ;;@ core/cpu/cpu.ts:79:65 (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) ) - ;;@ core/cpu/cpu.ts:81:4 + ;;@ core/cpu/cpu.ts:79:103 (i32.const 31) ) ) - ;;@ core/cpu/cpu.ts:83:29 + ;;@ core/cpu/cpu.ts:81:29 (block - ;;@ core/cpu/cpu.ts:84:6 + ;;@ core/cpu/cpu.ts:82:6 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:84:25 + ;;@ core/cpu/cpu.ts:82:25 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:85:6 + ;;@ core/cpu/cpu.ts:83:6 (return) ) ) - ;;@ core/cpu/cpu.ts:88:4 + ;;@ core/cpu/cpu.ts:86:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:88:20 + ;;@ core/cpu/cpu.ts:86:20 (i32.const 1) ) ) @@ -21277,30 +21277,30 @@ ) ) (func $core/cpu/cpu/Cpu.exitHalt (; 226 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:92:4 + ;;@ core/cpu/cpu.ts:90:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:92:23 + ;;@ core/cpu/cpu.ts:90:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:93:4 + ;;@ core/cpu/cpu.ts:91:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:93:23 + ;;@ core/cpu/cpu.ts:91:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:94:4 + ;;@ core/cpu/cpu.ts:92:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:94:20 + ;;@ core/cpu/cpu.ts:92:20 (i32.const 0) ) ) (func $core/cpu/cpu/Cpu.isHalted (; 227 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/cpu.ts:98:4 + ;;@ core/cpu/cpu.ts:96:4 (if - ;;@ core/cpu/cpu.ts:98:8 + ;;@ core/cpu/cpu.ts:96:8 (if (result i32) (get_global $core/cpu/cpu/Cpu.isHaltNormal) (get_global $core/cpu/cpu/Cpu.isHaltNormal) - ;;@ core/cpu/cpu.ts:98:28 + ;;@ core/cpu/cpu.ts:96:28 (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) (return @@ -21513,9 +21513,19 @@ (block ;;@ core/interrupts/interrupts.ts:103:4 (if - ;;@ core/interrupts/interrupts.ts:103:8 - (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) - ;;@ core/interrupts/interrupts.ts:103:42 + (tee_local $0 + ;;@ core/interrupts/interrupts.ts:103:8 + (if (result i32) + (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) + ;;@ core/interrupts/interrupts.ts:103:44 + (i32.eqz + ;;@ core/interrupts/interrupts.ts:103:45 + (get_global $core/cpu/cpu/Cpu.isHaltNoJump) + ) + (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) + ) + ) + ;;@ core/interrupts/interrupts.ts:103:63 (if (tee_local $0 ;;@ core/interrupts/interrupts.ts:104:10 @@ -22136,169 +22146,169 @@ ) ) (func $core/cpu/cpu/Cpu.saveState (; 238 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:111:4 + ;;@ core/cpu/cpu.ts:109:4 (i32.store8 - ;;@ core/cpu/cpu.ts:111:14 + ;;@ core/cpu/cpu.ts:109:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:111:39 + ;;@ core/cpu/cpu.ts:109:39 (i32.const 0) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:111:65 + ;;@ core/cpu/cpu.ts:109:65 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/cpu.ts:112:4 + ;;@ core/cpu/cpu.ts:110:4 (i32.store8 - ;;@ core/cpu/cpu.ts:112:14 + ;;@ core/cpu/cpu.ts:110:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:112:39 + ;;@ core/cpu/cpu.ts:110:39 (i32.const 1) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:112:65 + ;;@ core/cpu/cpu.ts:110:65 (get_global $core/cpu/cpu/Cpu.registerB) ) - ;;@ core/cpu/cpu.ts:113:4 + ;;@ core/cpu/cpu.ts:111:4 (i32.store8 - ;;@ core/cpu/cpu.ts:113:14 + ;;@ core/cpu/cpu.ts:111:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:113:39 + ;;@ core/cpu/cpu.ts:111:39 (i32.const 2) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:113:65 + ;;@ core/cpu/cpu.ts:111:65 (get_global $core/cpu/cpu/Cpu.registerC) ) - ;;@ core/cpu/cpu.ts:114:4 + ;;@ core/cpu/cpu.ts:112:4 (i32.store8 - ;;@ core/cpu/cpu.ts:114:14 + ;;@ core/cpu/cpu.ts:112:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:114:39 + ;;@ core/cpu/cpu.ts:112:39 (i32.const 3) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:114:65 + ;;@ core/cpu/cpu.ts:112:65 (get_global $core/cpu/cpu/Cpu.registerD) ) - ;;@ core/cpu/cpu.ts:115:4 + ;;@ core/cpu/cpu.ts:113:4 (i32.store8 - ;;@ core/cpu/cpu.ts:115:14 + ;;@ core/cpu/cpu.ts:113:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:115:39 + ;;@ core/cpu/cpu.ts:113:39 (i32.const 4) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:115:65 + ;;@ core/cpu/cpu.ts:113:65 (get_global $core/cpu/cpu/Cpu.registerE) ) - ;;@ core/cpu/cpu.ts:116:4 + ;;@ core/cpu/cpu.ts:114:4 (i32.store8 - ;;@ core/cpu/cpu.ts:116:14 + ;;@ core/cpu/cpu.ts:114:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:116:39 + ;;@ core/cpu/cpu.ts:114:39 (i32.const 5) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:116:65 + ;;@ core/cpu/cpu.ts:114:65 (get_global $core/cpu/cpu/Cpu.registerH) ) - ;;@ core/cpu/cpu.ts:117:4 + ;;@ core/cpu/cpu.ts:115:4 (i32.store8 - ;;@ core/cpu/cpu.ts:117:14 + ;;@ core/cpu/cpu.ts:115:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:117:39 + ;;@ core/cpu/cpu.ts:115:39 (i32.const 6) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:117:65 + ;;@ core/cpu/cpu.ts:115:65 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/cpu.ts:118:4 + ;;@ core/cpu/cpu.ts:116:4 (i32.store8 - ;;@ core/cpu/cpu.ts:118:14 + ;;@ core/cpu/cpu.ts:116:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:118:39 + ;;@ core/cpu/cpu.ts:116:39 (i32.const 7) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:118:65 + ;;@ core/cpu/cpu.ts:116:65 (get_global $core/cpu/cpu/Cpu.registerF) ) - ;;@ core/cpu/cpu.ts:120:4 + ;;@ core/cpu/cpu.ts:118:4 (i32.store16 - ;;@ core/cpu/cpu.ts:120:15 + ;;@ core/cpu/cpu.ts:118:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:120:40 + ;;@ core/cpu/cpu.ts:118:40 (i32.const 8) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:120:66 + ;;@ core/cpu/cpu.ts:118:66 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - ;;@ core/cpu/cpu.ts:121:4 + ;;@ core/cpu/cpu.ts:119:4 (i32.store16 - ;;@ core/cpu/cpu.ts:121:15 + ;;@ core/cpu/cpu.ts:119:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:121:40 + ;;@ core/cpu/cpu.ts:119:40 (i32.const 10) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:121:66 + ;;@ core/cpu/cpu.ts:119:66 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/cpu.ts:123:4 + ;;@ core/cpu/cpu.ts:121:4 (i32.store - ;;@ core/cpu/cpu.ts:123:15 + ;;@ core/cpu/cpu.ts:121:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:123:40 + ;;@ core/cpu/cpu.ts:121:40 (i32.const 12) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:123:66 + ;;@ core/cpu/cpu.ts:121:66 (get_global $core/cpu/cpu/Cpu.currentCycles) ) - ;;@ core/cpu/cpu.ts:125:4 + ;;@ core/cpu/cpu.ts:123:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:125:37 + ;;@ core/cpu/cpu.ts:123:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:125:62 + ;;@ core/cpu/cpu.ts:123:62 (i32.const 17) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:125:88 + ;;@ core/cpu/cpu.ts:123:88 (get_global $core/cpu/cpu/Cpu.isHaltNormal) ) - ;;@ core/cpu/cpu.ts:126:4 + ;;@ core/cpu/cpu.ts:124:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:126:37 + ;;@ core/cpu/cpu.ts:124:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:126:62 + ;;@ core/cpu/cpu.ts:124:62 (i32.const 18) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:126:88 + ;;@ core/cpu/cpu.ts:124:88 (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) - ;;@ core/cpu/cpu.ts:127:4 + ;;@ core/cpu/cpu.ts:125:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:127:37 + ;;@ core/cpu/cpu.ts:125:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:127:62 + ;;@ core/cpu/cpu.ts:125:62 (i32.const 19) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:127:88 + ;;@ core/cpu/cpu.ts:125:88 (get_global $core/cpu/cpu/Cpu.isHaltBug) ) - ;;@ core/cpu/cpu.ts:128:4 + ;;@ core/cpu/cpu.ts:126:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:128:37 + ;;@ core/cpu/cpu.ts:126:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:128:62 + ;;@ core/cpu/cpu.ts:126:62 (i32.const 20) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:128:88 + ;;@ core/cpu/cpu.ts:126:88 (get_global $core/cpu/cpu/Cpu.isStopped) ) ) @@ -22900,181 +22910,181 @@ (i32.const 0) ) (func $core/cpu/cpu/Cpu.loadState (; 251 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:134:4 + ;;@ core/cpu/cpu.ts:132:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:134:20 + ;;@ core/cpu/cpu.ts:132:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:134:29 + ;;@ core/cpu/cpu.ts:132:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:134:54 + ;;@ core/cpu/cpu.ts:132:54 (i32.const 0) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:135:4 + ;;@ core/cpu/cpu.ts:133:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:135:20 + ;;@ core/cpu/cpu.ts:133:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:135:29 + ;;@ core/cpu/cpu.ts:133:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:135:54 + ;;@ core/cpu/cpu.ts:133:54 (i32.const 1) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:136:4 + ;;@ core/cpu/cpu.ts:134:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:136:20 + ;;@ core/cpu/cpu.ts:134:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:136:29 + ;;@ core/cpu/cpu.ts:134:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:136:54 + ;;@ core/cpu/cpu.ts:134:54 (i32.const 2) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:137:4 + ;;@ core/cpu/cpu.ts:135:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:137:20 + ;;@ core/cpu/cpu.ts:135:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:137:29 + ;;@ core/cpu/cpu.ts:135:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:137:54 + ;;@ core/cpu/cpu.ts:135:54 (i32.const 3) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:138:4 + ;;@ core/cpu/cpu.ts:136:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:138:20 + ;;@ core/cpu/cpu.ts:136:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:138:29 + ;;@ core/cpu/cpu.ts:136:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:138:54 + ;;@ core/cpu/cpu.ts:136:54 (i32.const 4) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:139:4 + ;;@ core/cpu/cpu.ts:137:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:139:20 + ;;@ core/cpu/cpu.ts:137:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:139:29 + ;;@ core/cpu/cpu.ts:137:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:139:54 + ;;@ core/cpu/cpu.ts:137:54 (i32.const 5) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:140:4 + ;;@ core/cpu/cpu.ts:138:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:140:20 + ;;@ core/cpu/cpu.ts:138:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:140:29 + ;;@ core/cpu/cpu.ts:138:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:140:54 + ;;@ core/cpu/cpu.ts:138:54 (i32.const 6) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:141:4 + ;;@ core/cpu/cpu.ts:139:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:141:20 + ;;@ core/cpu/cpu.ts:139:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:141:29 + ;;@ core/cpu/cpu.ts:139:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:141:54 + ;;@ core/cpu/cpu.ts:139:54 (i32.const 7) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:143:4 + ;;@ core/cpu/cpu.ts:141:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:143:23 + ;;@ core/cpu/cpu.ts:141:23 (i32.load16_u - ;;@ core/cpu/cpu.ts:143:33 + ;;@ core/cpu/cpu.ts:141:33 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:143:58 + ;;@ core/cpu/cpu.ts:141:58 (i32.const 8) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:144:4 + ;;@ core/cpu/cpu.ts:142:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:144:25 + ;;@ core/cpu/cpu.ts:142:25 (i32.load16_u - ;;@ core/cpu/cpu.ts:144:35 + ;;@ core/cpu/cpu.ts:142:35 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:144:60 + ;;@ core/cpu/cpu.ts:142:60 (i32.const 10) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:146:4 + ;;@ core/cpu/cpu.ts:144:4 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:146:24 + ;;@ core/cpu/cpu.ts:144:24 (i32.load - ;;@ core/cpu/cpu.ts:146:34 + ;;@ core/cpu/cpu.ts:144:34 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:146:59 + ;;@ core/cpu/cpu.ts:144:59 (i32.const 12) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:148:4 + ;;@ core/cpu/cpu.ts:146:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:148:23 + ;;@ core/cpu/cpu.ts:146:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:148:57 + ;;@ core/cpu/cpu.ts:146:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:148:82 + ;;@ core/cpu/cpu.ts:146:82 (i32.const 17) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:149:4 + ;;@ core/cpu/cpu.ts:147:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:149:23 + ;;@ core/cpu/cpu.ts:147:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:149:57 + ;;@ core/cpu/cpu.ts:147:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:149:82 + ;;@ core/cpu/cpu.ts:147:82 (i32.const 18) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:150:4 + ;;@ core/cpu/cpu.ts:148:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:150:20 + ;;@ core/cpu/cpu.ts:148:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:150:54 + ;;@ core/cpu/cpu.ts:148:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:150:79 + ;;@ core/cpu/cpu.ts:148:79 (i32.const 19) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:151:4 + ;;@ core/cpu/cpu.ts:149:4 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:151:20 + ;;@ core/cpu/cpu.ts:149:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:151:54 + ;;@ core/cpu/cpu.ts:149:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:151:79 + ;;@ core/cpu/cpu.ts:149:79 (i32.const 20) (i32.const 0) ) From c663bc2d18047f6dccfdeae00bed393377947fc7 Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sat, 17 Nov 2018 13:44:42 -0800 Subject: [PATCH 05/18] Added some new scripts They measure performance of asc and tsc --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index 31cc2838..0ce69998 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,8 @@ "core:watch": "npx watch \"npm run core:build\" core", "core:build": "npx run-s core:build:asc core:build:dist core:build:done", "core:build:asc": "npx asc core/index.ts -b dist/core/core.untouched.wasm -t dist/core/core.untouched.wast -O3 --validate --sourceMap core/dist/core.untouched.wasm.map --memoryBase 0", + "core:build:asc:measure": "npm run core:build:asc -- --measure --noEmit", + "core:build:ts:measure": "npx tsc --project core/tsconfig.json --noEmit --extendedDiagnostics", "core:build:dist": "npx run-s core:build:dist:mkdir core:build:dist:cp", "core:build:dist:mkdir": "mkdir -p build/assets", "core:build:dist:cp": "cp dist/core/*.untouched.* build/assets", From 31b5092ad986872de4621fe56619decbd816d2da Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sat, 17 Nov 2018 20:14:43 -0800 Subject: [PATCH 06/18] Fixed graphics timing, and passed another halt test --- core/core.ts | 2 +- core/cpu/cpu.ts | 3 +- core/graphics/graphics.ts | 10 + core/interrupts/interrupts.ts | 5 +- dist/core/core.untouched.wasm | Bin 41618 -> 41920 bytes dist/core/core.untouched.wast | 1764 +++++++++-------- .../mooneye/halt/halt_ime0_ei/halt_ime0_ei.gb | Bin 0 -> 32768 bytes .../halt_ime0_nointr_timing.gb | Bin 0 -> 32768 bytes 8 files changed, 962 insertions(+), 822 deletions(-) create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.gb create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.gb diff --git a/core/core.ts b/core/core.ts index 53b30668..37719b81 100644 --- a/core/core.ts +++ b/core/core.ts @@ -299,7 +299,7 @@ export function executeStep(): i32 { let haltBugCycles: i32 = executeOpcode(haltBugOpcode); syncCycles(haltBugCycles); Cpu.programCounter = u16Portable(Cpu.programCounter - 1); - Cpu.exitHalt(); + Cpu.exitHaltAndStop(); } // Interrupts should be handled before reading an opcode diff --git a/core/cpu/cpu.ts b/core/cpu/cpu.ts index 02c18dab..42bedd80 100644 --- a/core/cpu/cpu.ts +++ b/core/cpu/cpu.ts @@ -86,10 +86,11 @@ export class Cpu { Cpu.isHaltBug = true; } - static exitHalt(): void { + static exitHaltAndStop(): void { Cpu.isHaltNoJump = false; Cpu.isHaltNormal = false; Cpu.isHaltBug = false; + Cpu.isStopped = false; } static isHalted(): boolean { diff --git a/core/graphics/graphics.ts b/core/graphics/graphics.ts index aba92e25..508d7319 100644 --- a/core/graphics/graphics.ts +++ b/core/graphics/graphics.ts @@ -35,11 +35,20 @@ export class Graphics { // See TCAGBD For cycles static scanlineCycleCounter: i32 = 0x00; + // TCAGBD says 456 per scanline, but 153 only a handful static MAX_CYCLES_PER_SCANLINE(): i32 { if (Cpu.GBCDoubleSpeed) { + if (Graphics.scanlineRegister === 153) { + return 8; + } + return 912; } + if (Graphics.scanlineRegister === 153) { + return 4; + } + return 456; } @@ -206,6 +215,7 @@ export function updateGraphics(numberOfCycles: i32): void { } // Post increment the scanline register after drawing + // TODO: Need to fix graphics timing if (scanlineRegister > 153) { // Check if we overflowed scanlines // if so, reset our scanline number diff --git a/core/interrupts/interrupts.ts b/core/interrupts/interrupts.ts index 942f2c1e..92fccb11 100644 --- a/core/interrupts/interrupts.ts +++ b/core/interrupts/interrupts.ts @@ -100,6 +100,7 @@ export function checkInterrupts(): i32 { if (Interrupts.masterInterruptSwitch && !Cpu.isHaltNoJump) { if (Interrupts.isVBlankInterruptEnabled && Interrupts.isVBlankInterruptRequested) { _handleInterrupt(Interrupts.bitPositionVBlankInterrupt); + hexLog(0x05, 0x01); wasInterruptHandled = true; } else if (Interrupts.isLcdInterruptEnabled && Interrupts.isLcdInterruptRequested) { _handleInterrupt(Interrupts.bitPositionLcdInterrupt); @@ -121,13 +122,13 @@ export function checkInterrupts(): i32 { // If the CPU was halted, now is the time to un-halt // Should be done here when the jump occurs according to: // https://www.reddit.com/r/EmuDev/comments/6fmjch/gb_glitches_in_links_awakening_and_pok%C3%A9mon_gold/ - Cpu.exitHalt(); + Cpu.exitHaltAndStop(); interuptHandlerCycles += 4; } } if (Cpu.isHalted()) { - Cpu.exitHalt(); + Cpu.exitHaltAndStop(); } return interuptHandlerCycles; diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index 191970ff53830e4226a8c7e1735e889ec1d00e52..d0aad2270a0205e06a9c13447cf576b6f5d6420a 100644 GIT binary patch literal 41920 zcmeHwd3+qjvH$e!t|V(@X>4=Y5b&;Mxv_?AgS#qrWcIAhc3YLP57`gc{HIh*75`ar zJ07p9s;b7Xs(KRs)Kt~fIFlwIvtbZU}Lc@jLY34K|oMm4D~pQa&AYM!L7dKn}scFg=ii_v7U z;Lx$BUM=EzDH1<)t=C^FF6$b*HlHc1$?hEr zU~aT$c4rFfhX=N0a&6n&I|hdOGx^p*A*5+|`}R!EdO^9J{h5wjH19I|=yUz{bxm#O zZCTf{u5IIaTh_KU`NsTH0gw@qT-I%etnu=e0L) zY~8SF9In_g+^&V%w(GEgQE?)Lh8R$@PZ@ z6l}HAS8en+tZr>?-_o{u(}vBPiqzE|F}6r*xJRsNYQ`9>ZP^s%+Y~pNEs#^EH?7*T zVPk9C#@0<3YJWo!_p~F%7DY*}AzTy~27=NxH?lr6j%Dy0s*| z*1D}Ez0$hfo`Uu_uOrlhlP0}Tv?26%`E*iu?smYmv;r@<7Pj=9l z%c-a-w(L#Anc+<9U{_`jY+PL~0~(9@)@63>?vSkZp0{OUe^qZ_4o0b!y&vr87dyK) z+bQT{e^b-Tl}p|KP{(!a5f19={)UzRQ_Uy~AhrLlrtRwK%4FMy3q!+&u+BeJ{dP_# zt%EXDnSB17GEo1ejwR-8*}cu#{%meTM}MYJ$b?A#sg5pFEX}^Gj@%XC)apCLdOPRUN_1jU59`9fN(v{C{B`cE4TyqhM5(fp{eG7Cn#Fu+#xN%?Y zWcz^H_s(8mnOxAYHegSasFc(>VWqjKR4J9v=IWpW7V6d%di~Lt-eGEO=yfJpXf-y= zvYgu$R%YpW_|3;}0e%bdTZG?Y{2K9Fg5R0=EyZsces9F@Ec}+^=i}Eziv205KdJ;! zBRQym<%a>9$>}8tUjgQk0A`wL=sAU!6k7T=nsWS68;!hrFqU5G+(+)Bfo2r1@Sm{V zcnU6Lx&^`io@os_4SrSVrx?t7)J)AS0+%B2udmb&&i5g57bABf!jktRBsfNHt24{;?+PII2a&rCKf{LaJgE%?0^aOdN90e%)!`r{>gsakBD&X1Bm<;E0KPg>6cYH?|faf z@5|7-dIcF+S#Pz#Fr5$|fpUzhl?m?zr>JHP3AEARxCytyt#T*1)voJKktQinf|L^W zDzSf?5q4x0k*An*2_mmB=LST6$($Dm!^qzexdD-cNTv)d5lMuIBvOJ%PzQ)$9Mhh2 zr-F|9)*7)0X_A_zVK*5kFyjQ6{2=2*W}N6GAvU_oNz6FONydYWlbLa{lSH5)PGQC= zPO>7%IF%WvI?2i)<1}WR<|M0vjMJHMy5mlDT+5pW()NG73da2D`{H7qxg)mIIZ=wd zv;EuEN`MexUuB&WX2g;4WXy?M?orN>?4+42)K1P9wC|H?|5ef|Kq6K-wM^|-{Yk6W zkM&EHq;ik(N1sddChgv2j8+U5EdT;-Nu=C2_@n#drTF}j{7$Djz@BqXQ)&b}jO|Rt z!8x@P$jW5APg4@_1q0UVR*~74 zssed&%&>+HsY!w&0Tc;8Mija@nMh7bCddQ#Sd^&VRH6o5;Y=gd(c3B@Ij%n89*=m! zo#7@i{D7;Z0J2y))a}cspRR9no zIjDs+7-NPi^w!5fc+z$~@DYFAG(|@FGf^+mUk{;5TEl*<;G9Pa)J|9kkQPU&Dj-_uEuu!=PZQE@vFr968TNqfxv#)RuvE& zI4|`a0}zOY-RY?*L`XuXr=|jXEM;N%FfMB_d=-eq`g-eYlU3ku66ljPzO}mE2DK2L z8h1wM@qw{@XciI#t|h06jM-$cN=^}uqmvi_hX~fk;hP{*xf5Nt+!HYFC#LFrg^@oI zehMYv#6%LfAZwhYQy5S?=_IS&lj;+xx@4kWIVs9iZL%_1<(}MI?bucY3`|(J=Zp$?+?|W-4DLxC;G)(G%4`CmqE&=q6Ooy1&EFvsG^%}1}%ocf*>UsR$$N=>Ry0oC_4KC5i&8B zOCD;&qEN+g5Ri-mv|bo3#Ks{Gpb)(g4)#hCZ3@YK^|XqbIG8*!6c`zHjAoDRL0rYF zvmhyUNJ9|A7#bR4K%8`bs;Ck%KQ^3#@rx}-@AfO2El|~4Ujc`jW`<#33abu?pr0u8 zA|p23TR%x?!z7ie_D%;FRF^!5RH|g9o2u8d6|$?KudragN>w|KcN)Ba>Xw9enp0mj zuGXpJYB>o&!?0nUFs6mmFnp#-Hh4PRYsyGyE1lE1I$H~gvAlJ(M!Gi)DSKoWdIUy* zr?Z?hAn)FKj-S_7ABVDIaTW6``%rJBA0nfn0ox}MGRwIvP6tXE^VOiC$k{ zfgC6W24*$K0!fOkf2km?hnS{npc4!!*bM6k&xSZRqGBIJlNXqL6NE` zI<6=ZWTBU74n3?0i0Z9}2(6dpGn`AcmThtc4U+Jij9)ED^Y%h!Kvz7VizXOW%)+c$ z&FLbRtbt@72i>w^Id!*CU0^t$YgDzA8$mX?1-%|g*0v;)F~^WWxr2mM zQ0qZEOf|I}BO}^w1GCn85F&zfEJ;Es^^7r=ADiH+DHZeM@+N>XB&teK z{96pk|5DDe+U$sU!@$xI9pihtCgd{uL;4g4Z)EIaGYCv*BJ2Y0`TiY@EbyK z?F#yGD_Gr^kf7J8 zx11IV3f9Qj=y{pjLtHpxm@qwKqNrpE2gk1(uD5b7=9}~#NT%Pby!R^jc-|c5|6A~a6iEecDTt-8zIvxIj5qI016)nIuy3+*>6M(Emj?@?)_ZXvnv zA)W-{PJFrRL+H1%OLt0*I~5~R^X#hzy@If^2fN20Z#Rgd1hhk~qIz=9xj|Ex!eD8dB z2_|a>ed+UyPP2C*hsmY}+I_VZwiUDD2{_IP$34?s>MnENSQ8JUZc|MxOu(TIK#;E- zx7l6cwm9B}B=AB6Rdgw_)qwphsF39xXL%pO@b{)aq`U_e;(Z{TAShMNr6e|>3xcMw zv`SjoAFx-_F8HyPleyf8ubdnMMPA1HFd^_4nh%K;+ZA`aD|p_L20Df^?X8v7TGOR%|xHCMSmdx}Eh_ z`txW8dyLW}BD4qmM_v_gQqbC2*+i?`NuM#!I!;OzwTdbQ=TW9-NR+KbDL#xT7P}pw z97>Ifm?eN2Dfj}2Fa>WFZV(lgYh-%>OAwG4j`YVsJ_w_FxSM3k_5MwHUr+_~3T$Jm zh{CgQ9u}kYNnsmQGMOQkh58G>`2Zzk`s&MoEu`Wyf-s07_i9< z43>AE>w_uk~IUibVII_+VDnNeU%_h25!E&@1_7Pk*#p$a%T z^00^k64gt`EryVi#DufY2G;?9SmG+0l^1kmdr+J-a^6 zbR22;j8 z3((Uqs{Y>e1>ObjTR2}L=tF7%QZtb7`XKYb;`K{KL^`}}UZ>aPUT}=#^`N&N_UL=P zE$)Th7DUopye;0BL`hX2u_3cBy#9eVv%UQ4YyB%fNfz zVkR4p((r9&vK?dw&2bU$zoc@`m9}ObObS@+kB9+5Vm+q=ip&99bO))R@IWjqd?gkX z5_CEC7k3pD!X0i zKt=#C{R9AyM*$2o@;ed&wr zBs(w2%nLn~Y6s8aQehRC3LT*uVb3n%t%3okzGI5Q0tOM=uck1nbTcMT9Q@+26=WPd zD3dnN=LwCBUs%Bw190m4=~-YH=4jGk`!lic?alI^S3A?Q5*`?cyn~j`gpf0HHX5=} z3)(U(Y3GpTbB>?oc0ijk(a`G!LYOfu|I+{jz1&<70v^X62dp1bXmG?^k?>Y>rdp0R zX97DgDmD(R@Oarg{WYnK!+2IDu`$rV-3~eeF>HTe!zMi^+RDLbE1(uw!kyUk3UX+L ztRWm{rUkaVWbK4Ik;W>FB0D2}J9Gkj9_ibl?ubanbO}csrZAS;sd7Q2OEi#|X;Gw?c zzZt5_@^hW)0L5FKS8a?HB*fy}yNc$|duwSHKhkpUwLfeYHo$ zDsf#YURC4TiAj^ESQXW^Q>PtqBt-B?*dDi62Yoe1Fx6i(jln?8R0e}JQy64xTn0lm zu;9wwSyPL}M|vxwxf+}`DL0QNUJw*&Fm}ovuBm3Qt7Z~|-4t|8BeGwt+&%7Ir-mm^ zVb0s!xAPKIB8u_GpTZ0jcx!4wZNAc^4~tAAM{y$dqt{S2q2-p}#JP5UqL z!2f8=`vvo!H+g66U!oO9QOD zZs9m5>Tct38K=VH*e7E=T;_}@hs*jl)O5pPnf^2bT#)3*4m13hf5)W~J)?WSQY&Su z1v$`N*i3Nb_!PV{mXJo`hK~tCVET|x5LzMG9R4+&By0{Z6@{{w^S>k}W9S8jj0zyfVP;qCa%j22jUKtn5U#t z!pn(MB2_^*8v|kp5SnCLG`i^_=U5BDPFD2LbPk)hq(`^^X6~Qlu(u#wN$0?MoYSCZ zkVIiu%ECFxbr3P4mxgD+3D*%}BD#-rEZi#LkO(OdvAp&&4yt_m%V3iCWiUGZ72MR* zv9BxVG|LBB$o);Ac2IUr1cqDN+uwrK=}RN9zYAc0AHe=0fc+z3|D>D;6GlqV6Yan! zEevxH4T|LGV=P4J#nb&0mt&M3JY7^#Yh9pI%c0|LB}PUU1yJI|vpV=BPCPbp1ZMxg zLQDtg=t~nIj^-<QOtZ2Um6{x|94>oQ$HuUNU4@qz_1 z^a=t4d^Qr085&m0|El)(Rr)6e>}w{&y_^|Zuc%p=ZN6NbZN9|WrrNgjzj%xnI$*QY zYhlb0tkbFWV!YFBKqPE{G0`+#r5p3+hPL30z!cEVE%&Z~r#Xtdon$29n5%WyD1a>6 zuel~=k4v{XX7sQv@0YqBV!sLxC54^W@QMlgjD=6YbKHIlc;?=yN_q>ZU~a{dsCaLM zQ`5T@@A4}5CZ(sUo4HGe^n2JZBNYK3;Z31UoNMW>-)e|}RnQr?$;B5shx}RC!V+R} z6a=mVCroDs(}2AkRtA=rQ=FB=zTyrXIm0yK5Eun<|KQ^`tPCPpUE;|@|5-!ey zVw{6wdMfmjSb$*L&p%+nxO%&Y(RT;1ud>S-pfS9RIu1JAl;vHne3wS;as^EWtGz4H zH0K0N7&t628NHl3Fpprf^>RjhuG=7HGBL^Ak&vlL&<)UpV}da@9BOXChCgGg#E7>W zEu)^k6boskkovIsy#C6W0doWL($FhpU{2tbxQi8R(Ao986^q>tAM;(pTjMTZ+}81h zjKf7hi(r?HA=UU&Fk!@H6?b8682=Pb&Gi*-9^!|Wl`wID5R44T!0rw1;$X!6IO&tj znI_Z5^b$e_nRGv-@=V-}!^A?%z8C_F4!by-<8%sHaPNfQ{Sze=$Yz%0n>_*U8?7{P zpLbTU@xdkqlio);9;k&i;G5(0aWr>h^ww~!*2EBTj{+|k^rhE;X$nk3v)(DdF&DDr z&T-s%?tH{hz;QnX^hq{Zhs%iAVfJC=VQz6QiEGCcGRJ+ta?+O9>K=_Mbq?A=6z#Z2 zyLTzZ`_iofc!A~Z@-50JB5;Z@l)D`7jim04UK5(~PQtI1=~fp<8R#Jn2fY)Kxq+D* znA3@c`^m@|WX>Q|mYMYbT`W7@yOp;L#JNYhxO@?0AU@S{@6oI1dv%b;nXO+paiHs!F?)SU%4yi zb~p<#U85UYK{><`x-Pxyz@ARTh)~mYnh^*HI8X(S2`n}UE>%zn?bdPgC59sn>`xPA zQst9&9`=81p8!8<>we-G3jM^Y9&AB1_eeTaf~Hlv7?ua<{L$o2_sFr`H-m=0?$AAD zC)F;Xsw}XlPsYtW9$4x_hjcz{4h%H8&Me0#RXa74YwKLhSgwPGkb57e7j_q0vK;IM zXuU&X3jyIR@D{phZ@zoK!a7N(z~eDhur~4*V7Nc17-0O<3%mvBoaKH9j8XUt%kDm? z1ff4-;QGqKDZ;^n*P@zUK-_%F0&4>86@$%&*&quCs`IfH3wq%#bsth#jd_jU5;t9M zX@a5Z>>^0u`I#P{pu3G>ck##vn&x$5UCYH$9~m+qi@c!YeHhuG<^s(1-a_4L1nl)f zZ(+G!R}oHn4LJ6CJe>5pGVJw2;+_w2^ewF;(LR5SeTMawozY;dgzja&4cSXC!z?Vk z*FB;F!UP%HkX{D64VCiF^y9nGg5F(H1@{w*B6cz)j5_E~FZk1kp+j6PjZ&H=L+(kz zWCI-l!MjH}11*DEOR=#I(@VsC~_ zPYiPB9y2J2lqrkW8_)dEzHsZ@L}y~P0O9t(V%6cmQ>B|A=7BVYL%k>zlEvtp;W5-< zk+(QdjwvQZK`6?|B1-QfEh7jhBa6I6w@Awf;3y;G;Y3DiLm63wtq4rtR;hN- zRhjR8k|I(~Q1??>qyvQzl3%w%NG(yKqEo4@@o>`Pim=Cvxr)_2rd`D3?JM2iPqV)e`lw1Qrb^HRf|yW!UW-~(idu+lY3NHjV83=A_0>O1Z15YT_mV_QH?3Kd$jkU@VGgXv8m}fJrGBjeP(Qb(ZMk>Op zYWN8u#E3NN!9&2oYxEk+4Iae0Q4b#AIC$gXWbkUj!E2;EeimK;4O#_UIa&lJU^||- zu-bN9+!{c}h&LaOg4>aRVAt*RCuxuhLLldM6|F*0P$?^Z8Co;j2+lE6Gs+);`PYi^ z8Qr#Kc_JJGVZLFi0+Qmi0k5wBF^8KWlR_gL4n0dorVTw9x>l$sz#;=urY3d=g8`um zm4T1}S)vC70S9D>x1`*FKsbzs@Tw2z3av;H zro^4!zaGy6GI&NH`*S9e{ZAZD_R~v?k`7xtPSPpPONF<1N|Up86awsrk)svT{O_no zb5RLF9DYVkxmvVItOYKPt0g>y6E1COgJ^teI7qa|WFiF(ZGV_KlyX_!h$)^x($Ej_ zO_aAZI(tNPS0gUdOXH$IlE4c{k>Le=2U=hRl$rV7{BpfVC5*p;qs)wlll~Sh@O-hr zK_3GR25~g7>@oL2%=s#H2U-HY$o>n73n$b_&&GNtKT@yB$Ayd?upnfz-}yxg8=mlV zmH#EHueMenJe7L7u$2qpOmdn

Z=oyOxazAO%Yh1j8Dr?gBb~^HG4AZb5n>cK4~U zix8_|b@9;}5#Z9_5(L;!5UB{NFBJVk0i0jVOK`egd)J;0yY}6%YtKy3HPE(*j`czW zb&l?u_#KVNkghEn*R@5uYm0Q(7NcvZzF2o}F}g?hvk@86wZ-GQwpe#<@&Bf4&xc+6 zW!SY}P29Cc-L*zNa*eusjc}`U*BZxljq?mftxrCa*%?I%NCdWMW`wmr2%DmCsICN^J~85 z*L=;d`I=u;en>jk9;K2_*Q>~{R;;js9Rc|MdcoDfSwG^3mF@>XnE{DChbV~SECf$6 z!%HD%N7^$OlrJ;D`BFJ^Mf2;LhsEa3Bj$@#|A_KjUAx#xS+A4+|R)$n*h7ohcB&D7qhtd72 zl5u26lf{rWiy<|eA;*$oWH6bePrxuVT8)uGz(X=)$6?}WBOHf5j03=m140=Ggfb2YWgHMj#{o$h2ZS;XPnvN+ zDC2-o#sQ&>140=Ggwb(8QpN#cI1VRcp_jC<9Z_~JhvLBJkS(ZF1rWkM5vaH)0{VLR zwm;MLjZwQ5N2%~&M zQuu~22!)9Vg^37-i3p=iL{gZDFl6F#Y_W1f2Kyl0uw^4K zWdK472k(xYlEF%=UObS~jYn)oR`DJJ%H#kPCOeI5rDnI)eOftZVo#?0jvg?6MDYZ* zgw3H-jZ4gptXpPZ3^hM?=$flBwx#WYc2wg9ZyrfR=N{QMh>moWgq0dmaSKAweERjG zSyP@Kt}{DcCq=#70WV>xbd7v6yCmX*o1Hj=T`J@-Mu+Gu&L2zJ;w&Qnu`G`l5Wa*4 z;@pFuc*w*iVcbk_ixiP*ob|E4eW?25N5(ms4hB~8c)J7Ymy;D5Lu^qd#S`I!0od6G zd@f-k@*0PF+xbbAs>H4ORK@tMNDzlt6X0>tWTie2!}?~-r8aK?PQjpA3lTuE79oIM zEk*#fYD567T7m%DByJWK21s!i1EVv(#j!a7e~0npJdQFWr*dWY@&R6nlSgRVGdKqH zRVs$F2)|Beea~d!HicYGJz8gfKLR;ZXZ@fES<4YRNoW5s0@TMcsokNa4b z|2rv(M@k6)7s-X=8HLBiEemg$A*PB*3E|}euFuNp=k z-$@w`mdDiji{wMWBKfEz7UG{$R#8&Mc5ov?`cqnGoLVI-`QWv^92Wz|sxQvJ7jSHB zEYZPk8>?k-(3Vv%f<~w>02|vDCp7=nla*cTeTPro@x%;t{0zFdyR6G=c< z;XD(Afgh{Xhe{_cOsxk(58;awc?j4xo;($o7jf8y%g5Yifor`~A4@C+3%AlN;v6s7 zpmj-t+#SV=0zOEjd>KyI zaFDVLstFu;8ggO& zBfKaa;l(n-+)=HmOTae-pCwV77|Vx{og9p4p&aG#@Km1~>GjQ6{<`3A6>)ReE4jps za1f5d&x>*hl@d6PeIfx+p-J44XtSEpY&V|3h>C!?SoUB(9ozVHeXfbEwBU5)e?5#p zx2=g35vJvNGeDOAOEW-bge=Rd28on>EyjFMsu%0!`^6Ctd4V%I5Koy|3jb28V`RsZ zgM|a(u&$&dz17YFw2TKqkaaAI%E)>W0%-sqRcsNI>oZ#zavXFsLr4%;8h;)vDx8S5 zG$Zmr(JpdT`cu>ZmVgMow2DwEcHm@91ot;XZHAg$8=H{7n(v_XrI5>iHHOa8YT#I* z8br7Z=ZPy?E`ScnXRMLU!OWS2)oczb%Le_=^pJ+B4xZA%&vft$9XzjtUn*Q=g2jdBC9mT25jNp59Pca~8J?B!mOF3=0P0)% z%^H{p_4OUM!`wudi$AxM8yLNxD+r-}_r~$K&2?$`?hP4vtrtt(UxN*p6nU*mo6g@T z*i>(s`T5^WtfjWpEpi z_$?1WVav>W=Wqi%CU+Mt=dI(^$osRZtyKChkGw(buOA!163%A;WDL*%12oD2$1x1( z8zxnV`gh9tyW%b97tud#V86gA{Y5NI!tHHeu7F|Vd&FCg3-_4jxW@B-#|-iS7|fy% z9Bq4$T?c+ub7R2c@AqiYiutDg+-Hrk!Xbw6CoLdFE4F@th_s?t_wEaDlUJh!ifW`u*|sm!q`-p;suN{DX#PUo4K%>c zN4kLljxS<7uH%at=lwCjH!_Z;65~r4$MT5rGa0Ya@ug>?t!f=# z#yH-BN0>J*v~eRz$Io(KQvOsOU(Wb69rqbOLdTmB$0N!RNyX}GSRHE;#xG{)ct734 z!>!I62xBuJp9MgDXcrSNGU3E50%U6#ayinXxfV#%G7n4}X|NupLK_Df=#PW(l9d4x_p zDv237af_fnMkj8TIx}_RRt4TU7m$c5Hg%mLLK2S%WI~tREs04wag8Kub>corOw);% z3=x9hF(#aa#6F4G@&0142>fQ^;|9AVt~b~v@i`%C1FKaN@+MPF5}!2HByqo~CW#v* zQLF2GP!iL0;&DNElI7y%Kf`?|DoJ}Di?37{V(PIw{rgnx`emK@)rIq zj1w)OnN*8PhXTCRS}Psn3yjh+zR)NgaF}~O+9pjBg=@?&Pl#cN;jnXwJzIaKwZ@h$ez~*61a{3Pvv(AEsWSw?qCF z67J-?kCDzh6+nfTKb%60R8e9)9~c=Yqb@M&%J_xuWp+ekiTG-=iAu_Pxc;IwmI=K4 zN^2|=SK&PPK_l| zcxg_kv8;9zt5Giri5JQw!US%dP6`uvHJa8~g5l9zt+7P-xN@MecqufVK^(Q+i*5H3 z+r89wFSp$*Z1+mry~=jqg&7YTTVr`%sHgazJY*4H$$^Il5(tfh3jdjJ)6g#&!83W{R&<=$Y^uh<7jm`1UilBFaIgTyRbvTVtMcfzcgWW^*4P71T)k`qcNhsm<1tmfmd3qQQ)mai=4z~Ft(cuz5|q*dr=>umq% zU<@sgXZbUc1QtAb7efp8W-*2p#3HR>#@ zZ@G1hgBPr6_HwyxE8B3D>nHd9wo_>(Es*S3Pi%<~;!`W?@hu;;t>ZegxlF^3O#e_O zmv89dS8p2dSE2Oj>cK~EI=TeDNq;yeag2a=4h=W( z*E85t=;`RkXL_24hAU2tqA{I{K;UC&xt^}>Oyy}&xO{;e3fgOD3g7C~AFHdhREOwy#|gGoa>dOGtBVWimZDpOW{k~AAa4CycOMDUq!^f($&zOB>Hxuaun zFw;M$q1i-c7ctkA0h}8E&W!+0E(16(0Gt;AtStjLKLDH`0j!%NozXOQbaoEQ*Os!m zNN?KtZ6Lo`Jb7Ye~M+(++wc&_TCX%Xah-s ze9T_wzj;gZdCmM@*amzGOg>O{WW7`z%H|3k+xjyNVPtsD!VM<#C@t9G$c2$$Xvbo1 zZ}!)(ZC&4T^jtw6!iSNt;IGHd9DMtU$~hw? z$V+v*liw4B-n0!i;rmO+OoWRn-o0%@&z=lFW|b=(t5qj#D~#adSOV2HxRRfodPBOj zLqoZqY_6xUmpWd=cHF6lfHF0<yD^?1sMzKGQ{a^ma>p#`)# zJ1~?T%nZtx=pYX#O+YuWugeZ*J9hweW^5xTYds4kri3X)nK)$(A{T_{V(nRHzJ}UOV??dJvtzIyk~X{H zFqLx|%-gwQ^#(nGg)AROtFE90`V1{sA#ff#3rT9wFzq@uXN+El&|5e{0ikmzn(Ve{ zWG(n)X-Ckim5(3hhKCAtr0^v`9Yx=F z4rlTO`M@8u7Hh4GfJCAOcx`7_2;Zo=s%J#~S7yW6{wa`G~!A`L6?;QjW`og&^ML=jkpt0(6cm;b=N{#VR_bP zcCQq!4R-FO!nNOuKncVjN?Cz$M zBYX~t2|X}Px72LbsyGJw7|52vU77yuP-aCL;Bib2fLqD{kKD4xmhWh;))T9Sk9v7sJzWNHMMo!N-I>-hxFek#hkH#K_=p&dgFm|r ze1sq4;MbOMWg{YDEDSu&b;}}y-8BqnrYFAwf#^_kf0o}p&10FdE7O)+pXtU&KX+wT zW^?D_>&tLr2G(n*U?QGEg7xQ>+ZINe=^W?Phj5f}-L(Dy>xMG@i14-8k2jSeBmx*V zu(1pw<>1B=(q4v;$bc0I*;Iy*2w+Ia<}!qogBwf8IeI!M;dn$6fPa0qC!a9_8XAHP z8MuO7=awO^w6Y$qHgLRsnDY(NgW$u=8#5hU zo8Womx9hb_uY6d&!35xc0+AIk%^I8+9(9F22#mH{kBsz;ZOs&6fczN8{W=8NhNh&KoWRSdPYd zyUGBTqjBEuGJxf1oVTY8U^yD+@6|G{wQl^(hE2Eb?o94&Wzd!D$^5sMK^Flu=q@UQ zu3UfTzoQJg2%tgt&NArAab^BU8FUdqgKku5?TlI?u_3bqIbCqZ#fOKPbIIXh=3c6z zuJZ&o>s&7S#BN-sw80M7LH(Uw4OovD$`EVL4i<9Re!MOmUJ-UZfoL$l zJ(IgaX|_c`VE$GE6rIg=$_~dm`M~>?hRE@dE3kIz!3GDu)Xuq7gI{I(9RZiNi8^Tf zU24qkTCmL`JGzm5me#@IF3Z*G4Cz$Z`=CdDR9l0zp&z5*OBMu-t|g* zKx2SqPFc~zPsZnhxoTxcKeiaUTd?iDB2&n8Vte}rr58_QYKIJnHn>meDYq0>%do)Z zZ!~8Jr4Z41Rl~j8aIq9lml@F;L;6idWDZe7svF+itn}1%^_@s32p;m(^%Va7(iiIC~KP3euONUcaTgdc~XWsuv~UAG%T zjpB%iirQ1Q1heOeV9{_(Cc`w(k@m+F?U3C@_plNh8C99+xp>?P<`)I`sg6i zt4P!+$2m;|4}1H5b$qGT(q_>$?d-z#bzwMvmyyCyt;2|JewEoM+HZs;EDj@4i4CCd zR*|!Y{NBM%?U>(Vl!88fcBnJkr8j|BbQC)1rEc1tz4y=%ZG)Nnl=j@m;DG53_ItYm zeD{|DEjg}g4=MYAnjw55*6sZr-FY%;B_c2y4@77R%T{;vZ*T6%<@OTjgGNP*wZ)>q z_lFg1F$Z!bH9n+@$8jOfw`6izqI=K`S`i(HX&>HJ$aQoIQ6E;vj;A)H<|AebC|xk* zvKVjK3+J-rqe`#Rj5KN?&iCvoWHN*3^0>piP>dfk<~GXyG4+aEeb}fNYCP6`S~eBIJ?+0m@njpJ2{VYa~XSU*e6*t zJTUZWrFU*7YFK&~ZTYdo^mNXi&y15h^fZvW&qk_ip`=d|74*-IlT1KFCG+zU6yMwfx|#7-1EiAm~#}Gamgn~fPaSkec?J!g>-t)vn?dFHKh3!5$QM&{x z*Y4L3({AIQZ%ouKR@q^@-<$|&54K5yK7Q*kZTWk?ZS-v%+ag%LGZ9SZP}tH_hiR#4 z&(mhijn$OxhNAJKX`&+@T!8qlaTiHfpbMqYMML&XWU4B)2V%AZX3*4pFM{?Epkf@p zA2Gm(fE{bWexMeF^UEQsjk7;Lj2P~cdifna+hsc}=*Y8X2{LZX1X2+DSS0Ki$P{`y zgG$duRIU{L?vA1LJ=>tW`L@9T`bUvTxfGhjNE2(b-96X`3u^p$BJy$Sr_am-$e$Qz zaXk6va6JITgRvneJGbfiCf}fEpJtQ(*>~1A%B~_GCJT3mM(Ve>d(d8N^>Rt?M4_Si-i_Eh=P(ejRbS0+60O z0Ww{`F;nhqbx(e4BqPF=NOX(lcgUpQnU+iEReiDR_eyV5lq44c{unV~8_`vi1#S(UHFdmYEcDipP-+ z*9)0-vM15DeLIBiC8NWogT!lKP1$UJrekmg&a^uV{d+fMi`xi)jW{5|sOJOhe>0{n zTw8>ZU|}&kg#8br-VwG(qDAHxYy78SQQ4(vi1+UX%Jj+vy5B`y|1eNx*UTZVe;O@_ zj-%ep3PD~rmPCV$-vbN*|EnBeWOpwF{O@vrk$t-m@PEnyMt0;vz*p3?qMU}g|0*4R znGE@7%;0lIEDryxWrm-XM7Rzfe)vP!QCsgVMaDc5jSPQS<6>KDNZH{Jp)N5{Wrsh6 zy3|0G9sUsNGJE`9rrhF)=A|fH+RpkI9A`$|= zs~liNL_)x;?TCnkx!2g!i-NPGBi{_$fRWC@!e49aU6j(%;I^IK4r&@M6taUN7L*{J zZ0)+Pd^K33Lsq-qehphE8bc^LH<-)2V<;TLacw@@*gjit<&J^FLN3#h&qN__H1bdi z8PYDDeYb(>%4{3%ZjisTXeYs#z^CwUIy_9%&4-6+e$U}yR@`!Un3h`)53~BV!^5n- z{qQg=?=TWshCjFriuq!|>}tN())RRdKrotD6U1J;&(>?~GGN-1@e8GR@3i&CZnQ!; zO<|PQp7(xRU!^Mx!CPU)`)Ihv6`dUKGBrbdhra6<@kjRCdP{%8HhCqC`(n}N?zZ(6 z?Pw*jXq2`Ut>@fh>&?Tm<(pd9`S%_Q!KQWoeTOXfoA0+1d76U{*iB+5q78*SI3&j+ zEO@}KdM9+LBiG$&&2urI;ur<|9l|F5=8bE$CGP6U7i8X;jZ=Z_F#NQx*}HL(6t@V5 F{tq^2XvhEn literal 41618 zcmeHwd7K?9%k4yl>UBomTM%uGNONG3C#WY(T^_hfOK zVMi7Tf@}(eO%!DjH(Z{?6?lp$Zs>DCpHERy(f3q*PtEW9J@;01^-NC^-tY7K?-%H~ z+qvhSd+s^sp1V|))tMhqmSw4Tx?3iV1pllpmbFEVsF5x9$OsaMD1 zRGLbN#u>G?)S4U}AfNRjkd_8SPE`PD#U8RBwE0h|m@59W;&wb7V*Zyr`BPORaDa%%hy>tO z(QYbqJMu4X$Ix^=0fT=D2fai;(R2*sRq?y(gBTIta`0z#^doVG*D3zhSyfUH{p&L4 z;K7&_NMdwUDva*a!Kf`o`!qyQCYVQGK1rA9l>WP42T$tSFD3-S1h>~oYP3dz+mF+! zNjl|8@RBCX&_`CYA9-_pSgI{3B@zN3Seb?{pq{8|V9mt+;qpfM%dgp^plecED~KqpEK zma$aEC>d+?+FYmd6Lp&^1~LQL++N$N=*kXm>)CEismbigbPX3WExFEtjPFgWI_6!!R-zvuxw-+))*00p0eCMuAd!e(C zvHqqe^=CV~b>eEfZbxUnDVt+qu8`@ruCeR#nZlav-k|{I-S$b_GlliT16wn>wr%a5 z14I3peCwbP(m1?rTPA1yTDe{Qna*4^?^64i3;gzVjcpfhUe~;?ZR3TT*S0nJ9j$Ha zW7gC$CGD+mZjPxbK`z718~jzx?J@gAzrDSAUE|sd+nYAFZs-_?D|TFY06`f)IzZXp z;de9_DM*BE=>mbSNUrkNHIv}h^&QO{*ZXV7wO09ti9iHH)s*vFS2nk8-srC@wl%4) zm?==zlP_r7cwQ-xQyb<9OwB269jlu+Zl0*Qke9U$hXxdEb<UXa!P@4IDBmW#(QJX7GQDxt<_#NL+cvg#V5t2KMch-TjV+QI z)9PBlpvY((Rjo6m^yp(6{igF)ZEV}Leq|}TW2TNN5%}p-I$GB@Z(iwl_{Elwtt(~< z)NxbVFec1wFG3w(SIiWsHyq_}TG`sRxp7lV3z#1=`GmH*TM=A=90)cKwLE|ofFWs2k+qP{R6tX3k9asgk5N23*4PZ8Aw)f-< znVfIkSdwnE_LZcYteZ;GE3NmGq?@gqOVX>YTT0Svt@oCsTdZ5{$!LE=F1sDpswq1> z2r8`G?0RIvlyvoNpdmum?e?+AY8&dxc4z#t@ORh=6t2C{y3?-Oj9zx;ws%<%*e7)7 zI(Ih$$@Ux&cdzRl>d2BC>%?MO_uJD6(9zSMS=m|WEGfIot^mfBt>;^J+m(oQw6625 zdnB_1vHd#cH(B@E6~jZ_G>9*&+RVUke`ld5J7~=16x0-3_Qv7NaHe&zJF^Eiu0EFm zjm3QHQoC+9Xjww?t&Az6N+8Q0Gu+D!g2Xm4P5XLX|KWb{8V>yPrzpKg8rM-nr zKCJprHI11YI|mv&2m6Zo|G+BjKD+wXXVruDnaUpVW~7uiv$?^JuSlxql4Ro(%0tp)+6EuQQra`v*Ihfv)!1lcCvjG?R#f0u+$bbES#y=&XlN>)H`9N zIjB@AmC)wupaT}_))adE(O2JLYHjFsCRu3Jo?%(e9SSS6^j!Sr;Wr<@1^6w*ZxMcr z@mqr5Qv8wi`>qg-kc&*Mi?F{8r;PGpRUizFOa4 zNhG#5Wr1;IK)NM?l0;Ba5h+>4lKP-zYNTW}OO6dnPK=bybnuV;Xm;>t1{$C3IKs-L zS^{RyvV6Fg{z2td_;4_F1TLnIz{%7Rc%l+(ib1ZN;w(zitdq2ET3iZO3m18c+A| zPcP8-;n$Dc0cSgvYXg37#BU?A+wtqbZxep!<97jmZ^G|F{N9Y;TL5 z$xcztW+l+ZEXR$z3AfU%awoaf^kfH&Rq&R>RW5XBBV)bnugtEoXm`qVe*5F zQhB%!Wr#s1tAma>XoZ%!ZgN!qoai){33Np@O z##xR#*>NpzE=b$|Y!!_8Hy?@!PPNz;6?W;t|GchM_xkouiu`^~;P&+v<(2m#A z&a0$Vz{sycJ*4)l{-o9G$NHs8Qn|u;-jJl^OxBVmniDa7gV0<#saeo|uZm=7uPeaklV~tzwiHYfVE8rrGkV)}&%! zEaDa3+ggIS<-I+KV=@EVQx$#!+*W;V%$?3r10-|8WQAj6`bouOD*#rtzE&k;$%<8g ztW3uHG$rv~Fkr226`6ghDv%e)OlsJWnj|O^K#}lcM4^k5iR7eYf;@1KLy785C2G(W z&L~nHy{!V0H#8*N6A(|h)7_IW%z&$;gdmJ-_(ZZI{WjF{-o9Q_(VKodaM*rTwxI&k zv-kF71+p9niL;1I<*3>%fTe=PE1tVEWg~~90gx2} zYy+Jh%PEwYgOHV~0)P<7LHwn`7&BC%w;=|?leXIcKH{(IQDl^V66z)T8z59kYuJw! zoC`^T+6hYl(qbr81?2C9A@KjCQmW_(C9US#xXmGl_Y<>Yariv=0d7CwYHY`U(L$&k zze>C;k>8{p2<(S#RRO_)lak^XfIu|t9+R3(ge3Hs)D&Qkr7R2|#$^qLuL6-+UvEQQ zvI^Wy0)4W^w^ldUpccYY<4zAfJ218n%|e2}wd53$F`Eol$;rZTbP@yL5W)I5d=Nw` zccSZ-o5r}GoT~Q~M*d{@Bb0!X6G`BLtZ_04(T@Xu$S~gq-DE znNTj)Y5u9HNnjk9u^N1vt8NN8z82s8t4Q=3O2)f!m}aHji}g% zo)9Gr<>)9SDMh(1aA+X-;P40(2o)3FEQfO|1`Os36KJBI zO@Liw7Vujz54N^@P^2n~jw^};S?Fb&Lk}wgqIw%3LhEIjTnXu0%Qm@E21)qU;#Wt~ zyuFYa&=n8pq6vl-voLE`bGnEnYam$|&NZ;h0bDKWpj$R9r|uT23k>ITjjE1vBgkr- z(d&_9U2`HCa|{`jJ4i?cwH~y?R8z|_GNSD^Fl(&`AtFe}ktCE-&lqF*aS5)DQZYYH z?gAf{NEAR_2bK?tbV@_Dsi8n?P!};!N1qVGW?TjbLWa~NZK|E^T+d>T#{ljDY78tW z7lzGBczc}&#mvX;l=9xn*prBfK*9LWaJ+YfrSBYDI@9q+z%0ufRqiauIT@3?m@+N>=W2)0w>V8f@Ov?58)qnrs@n2L z(r?4>?SaSoY62eXYj%+QQw+(!Dd%|YcECM{D|cdpN?)$%^rM4VBZ9j0WoX1*5LA0q zq1yMYz(XD#WqS00<;(;g?;3F|Ef}14DYFz|p6W|qqa4IITUhC9m7~G03&F1s!I1}W zoKJh#8Sond@OOvcH-_NI1NgfE{%!+~BWjKPrV#u+Avp2?eiOiNGT=7@yn(dero7wL zaLV%TP|%m#!0Nt)1iem!5xO?sdsP~#TS@MFi6?=$6JO!3fY5JYm+q1pcPU1s#@#9{DOA3P)%Ih*Wpx5^ zbP;(-s^0W|#hm6K2lVN^8!7HXF_lU;aIZ9QuksL)2JTa7NdejYY~TUi!2PBHB+`RoGU{iYMSWCmeT)yVPCg zF0YA)QP;1Dg$X#+0SNMy<2JfY?n=kIgalrKpo%UfwiK{$1r@TK6D;pT82;Y$hm`lQ zLc9-z69lEoxtzoXR6)=bmR3m%`v7(e?Sda`spWDb-clO_MPA1HFd^_4n<9e0-to41 zACb(DDD091ncKZbB=Zr4ZId8#hxe#tKB};fVlp*}j|qv7DerORJyuHM>6Z6VDgCJO zo=}Lh10qFRnvDpV&Y-Iw6UdJ#@8b&blCGYBRhR3%ADMO`4NhPs4u)W=MZ$q127D-T z0TT(iU<(&824KXcSf{}UQU29I1iKJA2N^i|#?U_u8v57*u#0d#3_IbTC;7gGGPGc= zIbJ|MA%gV@uze;I5_J8xb{6TK#@~ zuQP@1e+bP%0yygKI*dQN{VCmTaF^YFT)O=@8WMsZ7lKiSd?EO865NI)DUA>ekSB%U zCnaJC#`PP=yMY9M1O&sZ3c=9E2*ICbg^37$OcP8Qa5or&KLdg>G#GFa{Dctv1RA=^ zhOI-IEJh&;gyJXQ6}cOkZ-ZjHj{#W>kk1OmpOr{bE5~Pn$ftMpIkfEUBk7NTbeMRt zo?F0HY%0PgCx-p{oefs{b7%&8iP9q?vB(Kb~`{hlo}N=O8_%c@C6WIDxRX>MTO-W*&e_W1SEzd{ZWt)!l)i@ zyG*&>zbNnXs(@aBZEO`$coxoMVw65EY=dfi+_3HAK;UjlOU{_FM&47P33HN!!;D%w zntqCTAjrytn7Tra83#D;pvF@pJA-n+LW&?AH#12&U^!SXJY9AXG^-Yhx9U~)i*Y$PY+-Wz?@>%Jw0PJ0`56xh-| zn8&e;08V(~_CYLE0VhNr7EwT=dg-{u5K@wuaQ4~YI^bIx#3xbiDw+z*H5(;1(vU98 zZEc9rki?MY0?b|05NA4$H2iVO04D$S=}t23{=>PcJd z5`dV9MHBHLfkqUz&b^D#(=Vw0-t@)Z#qNciFA?-1H2|p@NO*mad0_GSr6MAo-d3;6 z>vk_X&hdKCTMv8jz20W`VsA4d>CN6|?~9_Os*l)^*_Ymo$+?C?GWyRL_Q!^uDkk7) z!3GMO){*1x1}vMPOk8rh=cgbD=}vfETa&SLS2CXNo{(0I3|19bzFpK{xugR1w;UN& z9>fsP&Cs+nK#9VV>I^YN$h-ss;&wuVEN_FmNEX1c6^x=^?jm<9qkZWOFd2@M7d$== z3#bMNV8BL2fjOJNEGqXz7!U*}ILC>>_MybgW57IGLM)CXj{)$iq9s}e-CSJ92 z(7_Ss%VJl)1U>b>Oat&0jlptHNC1)Lo=EZks%~B~!E~MZw8kr$WVS#)!%PkXsxx3_ z!h4pO|Fs;Fua$xKzRpZG9;M+qX0jb*2F-C1@4u>Y&egVN9ZU*X?2m{6L1I0p1B%Q6 zd$p0hpzuH}Ec|;cC?x0#>@n#2e-AOCgwSbq zsM1ZCJaNE_LsgJ*@SsfEJclPVGJa|WTMWRd>!)XcVVI*yhwYz)eQ$4u|B~97o{{jt zK;#{?bS8wHnKRLlg<8;-8A&^bET41y40j8(854~h;K+oE<-Z3&(96vQA>b+OalrZ^ zg$75wl?ktfGt~;Tc@nS#qhjO03Xhk~(_fRyICN)K5*q^z-0h$v5X1HdHf++fqpci_ zwgPH_CESTkuOx?7${NCPPO`w3SFN3JC(>AjQDmp5?|@EV&m(<1)EyDYdqip23U1G* zKS_vlcc#CAlRV4&2J9YI$bw6kf7+BkFXhjp982QKXe<3q?D5*(H<5!??=-d!G~W`i zZy^(F+cTIc-c9<2fTDX0MRzmA3Km>Wf4Btn+X3kP2K2rN=tmTf190>}pDF#Fl8WCA zDn4W?ejrluQB5P3!=)=>5}y8^^1d(2mD1q!?nQ)&<->bZD zE3B}w0?_!lxf0^L(ct^Rm?1co`1UEY#WHGB^4yJ}2G05;1`)SiAnTg2_b49FtMtvv z?6ZId2&VR6^%DNO3hQtf7)2-aQGnztcp{l^;8)gp+t>gZP;;AF%cI@gW5y1=(G9ZZI7OQ_nBE1VD z=KUClrQT2Q$MyVId9Htq<^7a-FPXe^cXBtl*SSvdXk!*SiuvRUIwxYzF^68ESD{dY zE0p&mRD)mmBh44w=%{zxD^*IlS7B#-oGs%}Sp52AjAzT75an!HUwWEuI4rXtT0_e&NOEL@ z8Scx!5j&O?S`zNH}l(B>~5;t5-5ONLa0j@sxU0T;w`WNt#us6I+ z^vPbq|B{%Cp%xf2uA@<|H>R*Z#f>R{66`N`p1B##D-@Py)1%s76Gnqz^gz6 zYtla4tnqS474X}c9&))24OA*UobZOxXDdAn#j?Gui_MZ1E{q+em*&kIbZ;c^po7h> ztgPv?a%l(R4wRUtq*B7miBBR`K{p!%Vh9kLWLvbk=^^KM3&BoS^w4w;d$*)VxBn(? zpX9K$AY4i3z)8T{bh%gb|$1xUEk3%A)K*aLe$vCL; z=`Vpv-j~4W^p|lVPsg5B&Y6}EvXJ{9f!bXb5P{*==JuChb^7uM?5_gYmjl>e2e7{( z>~EFxaKcCldZPXJq=jMLL4zVW`V?nQEOeGQ!Ak3ZUsh07X?t_ z!?Qa0BtAU$aRg@nKSE3g>E}xmAdcoMs4PCbu1p^u4P2%ja&hA|8REtVFl_ulvHsWS z;_EV9K&M!_m-BuFGV}rh1AHD5kQo|Q%m0dY_Eq}d4A@sqhI<7wv|drOFxh;mIN5xW zlTEd4>3{JU?{mOpr`N)kBUq&1Ad+ki;e0Ar$Qx>`5p%?WM6*?}pbom=5u1xIrf zS2)Q?#4%Otu2BG4wqJ8i%AS&LbIj;qTi(xfJ;Z(ajd1geybq@RzYXn zCih(9c+*YOlJnufV~1%29}pooR!43;&z-k!!+Uy7zJ_v;8QlN3?f)u z;?5Cl26m_tE>;6E&OtFf75Yi6Kd|fPAFyCtyZCnhF&29a{{J0C>drm z^IgJQz>H(_lU{}c|*^-XP@6h{W#kAV=349URe z4X)x~#QiwwlgtxMrj6+(gbXt2en{mLaWM`P3oZLX2rN46z7OJI%dG(yhjiY*DWO32 zvLxSZ32@t}CD>lzl@;uJut~wBw^2?2YGDod<~V&E&D|KiH5{uoF+|*>zzYU_=`~=Q z0@EOZ-s!+G8?xk{?YMK?xrm{F<9<5mlWelizXS6goFEn}982PMF@?-=?@~_M@><=a zQKjBNJBXqk_h|QS#du%3RRAxxyj{LU8ASw65r%S?I^F%sTMpvfX)Y{5kb(FV%e_}GqVLmz zha+Wyhbk%Ph#cB-Bn#LF;0#VWy`|V7;LN|%DIot$qGgB znFA2!SMJKWTb%iruF;Lnpd8`|U6)>M!Inyfpvm=SH9o1@sj022cQIqR4%R{L{hVId zUF^tmu;-)oEfQM*2yec(!1cU&?gI+TB%K0}$5g@6$eWMhen>IE_^0Q4^U*oWG{OXhbgco&|a|{G81IskaZrGVnHvwW$q&ii!pDp zx5V`tEKM*}om~V8kIHy+e1h&S4!esdJJ7U`Ysb2l`9rULc{OQBcA+DB2Db120 z*Q8*wfewJ+9Ztt!b)eQ#EUgzCk}WbV!$5C@_|Cu?J+$!ZQnc%8H^lNMPawtmrW0?{ zn<3K^gIul04J{BUQx>f^9_^uh;m)~|CA~1bh zrP@JPWuE&nibyp<-A`zd4irL2e%%TowM2=ES^+K7*&sLCV@NI@VWN&BV2>Ahi^}!5 zl5nCGfMbux!%2@T!X7W;DpvQHb`g`euXKMu$^JsBA8L%_jX>@6-gco6Hwdhh_p!5a@JgI5y{-eSt*r{M+ApjE(?qeWl> zw&NuWt8K^qjAV>>^WZ4BTM`iL`knqH4N^e}0YgXf(jiPXoc-vs z8AXaPCGNcZdOQ!v;Msxf&z?y3pE#WCrXA$J_@o$E&0!oIxX9fp|ec$U5i{xHiT!`GGnj9~USNSP(MV@BD&= z4NrKw%KxI(S68Rcok~4j*vbWPCOOR_faomJuH|9`HP9UdSX+rO1gblqj^8{KV5Xa& zUVzPgD(phU!0kl{pmU26;LhI?1lUg~slGt;3k7g~F)zXCI`Xc4Gwj;8!mhnALDxXr zLORw95Y#)mYvOk-Muv24;kd3X)LmPsyS4~jL-j?vdyCLL-8Ig)=-Q%jU0bBPw&;J; zwU@%K{VeR-&nNEMV%@dHdgK=C?k$E}rMtFxT-P|yVAK}tt}W4BTcW$RM33AO-MuB~ z-ng!5tC(I=>>5`0uh4j?^tq6p-zx8NI3FkR$_}!)SESOu^Dg^HrS{dZ|9=eo|EG!i zF9PMwr4?tDHC|xAWJCX8v znqTuYzvgLv&C~p%@KYX8HcCMI3Sd9Kq%vYP{skFj03{xI3OwGfG`|~)3DG>T018YMaV0B4pFT$1Q5bL z5vaH)0{VLRwm;MLjZwQ5N2!(G5qkKbB_=ZsU_OFI-2!(G5g>MLj zZwQ5N2%~&MQuu~2mqh#AOz#S?ONAW9NcKpgVqN4n&L2zJ;w&Wp zu`G`l5WWh8aqhuSJY-^%Fm9%|MT*EY&iX>p#P!FIjB^?t46NkwatG8eCo43D*rH4l z5Jwq&Lj&P+2@{dGI5gPKzg4M9T&ho1jNgg`adhmzHZ^qnd^XB6e44Sn7 z0TgQ?0_fEu1W>ER2%uF<5I~#6&BD3@DehumbjG(hHYeckFdm%8QD)>+uIyeuz$)`G#Xy$f!k!IAvtp$vSl)WGE-tCUrgl(8M$h>-r2))}W($x1$VZLh$^ zfU)X}^Y8f_8yib>u-nFJ8632++yzr?EFgLN3JXDyp77(V<$({xD%Y4Nu(eWSp2I_v zq}5K(le^J)APMLyoEKs+@MD$wQ0b(FWx|2bL-@i(9s;(FYp3AuA`ZK7A(`*T7@hp(+HP=i{U>%90Kb#_P@404j0v-iU3{YG4j=W{&?CTM_8r-wO ziUK}Jq`t9I6Q%co?#_nqEjqOL}=o3$#l>u>Dn2l>ii;UA|8a)m)tO2Zz;Z zoE`~%GFO!}g+A$hIgnG406LJ4$2>t6Rw%H%W67!lS^8kCq)1o;vcqk4o`G>MtsK!l z`x_kcm;{!QI90_|siM);fI2;UjqpN@^%hQncx4<%m^-R9^$GZf;Iky^5@Y!gvXg@mEtI1i9-it` zBfY*E%U>7#ts-s?dnK2c5e~vp_;FDVp;7|Ju}>rbDm0ZHV%%3iyYU1@R0PDuvIq0& z*v6;pb4_fe1*aqb>tXzfZB3+zFfA{c0kZs`nE^5*WLZ`ZmVgMow2DwEcHlHk1otxuofS zN(Z0S!RK_qM?L`Zc^y2ZgD>ddD>`^a2Vc{{H+1kL9sEQGKh?oYig$LbG(0bP zoml4nJ6M1TkxHY@<}Yx5gS7jLqWd1bVuSBNSn_5skin~c2RKV&I7^J#`t58GGPWN>>a0SmG34m_=eSc>8w@Tk zN%Mj_SOdAmln!wUw2BWw&*|@Vj>V8-r+^*v`2se2*L=f`<9t#f29bINJLt&ZB~HfYGme!E z;|my%>G(p%<2t^Gaqjg4W-;Sfkubi5ajZfZU&?rujxSq^wyJe}IpcWO9AVB`VB_MC zj-TuPPWe-GdBKEk z=OmrDO@VjL#U!GNP2FIKki_Exnb0NoN@9{uTqlV-op?YJQ+47Gh6q9MBood8VxL6p zcpETS1b#E|guyO}cN^@I_^c4Mfz_%Bd9$e|iI1CVl6cTmlf+GusMB>mD2b^$@suDu z)pCEY+&?JyRpsKPw0}}A-ckEs%Kfu)|DxQ#D)%*7cuy|7&%ij*x|{i{sB|d6E26d1 zF+SfY9pej((lNf!C>`UAjM6c_*eD(2ON`PnzSJn)EXCJYYo%ixZlNgAX*OSLt(DIG zZyb9XrDJ@BQ98zbqjZcn@*Txm=~#V@Q93qvsiM-kv9!Fn88_MS@XAaAQ{h+_vz^vH zCNOAN(E{o=c^4KUcp4M;Vn^i?JRT+p^^zpdFnY=OY@?UN(q#0K@s&m|8E-av$#{#= zOU73jy<~i~(M!f>I%`NNb&lN{L=!8cXc^0*z%gtTGd#zD(d%wK z5)!X%NrZ_9SuH5R3&^y_5)2Q(YK+df~96=^`G^YmA^YSd9I=J~h|Ciyg$)_g*V(Py|%t)p^` zrlViu(n3eE4x;}>*yo^wP(nq2HI64%y6GF?W%qEr-o?i_e7KzOdN9#mi)~t@trT7C z829K{#1~)Sj(!56aYj?v6@OMT;m+dGH#q@N$mPRh?sa@#WfJ`q3mBa{l|*SIE%$nx ze#H$!rM8=rr6dc3L?}F+2Pj*z;GHllCRs7bf|J6mxMam83pkmTkgSAc!DV4qg=AGo z7CaYbRZ3PRv*;_%hQgX)!5dA!-;2``1q4e?k12<=rmqiT8*;Uu)N_EZ|=YwPU&qOgLltX zp#U$8<&&|{)GS_ri@Nf{OtKblt<&$z#9Jcq%3ClWo8ZA~Ztu>P7Ef;su~5tFCov8hv1 zwlGP7NqB7m9~slNaT6tJvy!IDJRS|!fX3jx*6|BaD@6M6Y9vJP`XoLsXydF(*O9ksCLlDx z8$%;_88RDj(yxN4pbp{>fxu%jcqcNd;7_a)eaJP~b?RKJZ-s>ygq~n& z_JXx_wz3UZxqforXFHWv(gMkj_2Wz8gZOZX`tBtU+SbWk*<5Cp{>ay?t@w~h&*1i1 z_^!;xtbEqQ@9xIuWb$f4F#Yut17gFS_w&VGE=rfFz6aY_`8=~M&)-ww<5bZ^g8 zoEe477s!I3y>_PXX`AdS(_rNZQQ+=@&Pbap2Rf@X>G;0T(2kz2{H!oiY(jZ&cVS<|Lj>!CNi^#*(n1!Cjgui0jwzlI5z;C8v(2> z12``LoEHJCn=PHuG)gvbjia+W9FRzgSeCj8xGTi(L_5*As|B&p;-ZpJjp~ zOo!x8o+d!@r&u<{E#~S^)lJnx8%PS|W9B;lO`Dr8Y~ts&HsH%yE&RaOv<9g-l+6`7 zxAtddg^}Ue3pSX{qqJa$BNs-3p&g64y~$s{wsn2;(Q^cO2p>kmid#DiT|4mAqb{gf z(_Va^E`N+3f)F%}P%o$o=i^gJjZoF;DM7v?(?3LZ_3#5w5Ep!Y4|>x!*oe;+9Xk;& zs`&P;8+!I+`0b}$;W({2VOwDY-;xrjw!s#Dq3QT^X@`b#J=t7OVJ~&Oi0ut$90JPJ z*oH4SvH26q^+LX3753u9lge}ygoOYnP1IgzclU-d?Io9#(zZ4HFw_O$V0QPcZhWq)Z5zMcMTRqM>I7#~W4Od`M?vNB0Wb3rDPss5=9ab*XgWvG=r~7*xM>)*W%IP~ zj~UMFU>83BHHaT;|kb4KHLU*IAsF5fqh+e zFx#~Qs54_5IaTXfC^02WDayoYV<^{PWVXQMNp_L#r;pLNBOImH?lX?0qW*pur7sxX z*6uTxmGY`=i$yL7(Z$+lEj@zTjblWuy{mJuACfj>)?q5=GSKZ@vHDCsfrTs|N2{)2 z1X{~g2%Lw`LXu`_n0B2ydyHO((3?3z0im-en(Q`fWX<@(XHI_^bj}#d6B-Kn1ZSX> z@DAo``x`c>#P{D5K;zRcLRvU$E=%H2a& z?%3$BZ|7GP^_LnAiUnGBKRf0mDzCS__<;64C%{w(1Ff9VxQYd%V1YVPbEvDn8!O3`qP4IGlSa;JC>FK zjkpp~&}C&nBhEw=ba@%jh&vGlJxB9ccP*q9mS=rtcZ+asuxl?Bu6=hVGjwhl#1R(> zlS5c%g`R`QAnxky@8ahaGlDMoZf)DHOm16$cDH|8gwG){p$DevmYR)P6~|y71KB*d zE7PAH$~2V$9>?SWcx4&jal8wFo3#;+3Wg@KL@IJES~Mr3c6U#Izaf2-e0Fk`o>(<} z)XVGc={A5XJG&U$o>^T6ccgRUaJQC$kBHGY_%&tVBm5W#e_k0^HXRNXZe}XJeC=|GHto_neF&S=B`XjHg^F&RtzU*V4ZdfCgLe1SbvRp z{enm{UE{p^5RNjgo7UeeZ7b7{2w#i+*ieR$2w>R28_N(<4sI+V8_N(98L%QD?PUmw z0EUEglp&-X+*m?3>FJ<^;}J;!{`J|Oe8vc9Xb3iB;0ku1Uxv8S%6hmiC_`L1xUs~& z=?yZ>(Pc*yKGA#L=JpNE%_}dADwOU(JC{i_VZc{rcMs~ewe^1UL@Se?xpRV*$y=g^ zO5+RJ>*qHO=6kjeX1eJ*UZk;U82xvkXOH2LZZ?0h_WzLGT^pjhW8w4tO5qYTs`H$X1vDeREOcj(4VonY?WY{Ud= z)~w&S=j`4xfDuhB0``>wEQfJ+e;L4tkqI%*9w-A?uIbr>WdI`zS;Uwv16Yp6IYVUt z%h5PzXBoh9G|tJD0W3%3oO~I;ax~5@lmRS9UfIU48gE(2JO#(8_R zjBBkMKeJ)eZTt32Zf_ZM<$5yjt!2*RCj zR~aJ5L$1WqsR#QT_^vspQVo8!>30NN+9v9t@oUtW&9z{cMK*LJ+bpev#Z8uXsk3Ez z4tpO|>KW|HWd^VnVk*k#)LXZ;XA0MWfK{yNi0WZ4&qniZgI zW`=9P>y>s4O1C~YgPQ_pK3%`AGta%f8U3*7v5`>rgWy))4ZWxCvH{eh63#cmp5rOl#e+SQHS z>%wsUZX<=ET89zc{3^3gbdM2|usDoFB{qQGuOdec`MrZ(+AqJ?C`+&>Tkip{ z>@0NBN$uF3z3hy)@}Wr+w){n z3nDNYABfNtmaXpW-`3Qb%k3r5Lqq^@kN~Hs^6AH9n|{r*R?9H)nELqWh2; zv?4kX(>}blkn8Lcq8?VqkEb@I=EG(RC|xh)vKVjK3g@ciBT6sQN`yGyv!{^B45G{9 z&hkPre#DsDDEr6MD{}QwqbkLYMEKGkw#Gi^aR3nPAw6a$$7mbDxbal8*Z>~26-G?d zRatp`G%|jH)M;nGO=R%wJx`3|C#H{(pC40t?{K0<$j=UJ@DFd_A$9N=gb)>;hlP=z zMZxOx6NYehv1c$}$PIUK9_QXNw$`vsvSxT-=#xrs+)UK4^e)=+rw-H8*?XQGCwJ&+ zAa|dRRM$dDpCl^ipBX2afQU-wXCo-e@p{gl&m9J0?w)@+48*)WpFa%5{5?+{24caU z1CcT3C^X@e6Q@O(3ee-i7Y65BA`9kB?m8w{Xdj7-X< z&?H8hSexD6gKe;&#t$YUABTSW$UK1jp>Y<+lW)$}13)}q8gjC0tDbN2v-IrKWYRx6 zjNCQt`LU6Xh`Sew!Z`^2z5GuOgKXuVpB@IHdCyCSfoR$Dv&cLUh<0XArfay6(S7`R z#GfLQnrL13V8ar&_20{s_2gNS>HdY8Ymd|~`41x!5q3nPn>C|D?)=g?FAeYWan3?7KeJAD z656(HgQ)z@XkICYd3UQZo9)kZ4z9#ObXTE&Z%4Mc`2T&xZ3u=lA7KB3F-YNxAdCdd zftexft41j!Y>z~X%rDmXqhV3m1!Rc#PX@~L$^^RKMO^=BpvtavLtOu5mSWLy)LT#? z$e)e=Ymo69cOl?k$^k~U>}yqlJKfQ&Wp_8s`3Y>F~=G#y?{Q zpYvF8`2VNO@UxN#*WV96{2}Z=j&%6L8vi`h@P|+b4>kND)Tphst?clJP?y@{cNgXA zMMQ5ev&Y}a(;^b0x!jJP?u-|a5b%m}fDsW10k13v7!i>W@Tziv5fKRiueKv166RiG zPcI72j?R1&Yy(C*2lM11p7wdJe98XdCQb@mZ# zcxViv<+$F~=lNqO9KsoEKHAs~w%&jp1Bc~TrZb<3LcZI`Ln&lPyL9$O1Jj+^I=p?B z{GCBN3C0ATfWPnXFpW1I9;WF%hlg2t^WkBdZ#g{7>h~TVX6>zqhiSRZNMsrQ;07n= zivhD2dAqF-3CaM1(Y#L})5RUOUKy7G)BcBFD8+lHt+!*N6~bu>qqO$I_nAA`Wg&Q# zt9XeFcdw$8>uYz}dLw?qHhGVWyIIlZ?zZ*4>S!ggXq2{< zt>@ok>n*>szWqHXar`9meUz%o9HOH<^RCW&NJ`# zZ{AmO$sQk{Eq1<4ovnix+*<9-rM~~UTHWtfoo#p3hpJ0;E4}B^M<1*6PxhC8JUIB_ z;r8~e#pUxq?H@dO`1$tNSKRmR+*w}wVCnL$ihXbC?mbm1sVGuc)aBy4M~A^PWk20& zzT&2u$A7$kbksub;pm+TESybs0`)PFj^yK=_{ryLFS9{y}mwNSq z?x9!5GM+O3YWQLC&8x4Et6qQa`Obd%Po3So`u0uxt?Q~+?Y&@o4o?9JP=Epypa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZun0u-PC1t>rP3Q&Loi9o$2@W0qw(mM11p9kJ)Yv`w;l&<4>E{fK2JgL>> zgXg+FFp$exR!4{9pvA(%#>Va2y}iT3?d>SHEIW$6zM-MMKB+JL;vS*vhJhM}AY*uE0`m3u!fDf*5`?V;7piqd*Q5u)mYM!^c>P1njp*+dO8{@C7ZEnWxvGRHy zSKmi{d9(0$UF4R9-H=Yl^@AV`=jK*c!Y~L>j*%o}#Zyy@i}Ulv;#3qU_x(!c#*LYo z>1pZTvNES3?^o6*J)nMTxu(VIpPP%vL%Cseb!9Tr{=oyxRYJy-wZ!jpeI0o=3fW(n zSFt!hzqlCB4<)h-(SB+wleu^?=`YzYvc5tArv)MYo+oD~oyKhOeoxw-JJ%`YhVk$7 zi&_ZjFFtqj3|Gg|G}oP;o}5Gm8SLLmrCdgikTWgo*P?J;-;e9diNPs|_pfOhMxkIt zA+42~n3$anf{BTAT2@miz$cqUIrjD`=gIj-9-l~EUs=J*v)Np3e0+2i_0g|{_~Kc$ zS}H*u_lU8vd>$`dGMQoge(rP3Q&Lo6rcbFC_n)U fP=Epypa2CZKmiI+fC3bt00k&O0SZvy%mRM{8{$zU literal 0 HcmV?d00001 diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.gb b/test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.gb new file mode 100644 index 0000000000000000000000000000000000000000..3449d42d42b14c289dd7be4c4e86b32bf9115f47 GIT binary patch literal 32768 zcmeI4Ur1Y57{E`isl95{YqfH9m-Z$Lk~&+g6&561Zmu^m@rKs1^hZTf9_EGj!N?~M3OGBD%FMAlY5C#)gw&Eydo7;5fyPv1gl|e=yWaIlV zC-*zw-}5`?h%esF%@>m&UMzgqquI)k=gXg_r|;LZx~j|UUFKu;Ol~^({s*k#!TpP? z4$aB zZfq|5<=mV8nw&>w#WRl4^r#`nX9}yvzDM=$)8m!3fhWcNPSN8OyB)v&N%3XLZ*CSg zc$XjQ>wNsk9iKg4y`lT6s~YyS$_MH@_8$qDO#QPs>%^nURG*%Rrbbz-mEW21jTgw6 zJU$v59v&NV)9(6NpazHl5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U z1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U z1c(3;AOgEdAiGWAztOj;SOeTXLn3v@P2SOoDtF4Vh zAYyWIaq;~5*49IZs;j}SX*!p-wvLXrHuT55@C+i$iUJ;rg7fh08%9iI(DlFDnq%;oh8 z9SK!etLo&Wsv>Xb89K#oK|>q(fEEthHmrv+jD{83_R`Yg;>3imYnsX>7{o5Xe{RmU z;RBd((FEs1zoc{U59Wr08LEbuoB&@~NC zgV!tkZ99<|8k(6&By1b(PzeQB9F0y*jg2LfQ7&M&taN&KcyKTt$NZWW*b>}dTpwlt z|Lt~366+rt67|5YC_Y~xfbrL^L9ZxS57#30b72AWAQwDe&{r}!Ha0aS`U4A|LWqw> z1A&&7a=!9;!S#j1a9co-ziHy#@p_?K*k3ocrlt<4^!@LGVuF`Xw%gVOhc-Zw%Z5aeh@*QNm$`3q~{6+nY++c5koOi>nET zfln|9b~xKxINkdVy10?DJTn6;4+cY_?(VKG@Q1u8$QS0Or^m;EIy{3MInvVun~oZG zDE0^DCMMEp%Yu_?nxOaf!D)dzD7j3#x_Ww`F4%DOstUcMt|*ZRbWpAjwK_W5+tChZ zu>AW4<`%e&k55mR?QjOR>v#qf1@A2UW`!!?uW5?X%|%g=zhEU!4D7#;i!6)&AgZS) zm4a{B^|FAz^W7~+6aV^cFikASUkEcC8%U1ucejkNV#I-;%pf1v<=oBCVQ!9&jKqdV zlP8Wpvo9pB-VE&n&sk?QHZrQiD`jFf%P*hgQK$JV=UwOzy#mpU4}CgY_vB8j*XC}8 ze8txw&abl;bw7VN0nTb2e}Zk|!U~QX85fa^N7hsni7i2j5jTY;QdIF2zKT*5PPvi& zB2wa!brnUHi%+>JY>{FQPtj0Oio)w|WK2YQd1QS>k>%o--4qFtVlPjjRFtCdwi}re zk<~o1v7$&`Jm2hYV3hB4JKx}!TrIw(H8*n)bg*_f^gr)l?{J7c?~vHxz~5x#7IaJG zmrGWuzvPq#ji!=m{81WM8F1iIWbfhIkqV#ZR~t8K!_wWoce?|5zcSy%OwZchl~c|; zs|Oz+jJ$X0>tNo`<~>YbUOD4DExcL`IzO)jow?8MwFjE()L%~Wr>lWF_1D^}8}|b0 zZ(kHIICt{9`By*HCIUo&2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F x0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpMBu+b;4cJq*3$q0 literal 0 HcmV?d00001 From 9a42f048cb60879730a661a1e8d4fa8ece40e4d4 Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sat, 17 Nov 2018 20:24:23 -0800 Subject: [PATCH 07/18] More passed tests, removed a hexLog --- core/cpu/opcodes.ts | 1 + core/interrupts/interrupts.ts | 1 - dist/core/core.untouched.wasm | Bin 41920 -> 41653 bytes dist/core/core.untouched.wast | 2133 ++++++++--------- .../halt/halt_ime1_timing/halt_ime1_timing.gb | Bin 0 -> 32768 bytes 5 files changed, 1020 insertions(+), 1115 deletions(-) create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.gb diff --git a/core/cpu/opcodes.ts b/core/cpu/opcodes.ts index b59b6f01..b59c02f3 100644 --- a/core/cpu/opcodes.ts +++ b/core/cpu/opcodes.ts @@ -1970,6 +1970,7 @@ function handleOpcodeDx(opcode: i32): i32 { case 0xd9: // RETI // 1 16 + // 8 cycles Cpu.programCounter = sixteenBitLoadSyncCycles(Cpu.stackPointer); // Enable interrupts diff --git a/core/interrupts/interrupts.ts b/core/interrupts/interrupts.ts index 92fccb11..9cc15d59 100644 --- a/core/interrupts/interrupts.ts +++ b/core/interrupts/interrupts.ts @@ -100,7 +100,6 @@ export function checkInterrupts(): i32 { if (Interrupts.masterInterruptSwitch && !Cpu.isHaltNoJump) { if (Interrupts.isVBlankInterruptEnabled && Interrupts.isVBlankInterruptRequested) { _handleInterrupt(Interrupts.bitPositionVBlankInterrupt); - hexLog(0x05, 0x01); wasInterruptHandled = true; } else if (Interrupts.isLcdInterruptEnabled && Interrupts.isLcdInterruptRequested) { _handleInterrupt(Interrupts.bitPositionLcdInterrupt); diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index d0aad2270a0205e06a9c13447cf576b6f5d6420a..fe564f01756e8f90dde7cd5daa7f88474b2548db 100644 GIT binary patch literal 41653 zcmeHwd7K?9$3CJUryGD#*RnV6Y?D3DBMI?1d(>F&wm zHp7lA5(L>42%9L%B5t@mi7W6FQQXkyfgt)EB)s3}_untj zbGLKPJ@?#m&OLXjDyuU;pe)N$?{v3J8VUYcTP$mf8c`!#?2!>95K#zYD7Us$Xef(i zD5x}*5REfxZK*XmIzT?_MIbE=h@7eb(uzG~KWOuxQZZHhXT|M!ysE0I8o#RQN%&J! zRa4_ks;#W7sE8#17>_6LV+}<3Pq5gk%8o1fpBUnHRb55Gwi5~D*>)^Z`cEbFe~Cm@ zA_0UIv6!-}n5X|$#VUXpNnnaqC0N~##VXJekO3_l;6FvoXvF+4dGe>KM&JMuj}ZyL ztD@ah=yv2^+>W8?dIARj5)OKaexm6Z#;f9Y)dw*mzUAQ0=;%k{46jrCtFx-4Ao|y3 z&cTB*DUihIs8kr;r-M;jiuP%UpiD52zI>7{(<%LTzYd<%wO>pKgb8l1lhkO91h*fj zQn>ey)7 zAM9@4k?HF5hr4^S)^F7D(ZWrGg`WPVT&A;cDBCkwuzsr?Q`}z23|YTYlk%OrGVO)V zLdN==n$(}|?AD2^?YbSE`Q~hng}Fke+q%ZC%V!E}vU`UDn0MPJZO;_e4-ah3 zdxziAQluaewxtUMx+1yCU)Mr{Ti18AY+UcJ9oJgr8zuq~3{_LkZ(Y&Swt1t!uGrS3 zx?-k4RZqU4ZR2^RKu&F#Conaqv~{d**|>S4=0aZ9HXIsIu+>dpwb9?Oy0y7|bK9nl z4VyZO)YVTLTO>8yX{(x=F$QZ}I--1=>_)Q%a?13kRhu_#Y;D`v+JT|=HxzMCoi?^e zYD}wJ2?j+*1OMulJpAeJtgTD>*kX5YU`Gg^jhn^CFzyct@dQJzaf|14r|q% z9UcS~)@^n@GGR)(`ZmxIA?tSgSY)*gb!EFV{#f`s>;wweUTEEES8YZwJ9FE+tOx89 zx^tbon}B3{4v4$gbq;l8$&GblF|GUU=>+KL>Cdd_EOeHX-DOt**@4)89rK&5d+mzhp>7()msM?MV7R}t(32fB=5h*ZiYu=Oz2~i&*dNs!n1fMjW$y<&`^C<#&2|a;*q_w&a^+I@Kh+7_^#})b zb$`Rk|D}#C3m~=stfubj>CR-^h6_W(g|Nk3KE;i|9Kskgk@eyyYr*hqg0tGW?;dGtTP)(kh;DV4NaYAqZ1eAQQ1i$xR{ zT(KBeah6k4;SlL-b9?I%af7IDfsR@6<=)wD%vU?vK8p6evlm!u3mO*A)N5x-R7&cd zu+khz5eK{?=ZDC^g5F)v}(_=Eawh|m05Z&e)I5~kKY3P7UH)E zzefBPd(Zxw#4@tc`c95!FA zZ?Gg1Tbr`LI5Hr;GJ%prP*M>oS;dn2pk!*KWHn2U4N6Xol+1MSkNs$I@Mi`ZpY1rp z%A{HhX3nyFxR?Gx$H>!&{2h@5l4BvSB*0ezAQT0V{xd<&vnJyBSc3W%fU*4a zQORkuq;WXJ{sAI^FRYRL29Yl?2TrnI%Vr59_)B0UhcJvdgJ&61# zBR3-=NN+Jk&RLfKUc?2d#@kJJ2f`&d_N-hFme|n zEV&yY!7*}MoEesXPXM_;h}>%+?=#{32uY~3$nxvco%n6VuM59!3{M8XZTM}+ZwDGr z_wY|I(D&ijkK6%gJC$n#es9EYBeL7^>%eale&^$N0e)}7??U|EjNe-TcM*OU<97*u zo84;HackUK{{ay5SN7vUM1*S}K;(}g&#iMdvYkQvviJ?*w-Z0i<>@?r1^k9(IIlpB z6ME!qblw(w_ zOn4_dMKzn1KpV3hH|{3fO1H|LC?+#wkt`Vxy~^%8XN;WIV_?jTxsoNdy|=bY`6HBrAf9GnjFPldKFf&Sb`!PO>V< zIExu)Iqqb~wY<3?ZU3`XFy`NUATHLKJ7PPXQ>4f{&%Z;h1PB54Rn|LUMjRQ>#GJV0 z9_1XxPMXO=?c{tx`(8`?uaZ^)60ypuV`{(ZPg=cxtY4}mm3yo|`eLFtY4;{$v|_Mm z0T5_QBIO?MkM56`;`2xHJDutPd(JsisS)rnwlft6=hRM+YbWFGiK#ejafl)rXA2M6 zDn>c7)-=RmvMs-AO)3V4BVOUXZDkO*ytfB&OmY~GRE3|wD5yR+=1%8m0+Kmlvcj=3 zEv4eIFxK_0lrp+xnj5;f=wXBw%F-c|w08yXVs35X}$>F!Awe!x{yauCKfd?Hzqej93e zZ(pye=uN*JIBdTv+fadN+k1Pm0$C1($5}+Ca#U>$KNvO&G&VY;*nLU&(OY5dxb_c_ ziI|ht70=z7vXR5l0LXFywt-HMrh+usjz6m0gJJEH^O=H|oPSyJgBY!gd6iUF!i6n4A);LM0FraqQNmje3 zG$c~>$wY&4Qk1E>WM#6-J+-&NP1Zv>k}i8fcLFh}WCAe|Bt%1CF!-RDykR|%2`Q^3 zRkaWUhL(}aTIWg}S&SrOkgF7igkxia)T#jtSRaJaucYYvRn!MsvHf5xw88O5Qnr}x z7{%5-ropCY7=4@M_!VF?m9G+9h5o_liE5w|5E4qqe#q&Iux?a}o)87Ke>z9fkOLex=z#hmPsR=w zfC*HPu>)1{;-JMaSP-Nn!wL))ZSSQM%_4g!*KfTo1eLTnu3 z0182gaIjaBXj4e;YoJxs#KGi=p#X907|kBrgSd)UXF*czkcJ?JF*G#9fcPZmM~W&D z^JBv)7{AzZ^lrbR*#cF)4VYzZni+9W(oHt#*$UZJ&{tS6U!|%Y$2${VKy^#PJJV^X8dvM|akZQTpkdgsP8id|85lm( zBpW;v?lom3w3W_TT%E0j#8}=sS|i;XhLk19o(*wsM8!VzgeYMsM@K11Dav($Lj%DFhex15sF?6(IhUXLW}S`x{aW5}S~K|(61^`IT5np%#L5pB1DS!+EA5kWeR zB%zdg#u&?wOK{bciurMJ7x=Jrq5$eTuzXOYQyQvG4Fy_*x`=@~`idAf<1#o9GNdMH zQ|)Z$Iu~<125=8hV_-qKFl<)B+v_waW5L|`$d&V#7S?C+k<-i8y0vqttbVyFfv7!sS~sF0>*r(r=oS388h z#c2wH--|ihI73lX)s{b!ej9#ohvz9y?yCuStgqQY@=q}&|E8Sdwc7!=9j@Go4Jv)P z;$i?D#M%+mr7uGx?t-A&qYBl&Zv~$7=qS^p2P|hM@OamVV`;(Qyi1uS3iDK7`WodR z#@WJ3U#lDqeq9KDeF%;`faBcSyUu{$5P-is1ivu^M;^f64e)mxa2#E0>^Ftr?+L+? z2k@H!ev<*e8Q=}1{Wj&@u7*>VcZY($+y++nB_!x|8Z4)Uf`TKAv}{%BA10oJL@A&uKut`n8lTvtL>jnH zr6mPq_p^ZqbOZOB29QJp51@hjO#{d&Ho)RO6c-zKP;wqr9wO4f2UJ>8Xy73>@Il?c zL#6>F(ZC1Mz(b}15IIJ+(t~+4EoX+*~^3fyh}JtHZ{=h ztE;fBm=#aJaZWhyVt0wV)Lm8+52LPM6AKe?r~?q>E5~heo81+TcL@o+1VI&DN^CV? zKMN{kIVV`&hcNuT=?^LIVTE`f2qy?im2)|X4XA>kDJ-p$7WN11m9z_fY-KH%8}XI3 zF;L`Xyblusf3aC2__1`|=6ysmKccXE5@c@o9+AvP6t+`>%pKmNlKH5@{))-eBt9l2 zKBm0KmG@XFiKkoMN2Txo^Flgvw z3&1YI^)T#&d!FR`7Ru0qwdQyM`Gg48CzOYX8M#k@8t+;P;fEn_Fly*4RVv}v*E=Z; z5oV1~vVyyoc5g(~JZbg&^}Ws%w*MhC2MOS)yX!Fi?DnU0x4~U@`*G>^<7h|-eq0Df z8S;hT$4PJ-lB6_3FhHIZf}fO#AsE+k9Pb7a{1Ffgvnm8b8zTgNniVD@_%Tf|Wx(BF z2>uKR#?WBEN$?Xw@Dph0DjT*AX|foFC=iODfLG*hWWEiG?LG!%F+e^m6n|DCNv#~8 z1tOo`)#uQ%w~wSh0@7jP#d>Z5Td~;)o17T->vuL->Cd4V>@iA@h|nJJAOEL#lY-XH z$|hROAwG4j`T-CJ_w_Fxa~6KdjF!l&#MA@1-7wOMB!ODkBL$GxUdbX@o~epj{||b zDJ?l;#u|A~fhNpJ5)LzJ>1g^X=7At94`S*HIc6N-yn`A~jqD7{{R%09blgl9KMEFO zS`_JkDHZ7e9jFBVYs4RcKZU}iDoXOlbpNQ-?)lCX?Qo2aj&hR>fz55QH{lODI0t|H zrEt)(Wy=#7e`%k;|AvZwqQe3i(E)!c7RJc(um7Vx;J(>;k~{(X`n-0q*8)LKD(-b4 z9#5)X`uxx+vW?y=|0*dH5qs+fSI1sf=AT1Sq%8?bDGGI7c2o}Ypsq&wktZB53~UCDU5dqP?< zGFVk$`F2r*<&p~2-*RMBc@RTDw?Na*03`}bsx!n8A@dRlh}#Jbvb+uMB3S^(mNSZe zxr^MbjP|8Bz+^a1Uhw!hM4%cVfB_p71?Fr5v#8t?VL%X^;2b9g+lLY}j{);&39&em zJO<38>S6^dc?^&TnRwO8K?g^iFNfvM0DsuA|= z65c8paOyjzC@f$QvHfZaqe?ep^2EU}4qHLS!Gkhs^L(Dr$oQ!hY%u_*uAiO(hGC8- z9kzcG_PxCs{!40SdPc$n1Ce*o(wPu)X3j)I7HUCTW+d$#vV6|*Gu$oEW=u5ndVvsT z49kBHfS{L~3qrtC*yDipLkbO!cqJ1(t9pHobxzS|Mu)$2rLYTVAzx!ktKC6-JSrp1uP* zfjy7(?NE0_B<~TWVJo;jpZ+8v&fS^*22S`a?;EgtSRo58UH)lP{=Aewk8&)DC!?+O zH?hZSd*4J3R=v~MI?#Mez`lh{tZmO=rg%5$7XpgzF%;d+5Gz=4IsM@h&~FEz_Z!gr zBA_2pJPyFo1AV6ScSmiKsrZ3N#YZ)bSPqx2gh_b%d&>L1ERVmZa_LVQ$QPCO z1Ic_5nV(V46|`K^q4ej2mJXPfeyHr_rT=+9RI~*)#~tS!m39obJ}RrQWW)A)Rr+73 z%&rcSIyhSg2P_?a(}XXX@KuIlfN+|Dp?#NWdhF7^7gR!hu2p861NbnaSWW0P_X{e$ zUtv*$CB9j=Ls-o6NN)n@MK(~}3YW{mUq|l_$bueA3@9M7xpx9)Xj-l}w0wUIA7@%X zbAvKFD4+zggJr^fDt)i=zOAsr#tJ~=b`EP>ivit(4IzaIj=N~r43KC**?p;Om z=e;F7h=NmEDp7|@C9MXVw<}-@fzRgsioUv|W0knB6tAjr?Zl+o$yP;m-IS@*j)Djt z1>58H=%BY|8dH5WQyKKvOkprkGnv6)jmscg0}HO)p_)1@KGItd-C2XPCgtYvybFSS z4aQEng_>#x!!?r_?4qDoBEo|gM&gEx2|}(R zJ;2rHzDw)6O8){r6846diay!P`Ck%qG1LM>#&tBx^~MzTr?@fYPlEmB&NDZoah(Fo zEVPoj6PfGVJMdEWnFBR zEO%k-D7`dq-k^IUfd?IIc4cKvpOwoz5O<)&G$oZ1UQT=xsS3K;7!X5%&?MWU%}ozE z$6E+?vZ9BkbJ)8jJ-Yojar-2Ptp(vqItR|OO!B@2MyJ1wi+Vctta8q@e2|6Q{|MCXvVaH-w>G!G z1gq1RM__*yz`h*7{yKpD4Pk$)oQD%eO3)MSzb7pW^9~vm$?lu zsG`=oK&O^N$K48yj4leG#D`~f@JW1l?BfW`{(pp+4${w;CO{m`S5R4ecwL!3JQ}!6 zJLKZVYcj-*4`A5%fnxoy(Z$zgx`0lxaxdro3S{U71P1s#Bp@?1td{>3?d+@czZtNv znhf^}W@x>lW?{1VQgO2RA}5<_+tUByG2Z8Z$xg3@El03Ur`C({PPYM(umQ$I({#0N z%$pP1g0lltKs&eGy9$oxD6V#rk%(ie)?K3jvTVQRnv^{y-R79l!M41g>3WF$JUo*W zc3#UHCg?NPJps>g`7Pj?yHAz$7Er;|iWO1u+6rf;n-s6|D)&7~&r~;alMd-y*e@d$ z0UzHhZQ@uf3aJm9&)ct@889~>FAcpy z2Id4zb5Jtapz|7dDHfX@KIXfGx5k~vxUJ*!8HbC27QrqXL#pwmV8V#YDsIBsF#ahV zn(G_fI4O<{x*r1}7#Wg*%^O_B!HD~D(kGcGnoJwhO9&Zc(*2OiC*oopCKg)ug%DVD z*nJ}5&5*%IKk(aKh z^ww~!*2EBTj{+|k^rhE;X$nk(2zsXj$85-wd$!}wapxk20*?FXpii>NI^0FX2D1+< z4|9uSN!&W7kU8#M%1K*Zt9vx6)H`SgQMBV8?cS{z?@PA|;Ki1=%eN?_h`=erQ0{WP zb4cAeUK5(~PQ|a4=~nk1MIZZaFys_uZeZpH=4{2f{WRnZGG`Df%gh@=hl^FGyI*|ed|3L4GcvFR)!b=x zs02-`bTKRs(D|duo$j=;-8X}VzHZk&Whd1xpsFmer_aRAJRVr;Lx*%eYz_=Gx!$bC zCsjK&wRQC_W-QmiI>^1B(+j(c9a#?ce6+qrVhaG_&G#0#o;S~ZKw+7rQ{eHKDp(qM z^D*2HDFzt-^n7nVI%l~&!%+AO%kF+i2||Cw!1a}dQ-p&DuSGRIpSbyu1=a-GD|SO> zf-D@e&cjkH=!Lh`eMDg~<~4eYU9Z8?1Vh!?MUe2Qj5o(8=x$@!T|DuDrg_^~*K!{d zWdZ)`u;YD^n)5N&dkb{05wO<_yanZYT}3$QHQ?Cm@o>`X%COf9hROg7K~5WK_b7_1J|T8gFhVneb;rezrDjS$}%IHQLa zUR{cIUG0Wg{^SXySl@Kw4SO?WdSZ|(_qd@2B4x^=^~NJVv@hH_H_;QZT7Yo-U$*LT z-l@_}5c5EqLLpfg3dtgL&hQxOu+Uo+D92=zq97EdYayj~p_UN@l#zwr!g4YKsavRJ z1aOp*@o*v|b)k$b#7+dJZ>v;0=&HZAs|S!d5A)-&m_0 zF;hhegn2f@Dnlby8ts-yV5B0fs)nBsLX1eG9y|mbyhg9F+~7g18};A;j)ONIP6n?g z9K1%#U@#z5p)wFMAdB^YAmD&3_7;~L5NO?EJs^PNfQ*Ne0l}3i zGqWy+!hoS8dFc=)8_s@o*^DAZm=bqhem$NCWbo`j_GeEd`%fHB_R~v?k`7xtPSPpP zONF<1NRzX66awsrk)svT{D(JKj%zjLYSAXK7PvUBmhccxxU{7WqGl%@B-&##k%ES{ zA7&1voR;d4l7@bWZ=$@V(b*%SyBcwsUh2W4B!L%@BEt&~CoC`m%FH}(Ub)_*62{-a zQD(-&Nq>tLc%E3`ppStDgE$&k_L%!1=6IF511$kxWdDW4g%fI|XJb8+AE+bpaUo*| zEC`wGcYeXbh9^8-<$uxYtED*S-~Y z?S%=t2HF-NR`;*ac&PNbke=Tv?{YXFC-KS-vba~I(!TR9`$(ns)v*76 z4Ez75iTW=B<;|xO1(QA2V@L(&&RfV7#92cwVv2J!mp@)3Q-O&?4pNYD+2V2!Kvlsg z4JgYyk@9((U-LA-=4pP-)BK|HL(;kSD3x@&UPXSjVg(%R2*CH}iWfErldTvC?gz*^ z88G2~0F)V!*mH=2IL-p_6f?XOVs@lGgF*Qs1Dr3FGgmafPLHY93;P5xtWN-+$1=Xm zzC?gt!%pLZUL1ocA=uCzZy2SepC75M!dx`UTfJhVE}dvOj)DG?4DKZ?a2!sV2!;+_cT>*3q}kZ<=Mf^W|nz9AI8Ar!tL6uu!8z9EeA4N2h}LgCxL8onVE zz9AI8Ar!tL6uu#h@(oGh8^VxpX9+v>MrL_62HOJO%{`>Bt6m6gbWiJb3*X}*6LCeq z{GJ@N_v?m<2!)9Vg^37-i3o*>2%}6yQkaNPnE0GwB0^yzLSZ68VIo3dBEl#WkrXB( z44JqbTddrW!9IxGdxI$h5K=L$%H)&`R$BGqd7N!{!e(R@?;)T}4nSeDJ=`iayRGi? z%2|Rvnesb&!1!Us6VwtmhfX!_FgLPpnSC+TeEiTgS7U5T+Xd~Y#tYOuk|;6xhazF6 zMpWE_5Hz2By=c~yr-$pzEw7WJUhaUGuvEH6KABw-aly?_oWU*?au_4oBZ-Q2k>5Cf zEM<$cko?E8JYGQfDjJA$4}Rhy6Ptu_GrcWRM5b}p$Nu)A>W?28=QKJPSjpq%4ya#F zR%i^dMVTZZjxzX$2EykOCL(WfXt14st5TJ?RG+FCzZD7M@MZ!$Et;&<=V4gijJeb1 z&BrMiG;09@DAqy*(5poVpjM3tpjC?zK%2zP!omP4?qXnc#_^ z>|Q>=D{=A&ZTl9E0ezK<;Vi>~BXPPtsZ6DMHq9gih7j-;F@d z(pldtLdsM43w8GQBapoR3W8oNLgMn2DNKx{G2=Mcgi*XBcK`oBnEIjiFJUH_! zmauEM4vSpeT8+ZvI+o@CN=o9962kvMa(U1fvhomfCQbx)i zlYDs6k@issR}U=zQ&NV5<476n;O;JH=5~0IX4Jv01&oK3!K_BgSm$}kr>>RMk&6@G zmon;Av5a+oD*3UJe6%C>=T}mOgXJ-G{vi2Kut+}Yh=us8lvR|Ju^rrqkp7g`8K+js zNihxL#2}zmI((!58(?Fc?j4xuAPFri#Y7Ug=B8C zz_nhgk0q9Zg~2&qutT}P$Fo4P*IY9-fpsK~{&0%Gz2}4^k@96YVZ%YnGN>kS;9Kf;haA> ztWM+fNa&Nfs-!9ON$;_NoQed{fpk3P39_(4f#n@bRu#z72V*5g!WxhrZmaVQjC*P2 zi1yjv;E=~8u#Cj18g_8xZ9_8WsPyl6=9_*6{?B7aI?^)2-wa0>cgE=h;;~j-lb%$K zyP7q%=ph*YgsQC*z8`9Y7h{8SYYrEl(u)k%56zkCT78ZqQe=v5rUZYfJXkp$Bv&-H*y8 zP4`ne_^b{-rvpCn0g%t@;3*w^K?h&a!81Denhw69gCFVOCp!444qj5Y$OMZE&r9CK z=_72yQ#jtaxWjvH!dvdZApodv=@)BYBGlJ++%4uNx?KFZgWSOA{a8T=^{Y2dz-_ML zt2boiwO%ZB{~c_=q)5flrt=qgKo@EE7eyC7dd&vkim>GEULb?l`wnoX#FS*EFH`(3FK^>vmt}ApkoYAJKw-A>481Qf4{#qDQ>txC4)w zhs!SSSIqbiko7B_fxe+(%&!UWWfol~5q(6e!lGZZh@JVhsbz;nzhTiYQS=*A6gNe< z?k3NK!-oWk(^8hO$Nf1je{iWEq%h<%3d86PI^uagPr31+C8jF(XUf&r)aY+4LtV%H zrD{N5(KpOz`@xa8Aa0=q;$j@uN^CBI0Bzy&3f7+KB^W~b?racpwjV?4tU{|XIr&PTd|%Qn`k z@m-n-Kf&dqL@D|@3%wbw;)Bq0`g@&YF{IcnV8?vEgpD3H-*V$PpHzrJq+Y=;Ix={X zlkxeCV>QG00>)!HzL4>_jxS=I`~84vWE`s!#uqb=l?dZY7_ZXtrAyFOwT>@i9PgVW z%sC5eT>jDVbKT!5e~OMTXMC!T`;1T1@g~IaFfhngtiFcT;r=szDLcoj;2s_$b>2W2 zoB6LO*2n#MCVt0+6SI^vNPsx=W{@6R$7eGh*YRf7!}5SID;TfP@fOA_b$lh`RXVzHy9!$@wh-HbjiJvn4}ZeNuo|C9+1RTo%n+xLJ&O3 zgtLIyClNc|6bu%D-%LDVuuJ0I2D>CaD@1KzwQ54%Y^q7(v>obZ^j8Vme}_N8p~=}X(mK{nZWzTCP{)s;q^43 z#gBwpQ;2on#oT2O+QkZFx27#@Pv8cT#vDF+(+Kgz{x#s8sPyoVXj{f*l0 zWwv{{?OtKKSK97XnDL;oHJ0avy1Kc{E)VB^S?fpL=ZeVV(0B&~=HsvO&(r)vFBorc zz#lrocsm3BJcmEN#fKorZzGuo?7%;_eZC?q(tu3o>926*sH0fW^N}4)@@Xuu`IHi) z&v36=N98C@N5979g^pq^ME{Gh&p`*Fgo^%Z98axu(>H<(4#(?Ve3Zk7%L%Us6YaIw zszusL(Z!B&pN>U*`33IjClDHEG=-hpvM@-5!V`LcvLy@N3A1976_YGDDa?vXR$Q`xlUWJLN=O!5 z7G_mQR)u82b75AcWK}YYzT!Oona@89_-7&iEaIO={#ndFOZaCQ|15?-?)+QWIJm17eplotCfpkKr@#@lQl*NYSEvI;U2i|f@ zZ|fMmf3^w*cxf!3j)kUX@e*9rm6v9cwRm%#erIM9d#rd}CYC3~SKZ=mja;FmV%TQa zufN5y0$zbhfxugcEASN3F)4U&80bpY$E&o_ByWt{lm))w7YRb+iBP@*2d`XC@EzQ# zO1|i^qyU*KJpoa@pJO5RM%&E1pHI=B8$W+VRS?R7Y1Ojcl`2RIwlF}yOElRqCb zd0HNwIwfTblN6YQR~PWHFS zvvUANB6!g-c}GCX_129tS|7VL23!bmW*V==ck`|H=Xu5USdjvx==!$??hYiFTr z2fm2Z1vP8li*MKEkI_RAf`$?51y$jEd`77WsyaO-$aiG=hsdrTejEzof=}~7Z`uZ% z@F}BXC&EP)-@bK2&z=mw3zaJzr&T9xD~#YfQv%gCxRPIQIzC<6p`lz)HrG?wOC2v_ zd&3!rfHF0<;p^&e0)m z8b)o|JT3fVhBG_Zg-?SG;>Q~K^jYOG>+zItW)Z7tzwm>HChxIpvN2#^@j3cS2 zzb!`T3x>C~`^=@Kyeivbkqbg}vG!R@j-Yna7*T8Q>KyEcq|KOhn98{fbURn9K2uL% zArD(_ampGsg0S zhC)8i87L*ZgSp!Nh7D@D5CcH161|%@hPxr~Dl@gtT-Ulju(rZfKk#eHjlr(78wKb317n?8@k=WN{Spct=8ic5rQG zaC>3Lk}{wXS0W0!vW|LOM zG1$jIwhZpd^k;`M&1HbcF*yKUQ3iM%?*iZ!ZG@wOp@}S!irh*qniEmGyQjb3kiJPi zNx4c-tQtP*<#qRT8^9HvU5stdtS*B)(z$WCTg$*l#AqD+nlkVaevE@ZuZ$}j5fNiy z;AyU178&gBVK_5A`4tF6hnoAd{Df#8%Zy!_w%q#6c6>i`S7v24cL6?R3@2t_opuT) z;wdCpf2nx=f=Dx67az;5lI04_1T_$#t3L=2sUKk3U;4ghPcwodblnq zLtHtyvBbUU4KmEpWk)kU-+SKX_6;p9D=v&GlUCO(XuF=H4AdbvKrZMh?2yKH=*CT*VDAQYrMo}FDhy203!-n#F#Au zSdPXyLuCNV(Ku&k8NhNh&dHSlEJx#O!UG|nxQ0W3%3+~G2SqMq{vChG#O`NV8ouC%=l zmqGnq-LtS9F_a~$6n*wJ(Yrn2D&%M1Hly-o|0L#|jiXMJ^Jr_(>D?9tK z!?3*tyWT4@g-jQAx8JSw+G$MfkO9#KZ&Z55Err!GEO7aK=4_x8B08;VxSI?YOW|~x z5xp^_zsHEoA!?pfyw@mA=}fPuc|*NU+^WtI`HGBp zBpMEP-c$-RHtIcuO!sX{??XjuMWP}6I0P+&+`aC;-4JRNM?_TAUOOB`GjNBRCxjZn z!yJNyPRE@}dsq?0+!4{q_l>t1T3A+Z?T1T3^?kq6CkK&UMWRMI&Tk@k*xS3*iKSXg zn?=vGs~fx5h2i|&MhZi<4kNnxRc4>)9wQ`SaTtk8YyiDqMUEQsdk4F;Uw*Gq3cC2& zp{{JV-UD9IS?Hvb+Oa!(-=QJe1~d07?YNJ@0n;07_jU*P9w-A^a$40MQud%aR`^7$ z+xk1V=gFj%h`?xkAVO1Ewz{)_TXSbFx0gT<85J$o7K;McA6Br%oX3^a_@FAD#)UZF zoXKU0?n7qKis(R0`|#F6uCq&sdRQGlp4yO_51T2VbiI(vV!UN5oU4+LD7{E45#oH$ zo>pFF$kj)UsuVjC;Y)ki8vC5b0YI>a^q83(qiqD^##7B= z19;q47%@>-W##qJ$oK_Pr=9&ak-@X~JTZ=+m_9;&eoX1T!-*OpKRd9&KfHa1)WM?= zLR5Gj7Djp&1*^|b7{b}bp22(}H{8W}oO{dITEjNUn&E+=Pb$4}Gf~6RyJ*XwI!sSz z?|E{Z+@Ys|+p6QqcNmDdd;aAx5cBqY{xA^p z_dInNhy{BNM8=$>(2P?~oEBj!K#vPwI86P8d%kE4BI{~qMPxhB`A~+wG|_nDoXrnh zjxU?>9w!t8ijH$o;VXxsa?zfzPSkFGcx%}1(-XBzpmOa#bC`A;_dGjMyI5q0?f&aT zKzp!D67=zFhiS{-^L3+d^2mQA59Y-@!2JJ_PJo3-%o~Kb&6}rz@!R{fNqyqTk&)w7zF6bT{8N z7(l-mnUqVRNsKhHHoLtC+h9SBA526(4*m3zc>wuC<1CIR-<+)nfOy6<TSK z>Di~*q zuHiyP_wnb(oh5_#Yo>MGgAGgAR=P!n?9jhQT&@75Cr^M(_b<$pd!+8ke;CP#a3vDm ztoa=>>6gZbiGW0+V#Y(*{IAqedIWL1X_o0@dm%IQvO0QPz8o3-+N@!tI~bTH*AEYD z&E(p)nGNICLD@8I8s3K8fZr&6(kuu~8-fe0YUZ^Rf&Hy<)yF|?!r^g$6Lv`ZhO+3$ zD}h-h#hjmU+(KtRvraY?+O}?ay=$uE2S8SD}AzN4B^J@cW4O z5DZy9!2Sngm%@cX7ztJdGeg){jc!KR9*Gv2U##&*!=ke5$Pn+J43z1W33R`Uxc<{X zm0j?Lxcd!j0Y>)RLcrI`0Y-MyLcqVN zsYN*rbN{<^_+=*JpD}~a>8v>X|5Il8SxJQJ?}s1$5cVHOI{aace;#W1L#Ts?8vYP! z)YjTocKAc6OYQNSjB*1bqPLgX<1glE5ed;;ZbuJ!#*0V@ctttDh=_!MSC#{eh)4){ zRXM0VAD*d489zw?Imjk$Y}>FQ;j^P{CS8&-abqI&Y+zHV*-c3-*qXZ@Gvd693E!%dk+t@ z_SVD0th~)gWEuY8A}8jH0kb7}yRFX($^e4VyjCF7#T~X@AeRBtZirtf#e1i%cV(j$ z!f6VlwD!XHnXA}kA$X&!c$W-Uu%eUW`%TRd-=Xj6y&bzbxI@TWY9j)v9{f9!(vChBukmY{!eRd*Gb8x@iBz7X& zP{@NraxB7v2kfeMLYF#o+q4=Y5b&;Mxv_?AgS#qrWcIAhc3YLP57`gc{HIh*75`ar zJ07p9s;b7Xs(KRs)Kt~fIFlwIvtbZU}Lc@jLY34K|oMm4D~pQa&AYM!L7dKn}scFg=ii_v7U z;Lx$BUM=EzDH1<)t=C^FF6$b*HlHc1$?hEr zU~aT$c4rFfhX=N0a&6n&I|hdOGx^p*A*5+|`}R!EdO^9J{h5wjH19I|=yUz{bxm#O zZCTf{u5IIaTh_KU`NsTH0gw@qT-I%etnu=e0L) zY~8SF9In_g+^&V%w(GEgQE?)Lh8R$@PZ@ z6l}HAS8en+tZr>?-_o{u(}vBPiqzE|F}6r*xJRsNYQ`9>ZP^s%+Y~pNEs#^EH?7*T zVPk9C#@0<3YJWo!_p~F%7DY*}AzTy~27=NxH?lr6j%Dy0s*| z*1D}Ez0$hfo`Uu_uOrlhlP0}Tv?26%`E*iu?smYmv;r@<7Pj=9l z%c-a-w(L#Anc+<9U{_`jY+PL~0~(9@)@63>?vSkZp0{OUe^qZ_4o0b!y&vr87dyK) z+bQT{e^b-Tl}p|KP{(!a5f19={)UzRQ_Uy~AhrLlrtRwK%4FMy3q!+&u+BeJ{dP_# zt%EXDnSB17GEo1ejwR-8*}cu#{%meTM}MYJ$b?A#sg5pFEX}^Gj@%XC)apCLdOPRUN_1jU59`9fN(v{C{B`cE4TyqhM5(fp{eG7Cn#Fu+#xN%?Y zWcz^H_s(8mnOxAYHegSasFc(>VWqjKR4J9v=IWpW7V6d%di~Lt-eGEO=yfJpXf-y= zvYgu$R%YpW_|3;}0e%bdTZG?Y{2K9Fg5R0=EyZsces9F@Ec}+^=i}Eziv205KdJ;! zBRQym<%a>9$>}8tUjgQk0A`wL=sAU!6k7T=nsWS68;!hrFqU5G+(+)Bfo2r1@Sm{V zcnU6Lx&^`io@os_4SrSVrx?t7)J)AS0+%B2udmb&&i5g57bABf!jktRBsfNHt24{;?+PII2a&rCKf{LaJgE%?0^aOdN90e%)!`r{>gsakBD&X1Bm<;E0KPg>6cYH?|faf z@5|7-dIcF+S#Pz#Fr5$|fpUzhl?m?zr>JHP3AEARxCytyt#T*1)voJKktQinf|L^W zDzSf?5q4x0k*An*2_mmB=LST6$($Dm!^qzexdD-cNTv)d5lMuIBvOJ%PzQ)$9Mhh2 zr-F|9)*7)0X_A_zVK*5kFyjQ6{2=2*W}N6GAvU_oNz6FONydYWlbLa{lSH5)PGQC= zPO>7%IF%WvI?2i)<1}WR<|M0vjMJHMy5mlDT+5pW()NG73da2D`{H7qxg)mIIZ=wd zv;EuEN`MexUuB&WX2g;4WXy?M?orN>?4+42)K1P9wC|H?|5ef|Kq6K-wM^|-{Yk6W zkM&EHq;ik(N1sddChgv2j8+U5EdT;-Nu=C2_@n#drTF}j{7$Djz@BqXQ)&b}jO|Rt z!8x@P$jW5APg4@_1q0UVR*~74 zssed&%&>+HsY!w&0Tc;8Mija@nMh7bCddQ#Sd^&VRH6o5;Y=gd(c3B@Ij%n89*=m! zo#7@i{D7;Z0J2y))a}cspRR9no zIjDs+7-NPi^w!5fc+z$~@DYFAG(|@FGf^+mUk{;5TEl*<;G9Pa)J|9kkQPU&Dj-_uEuu!=PZQE@vFr968TNqfxv#)RuvE& zI4|`a0}zOY-RY?*L`XuXr=|jXEM;N%FfMB_d=-eq`g-eYlU3ku66ljPzO}mE2DK2L z8h1wM@qw{@XciI#t|h06jM-$cN=^}uqmvi_hX~fk;hP{*xf5Nt+!HYFC#LFrg^@oI zehMYv#6%LfAZwhYQy5S?=_IS&lj;+xx@4kWIVs9iZL%_1<(}MI?bucY3`|(J=Zp$?+?|W-4DLxC;G)(G%4`CmqE&=q6Ooy1&EFvsG^%}1}%ocf*>UsR$$N=>Ry0oC_4KC5i&8B zOCD;&qEN+g5Ri-mv|bo3#Ks{Gpb)(g4)#hCZ3@YK^|XqbIG8*!6c`zHjAoDRL0rYF zvmhyUNJ9|A7#bR4K%8`bs;Ck%KQ^3#@rx}-@AfO2El|~4Ujc`jW`<#33abu?pr0u8 zA|p23TR%x?!z7ie_D%;FRF^!5RH|g9o2u8d6|$?KudragN>w|KcN)Ba>Xw9enp0mj zuGXpJYB>o&!?0nUFs6mmFnp#-Hh4PRYsyGyE1lE1I$H~gvAlJ(M!Gi)DSKoWdIUy* zr?Z?hAn)FKj-S_7ABVDIaTW6``%rJBA0nfn0ox}MGRwIvP6tXE^VOiC$k{ zfgC6W24*$K0!fOkf2km?hnS{npc4!!*bM6k&xSZRqGBIJlNXqL6NE` zI<6=ZWTBU74n3?0i0Z9}2(6dpGn`AcmThtc4U+Jij9)ED^Y%h!Kvz7VizXOW%)+c$ z&FLbRtbt@72i>w^Id!*CU0^t$YgDzA8$mX?1-%|g*0v;)F~^WWxr2mM zQ0qZEOf|I}BO}^w1GCn85F&zfEJ;Es^^7r=ADiH+DHZeM@+N>XB&teK z{96pk|5DDe+U$sU!@$xI9pihtCgd{uL;4g4Z)EIaGYCv*BJ2Y0`TiY@EbyK z?F#yGD_Gr^kf7J8 zx11IV3f9Qj=y{pjLtHpxm@qwKqNrpE2gk1(uD5b7=9}~#NT%Pby!R^jc-|c5|6A~a6iEecDTt-8zIvxIj5qI016)nIuy3+*>6M(Emj?@?)_ZXvnv zA)W-{PJFrRL+H1%OLt0*I~5~R^X#hzy@If^2fN20Z#Rgd1hhk~qIz=9xj|Ex!eD8dB z2_|a>ed+UyPP2C*hsmY}+I_VZwiUDD2{_IP$34?s>MnENSQ8JUZc|MxOu(TIK#;E- zx7l6cwm9B}B=AB6Rdgw_)qwphsF39xXL%pO@b{)aq`U_e;(Z{TAShMNr6e|>3xcMw zv`SjoAFx-_F8HyPleyf8ubdnMMPA1HFd^_4nh%K;+ZA`aD|p_L20Df^?X8v7TGOR%|xHCMSmdx}Eh_ z`txW8dyLW}BD4qmM_v_gQqbC2*+i?`NuM#!I!;OzwTdbQ=TW9-NR+KbDL#xT7P}pw z97>Ifm?eN2Dfj}2Fa>WFZV(lgYh-%>OAwG4j`YVsJ_w_FxSM3k_5MwHUr+_~3T$Jm zh{CgQ9u}kYNnsmQGMOQkh58G>`2Zzk`s&MoEu`Wyf-s07_i9< z43>AE>w_uk~IUibVII_+VDnNeU%_h25!E&@1_7Pk*#p$a%T z^00^k64gt`EryVi#DufY2G;?9SmG+0l^1kmdr+J-a^6 zbR22;j8 z3((Uqs{Y>e1>ObjTR2}L=tF7%QZtb7`XKYb;`K{KL^`}}UZ>aPUT}=#^`N&N_UL=P zE$)Th7DUopye;0BL`hX2u_3cBy#9eVv%UQ4YyB%fNfz zVkR4p((r9&vK?dw&2bU$zoc@`m9}ObObS@+kB9+5Vm+q=ip&99bO))R@IWjqd?gkX z5_CEC7k3pD!X0i zKt=#C{R9AyM*$2o@;ed&wr zBs(w2%nLn~Y6s8aQehRC3LT*uVb3n%t%3okzGI5Q0tOM=uck1nbTcMT9Q@+26=WPd zD3dnN=LwCBUs%Bw190m4=~-YH=4jGk`!lic?alI^S3A?Q5*`?cyn~j`gpf0HHX5=} z3)(U(Y3GpTbB>?oc0ijk(a`G!LYOfu|I+{jz1&<70v^X62dp1bXmG?^k?>Y>rdp0R zX97DgDmD(R@Oarg{WYnK!+2IDu`$rV-3~eeF>HTe!zMi^+RDLbE1(uw!kyUk3UX+L ztRWm{rUkaVWbK4Ik;W>FB0D2}J9Gkj9_ibl?ubanbO}csrZAS;sd7Q2OEi#|X;Gw?c zzZt5_@^hW)0L5FKS8a?HB*fy}yNc$|duwSHKhkpUwLfeYHo$ zDsf#YURC4TiAj^ESQXW^Q>PtqBt-B?*dDi62Yoe1Fx6i(jln?8R0e}JQy64xTn0lm zu;9wwSyPL}M|vxwxf+}`DL0QNUJw*&Fm}ovuBm3Qt7Z~|-4t|8BeGwt+&%7Ir-mm^ zVb0s!xAPKIB8u_GpTZ0jcx!4wZNAc^4~tAAM{y$dqt{S2q2-p}#JP5UqL z!2f8=`vvo!H+g66U!oO9QOD zZs9m5>Tct38K=VH*e7E=T;_}@hs*jl)O5pPnf^2bT#)3*4m13hf5)W~J)?WSQY&Su z1v$`N*i3Nb_!PV{mXJo`hK~tCVET|x5LzMG9R4+&By0{Z6@{{w^S>k}W9S8jj0zyfVP;qCa%j22jUKtn5U#t z!pn(MB2_^*8v|kp5SnCLG`i^_=U5BDPFD2LbPk)hq(`^^X6~Qlu(u#wN$0?MoYSCZ zkVIiu%ECFxbr3P4mxgD+3D*%}BD#-rEZi#LkO(OdvAp&&4yt_m%V3iCWiUGZ72MR* zv9BxVG|LBB$o);Ac2IUr1cqDN+uwrK=}RN9zYAc0AHe=0fc+z3|D>D;6GlqV6Yan! zEevxH4T|LGV=P4J#nb&0mt&M3JY7^#Yh9pI%c0|LB}PUU1yJI|vpV=BPCPbp1ZMxg zLQDtg=t~nIj^-<QOtZ2Um6{x|94>oQ$HuUNU4@qz_1 z^a=t4d^Qr085&m0|El)(Rr)6e>}w{&y_^|Zuc%p=ZN6NbZN9|WrrNgjzj%xnI$*QY zYhlb0tkbFWV!YFBKqPE{G0`+#r5p3+hPL30z!cEVE%&Z~r#Xtdon$29n5%WyD1a>6 zuel~=k4v{XX7sQv@0YqBV!sLxC54^W@QMlgjD=6YbKHIlc;?=yN_q>ZU~a{dsCaLM zQ`5T@@A4}5CZ(sUo4HGe^n2JZBNYK3;Z31UoNMW>-)e|}RnQr?$;B5shx}RC!V+R} z6a=mVCroDs(}2AkRtA=rQ=FB=zTyrXIm0yK5Eun<|KQ^`tPCPpUE;|@|5-!ey zVw{6wdMfmjSb$*L&p%+nxO%&Y(RT;1ud>S-pfS9RIu1JAl;vHne3wS;as^EWtGz4H zH0K0N7&t628NHl3Fpprf^>RjhuG=7HGBL^Ak&vlL&<)UpV}da@9BOXChCgGg#E7>W zEu)^k6boskkovIsy#C6W0doWL($FhpU{2tbxQi8R(Ao986^q>tAM;(pTjMTZ+}81h zjKf7hi(r?HA=UU&Fk!@H6?b8682=Pb&Gi*-9^!|Wl`wID5R44T!0rw1;$X!6IO&tj znI_Z5^b$e_nRGv-@=V-}!^A?%z8C_F4!by-<8%sHaPNfQ{Sze=$Yz%0n>_*U8?7{P zpLbTU@xdkqlio);9;k&i;G5(0aWr>h^ww~!*2EBTj{+|k^rhE;X$nk3v)(DdF&DDr z&T-s%?tH{hz;QnX^hq{Zhs%iAVfJC=VQz6QiEGCcGRJ+ta?+O9>K=_Mbq?A=6z#Z2 zyLTzZ`_iofc!A~Z@-50JB5;Z@l)D`7jim04UK5(~PQtI1=~fp<8R#Jn2fY)Kxq+D* znA3@c`^m@|WX>Q|mYMYbT`W7@yOp;L#JNYhxO@?0AU@S{@6oI1dv%b;nXO+paiHs!F?)SU%4yi zb~p<#U85UYK{><`x-Pxyz@ARTh)~mYnh^*HI8X(S2`n}UE>%zn?bdPgC59sn>`xPA zQst9&9`=81p8!8<>we-G3jM^Y9&AB1_eeTaf~Hlv7?ua<{L$o2_sFr`H-m=0?$AAD zC)F;Xsw}XlPsYtW9$4x_hjcz{4h%H8&Me0#RXa74YwKLhSgwPGkb57e7j_q0vK;IM zXuU&X3jyIR@D{phZ@zoK!a7N(z~eDhur~4*V7Nc17-0O<3%mvBoaKH9j8XUt%kDm? z1ff4-;QGqKDZ;^n*P@zUK-_%F0&4>86@$%&*&quCs`IfH3wq%#bsth#jd_jU5;t9M zX@a5Z>>^0u`I#P{pu3G>ck##vn&x$5UCYH$9~m+qi@c!YeHhuG<^s(1-a_4L1nl)f zZ(+G!R}oHn4LJ6CJe>5pGVJw2;+_w2^ewF;(LR5SeTMawozY;dgzja&4cSXC!z?Vk z*FB;F!UP%HkX{D64VCiF^y9nGg5F(H1@{w*B6cz)j5_E~FZk1kp+j6PjZ&H=L+(kz zWCI-l!MjH}11*DEOR=#I(@VsC~_ zPYiPB9y2J2lqrkW8_)dEzHsZ@L}y~P0O9t(V%6cmQ>B|A=7BVYL%k>zlEvtp;W5-< zk+(QdjwvQZK`6?|B1-QfEh7jhBa6I6w@Awf;3y;G;Y3DiLm63wtq4rtR;hN- zRhjR8k|I(~Q1??>qyvQzl3%w%NG(yKqEo4@@o>`Pim=Cvxr)_2rd`D3?JM2iPqV)e`lw1Qrb^HRf|yW!UW-~(idu+lY3NHjV83=A_0>O1Z15YT_mV_QH?3Kd$jkU@VGgXv8m}fJrGBjeP(Qb(ZMk>Op zYWN8u#E3NN!9&2oYxEk+4Iae0Q4b#AIC$gXWbkUj!E2;EeimK;4O#_UIa&lJU^||- zu-bN9+!{c}h&LaOg4>aRVAt*RCuxuhLLldM6|F*0P$?^Z8Co;j2+lE6Gs+);`PYi^ z8Qr#Kc_JJGVZLFi0+Qmi0k5wBF^8KWlR_gL4n0dorVTw9x>l$sz#;=urY3d=g8`um zm4T1}S)vC70S9D>x1`*FKsbzs@Tw2z3av;H zro^4!zaGy6GI&NH`*S9e{ZAZD_R~v?k`7xtPSPpPONF<1N|Up86awsrk)svT{O_no zb5RLF9DYVkxmvVItOYKPt0g>y6E1COgJ^teI7qa|WFiF(ZGV_KlyX_!h$)^x($Ej_ zO_aAZI(tNPS0gUdOXH$IlE4c{k>Le=2U=hRl$rV7{BpfVC5*p;qs)wlll~Sh@O-hr zK_3GR25~g7>@oL2%=s#H2U-HY$o>n73n$b_&&GNtKT@yB$Ayd?upnfz-}yxg8=mlV zmH#EHueMenJe7L7u$2qpOmdn

Z=oyOxazAO%Yh1j8Dr?gBb~^HG4AZb5n>cK4~U zix8_|b@9;}5#Z9_5(L;!5UB{NFBJVk0i0jVOK`egd)J;0yY}6%YtKy3HPE(*j`czW zb&l?u_#KVNkghEn*R@5uYm0Q(7NcvZzF2o}F}g?hvk@86wZ-GQwpe#<@&Bf4&xc+6 zW!SY}P29Cc-L*zNa*eusjc}`U*BZxljq?mftxrCa*%?I%NCdWMW`wmr2%DmCsICN^J~85 z*L=;d`I=u;en>jk9;K2_*Q>~{R;;js9Rc|MdcoDfSwG^3mF@>XnE{DChbV~SECf$6 z!%HD%N7^$OlrJ;D`BFJ^Mf2;LhsEa3Bj$@#|A_KjUAx#xS+A4+|R)$n*h7ohcB&D7qhtd72 zl5u26lf{rWiy<|eA;*$oWH6bePrxuVT8)uGz(X=)$6?}WBOHf5j03=m140=Ggfb2YWgHMj#{o$h2ZS;XPnvN+ zDC2-o#sQ&>140=Ggwb(8QpN#cI1VRcp_jC<9Z_~JhvLBJkS(ZF1rWkM5vaH)0{VLR zwm;MLjZwQ5N2%~&M zQuu~22!)9Vg^37-i3p=iL{gZDFl6F#Y_W1f2Kyl0uw^4K zWdK472k(xYlEF%=UObS~jYn)oR`DJJ%H#kPCOeI5rDnI)eOftZVo#?0jvg?6MDYZ* zgw3H-jZ4gptXpPZ3^hM?=$flBwx#WYc2wg9ZyrfR=N{QMh>moWgq0dmaSKAweERjG zSyP@Kt}{DcCq=#70WV>xbd7v6yCmX*o1Hj=T`J@-Mu+Gu&L2zJ;w&Qnu`G`l5Wa*4 z;@pFuc*w*iVcbk_ixiP*ob|E4eW?25N5(ms4hB~8c)J7Ymy;D5Lu^qd#S`I!0od6G zd@f-k@*0PF+xbbAs>H4ORK@tMNDzlt6X0>tWTie2!}?~-r8aK?PQjpA3lTuE79oIM zEk*#fYD567T7m%DByJWK21s!i1EVv(#j!a7e~0npJdQFWr*dWY@&R6nlSgRVGdKqH zRVs$F2)|Beea~d!HicYGJz8gfKLR;ZXZ@fES<4YRNoW5s0@TMcsokNa4b z|2rv(M@k6)7s-X=8HLBiEemg$A*PB*3E|}euFuNp=k z-$@w`mdDiji{wMWBKfEz7UG{$R#8&Mc5ov?`cqnGoLVI-`QWv^92Wz|sxQvJ7jSHB zEYZPk8>?k-(3Vv%f<~w>02|vDCp7=nla*cTeTPro@x%;t{0zFdyR6G=c< z;XD(Afgh{Xhe{_cOsxk(58;awc?j4xo;($o7jf8y%g5Yifor`~A4@C+3%AlN;v6s7 zpmj-t+#SV=0zOEjd>KyI zaFDVLstFu;8ggO& zBfKaa;l(n-+)=HmOTae-pCwV77|Vx{og9p4p&aG#@Km1~>GjQ6{<`3A6>)ReE4jps za1f5d&x>*hl@d6PeIfx+p-J44XtSEpY&V|3h>C!?SoUB(9ozVHeXfbEwBU5)e?5#p zx2=g35vJvNGeDOAOEW-bge=Rd28on>EyjFMsu%0!`^6Ctd4V%I5Koy|3jb28V`RsZ zgM|a(u&$&dz17YFw2TKqkaaAI%E)>W0%-sqRcsNI>oZ#zavXFsLr4%;8h;)vDx8S5 zG$Zmr(JpdT`cu>ZmVgMow2DwEcHm@91ot;XZHAg$8=H{7n(v_XrI5>iHHOa8YT#I* z8br7Z=ZPy?E`ScnXRMLU!OWS2)oczb%Le_=^pJ+B4xZA%&vft$9XzjtUn*Q=g2jdBC9mT25jNp59Pca~8J?B!mOF3=0P0)% z%^H{p_4OUM!`wudi$AxM8yLNxD+r-}_r~$K&2?$`?hP4vtrtt(UxN*p6nU*mo6g@T z*i>(s`T5^WtfjWpEpi z_$?1WVav>W=Wqi%CU+Mt=dI(^$osRZtyKChkGw(buOA!163%A;WDL*%12oD2$1x1( z8zxnV`gh9tyW%b97tud#V86gA{Y5NI!tHHeu7F|Vd&FCg3-_4jxW@B-#|-iS7|fy% z9Bq4$T?c+ub7R2c@AqiYiutDg+-Hrk!Xbw6CoLdFE4F@th_s?t_wEaDlUJh!ifW`u*|sm!q`-p;suN{DX#PUo4K%>c zN4kLljxS<7uH%at=lwCjH!_Z;65~r4$MT5rGa0Ya@ug>?t!f=# z#yH-BN0>J*v~eRz$Io(KQvOsOU(Wb69rqbOLdTmB$0N!RNyX}GSRHE;#xG{)ct734 z!>!I62xBuJp9MgDXcrSNGU3E50%U6#ayinXxfV#%G7n4}X|NupLK_Df=#PW(l9d4x_p zDv237af_fnMkj8TIx}_RRt4TU7m$c5Hg%mLLK2S%WI~tREs04wag8Kub>corOw);% z3=x9hF(#aa#6F4G@&0142>fQ^;|9AVt~b~v@i`%C1FKaN@+MPF5}!2HByqo~CW#v* zQLF2GP!iL0;&DNElI7y%Kf`?|DoJ}Di?37{V(PIw{rgnx`emK@)rIq zj1w)OnN*8PhXTCRS}Psn3yjh+zR)NgaF}~O+9pjBg=@?&Pl#cN;jnXwJzIaKwZ@h$ez~*61a{3Pvv(AEsWSw?qCF z67J-?kCDzh6+nfTKb%60R8e9)9~c=Yqb@M&%J_xuWp+ekiTG-=iAu_Pxc;IwmI=K4 zN^2|=SK&PPK_l| zcxg_kv8;9zt5Giri5JQw!US%dP6`uvHJa8~g5l9zt+7P-xN@MecqufVK^(Q+i*5H3 z+r89wFSp$*Z1+mry~=jqg&7YTTVr`%sHgazJY*4H$$^Il5(tfh3jdjJ)6g#&!83W{R&<=$Y^uh<7jm`1UilBFaIgTyRbvTVtMcfzcgWW^*4P71T)k`qcNhsm<1tmfmd3qQQ)mai=4z~Ft(cuz5|q*dr=>umq% zU<@sgXZbUc1QtAb7efp8W-*2p#3HR>#@ zZ@G1hgBPr6_HwyxE8B3D>nHd9wo_>(Es*S3Pi%<~;!`W?@hu;;t>ZegxlF^3O#e_O zmv89dS8p2dSE2Oj>cK~EI=TeDNq;yeag2a=4h=W( z*E85t=;`RkXL_24hAU2tqA{I{K;UC&xt^}>Oyy}&xO{;e3fgOD3g7C~AFHdhREOwy#|gGoa>dOGtBVWimZDpOW{k~AAa4CycOMDUq!^f($&zOB>Hxuaun zFw;M$q1i-c7ctkA0h}8E&W!+0E(16(0Gt;AtStjLKLDH`0j!%NozXOQbaoEQ*Os!m zNN?KtZ6Lo`Jb7Ye~M+(++wc&_TCX%Xah-s ze9T_wzj;gZdCmM@*amzGOg>O{WW7`z%H|3k+xjyNVPtsD!VM<#C@t9G$c2$$Xvbo1 zZ}!)(ZC&4T^jtw6!iSNt;IGHd9DMtU$~hw? z$V+v*liw4B-n0!i;rmO+OoWRn-o0%@&z=lFW|b=(t5qj#D~#adSOV2HxRRfodPBOj zLqoZqY_6xUmpWd=cHF6lfHF0<yD^?1sMzKGQ{a^ma>p#`)# zJ1~?T%nZtx=pYX#O+YuWugeZ*J9hweW^5xTYds4kri3X)nK)$(A{T_{V(nRHzJ}UOV??dJvtzIyk~X{H zFqLx|%-gwQ^#(nGg)AROtFE90`V1{sA#ff#3rT9wFzq@uXN+El&|5e{0ikmzn(Ve{ zWG(n)X-Ckim5(3hhKCAtr0^v`9Yx=F z4rlTO`M@8u7Hh4GfJCAOcx`7_2;Zo=s%J#~S7yW6{wa`G~!A`L6?;QjW`og&^ML=jkpt0(6cm;b=N{#VR_bP zcCQq!4R-FO!nNOuKncVjN?Cz$M zBYX~t2|X}Px72LbsyGJw7|52vU77yuP-aCL;Bib2fLqD{kKD4xmhWh;))T9Sk9v7sJzWNHMMo!N-I>-hxFek#hkH#K_=p&dgFm|r ze1sq4;MbOMWg{YDEDSu&b;}}y-8BqnrYFAwf#^_kf0o}p&10FdE7O)+pXtU&KX+wT zW^?D_>&tLr2G(n*U?QGEg7xQ>+ZINe=^W?Phj5f}-L(Dy>xMG@i14-8k2jSeBmx*V zu(1pw<>1B=(q4v;$bc0I*;Iy*2w+Ia<}!qogBwf8IeI!M;dn$6fPa0qC!a9_8XAHP z8MuO7=awO^w6Y$qHgLRsnDY(NgW$u=8#5hU zo8Womx9hb_uY6d&!35xc0+AIk%^I8+9(9F22#mH{kBsz;ZOs&6fczN8{W=8NhNh&KoWRSdPYd zyUGBTqjBEuGJxf1oVTY8U^yD+@6|G{wQl^(hE2Eb?o94&Wzd!D$^5sMK^Flu=q@UQ zu3UfTzoQJg2%tgt&NArAab^BU8FUdqgKku5?TlI?u_3bqIbCqZ#fOKPbIIXh=3c6z zuJZ&o>s&7S#BN-sw80M7LH(Uw4OovD$`EVL4i<9Re!MOmUJ-UZfoL$l zJ(IgaX|_c`VE$GE6rIg=$_~dm`M~>?hRE@dE3kIz!3GDu)Xuq7gI{I(9RZiNi8^Tf zU24qkTCmL`JGzm5me#@IF3Z*G4Cz$Z`=CdDR9l0zp&z5*OBMu-t|g* zKx2SqPFc~zPsZnhxoTxcKeiaUTd?iDB2&n8Vte}rr58_QYKIJnHn>meDYq0>%do)Z zZ!~8Jr4Z41Rl~j8aIq9lml@F;L;6idWDZe7svF+itn}1%^_@s32p;m(^%Va7(iiIC~KP3euONUcaTgdc~XWsuv~UAG%T zjpB%iirQ1Q1heOeV9{_(Cc`w(k@m+F?U3C@_plNh8C99+xp>?P<`)I`sg6i zt4P!+$2m;|4}1H5b$qGT(q_>$?d-z#bzwMvmyyCyt;2|JewEoM+HZs;EDj@4i4CCd zR*|!Y{NBM%?U>(Vl!88fcBnJkr8j|BbQC)1rEc1tz4y=%ZG)Nnl=j@m;DG53_ItYm zeD{|DEjg}g4=MYAnjw55*6sZr-FY%;B_c2y4@77R%T{;vZ*T6%<@OTjgGNP*wZ)>q z_lFg1F$Z!bH9n+@$8jOfw`6izqI=K`S`i(HX&>HJ$aQoIQ6E;vj;A)H<|AebC|xk* zvKVjK3+J-rqe`#Rj5KN?&iCvoWHN*3^0>piP>dfk<~GXyG4+aEeb}fNYCP6`S~eBIJ?+0m@njpJ2{VYa~XSU*e6*t zJTUZWrFU*7YFK&~ZTYdo^mNXi&y15h^fZvW&qk_ip`=d|74*-IlT1KFCG+zU6yMwfx|#7-1EiAm~#}Gamgn~fPaSkec?J!g>-t)vn?dFHKh3!5$QM&{x z*Y4L3({AIQZ%ouKR@q^@-<$|&54K5yK7Q*kZTWk?ZS-v%+ag%LGZ9SZP}tH_hiR#4 z&(mhijn$OxhNAJKX`&+@T!8qlaTiHfpbMqYMML&XWU4B)2V%AZX3*4pFM{?Epkf@p zA2Gm(fE{bWexMeF^UEQsjk7;Lj2P~cdifna+hsc}=*Y8X2{LZX1X2+DSS0Ki$P{`y zgG$duRIU{L?vA1LJ=>tW`L@9T`bUvTxfGhjNE2(b-96X`3u^p$BJy$Sr_am-$e$Qz zaXk6va6JITgRvneJGbfiCf}fEpJtQ(*>~1A%B~_GCJT3mM(Ve>d(d8N^>Rt?M4_Si-i_Eh=P(ejRbS0+60O z0Ww{`F;nhqbx(e4BqPF=NOX(lcgUpQnU+iEReiDR_eyV5lq44c{unV~8_`vi1#S(UHFdmYEcDipP-+ z*9)0-vM15DeLIBiC8NWogT!lKP1$UJrekmg&a^uV{d+fMi`xi)jW{5|sOJOhe>0{n zTw8>ZU|}&kg#8br-VwG(qDAHxYy78SQQ4(vi1+UX%Jj+vy5B`y|1eNx*UTZVe;O@_ zj-%ep3PD~rmPCV$-vbN*|EnBeWOpwF{O@vrk$t-m@PEnyMt0;vz*p3?qMU}g|0*4R znGE@7%;0lIEDryxWrm-XM7Rzfe)vP!QCsgVMaDc5jSPQS<6>KDNZH{Jp)N5{Wrsh6 zy3|0G9sUsNGJE`9rrhF)=A|fH+RpkI9A`$|= zs~liNL_)x;?TCnkx!2g!i-NPGBi{_$fRWC@!e49aU6j(%;I^IK4r&@M6taUN7L*{J zZ0)+Pd^K33Lsq-qehphE8bc^LH<-)2V<;TLacw@@*gjit<&J^FLN3#h&qN__H1bdi z8PYDDeYb(>%4{3%ZjisTXeYs#z^CwUIy_9%&4-6+e$U}yR@`!Un3h`)53~BV!^5n- z{qQg=?=TWshCjFriuq!|>}tN())RRdKrotD6U1J;&(>?~GGN-1@e8GR@3i&CZnQ!; zO<|PQp7(xRU!^Mx!CPU)`)Ihv6`dUKGBrbdhra6<@kjRCdP{%8HhCqC`(n}N?zZ(6 z?Pw*jXq2`Ut>@fh>&?Tm<(pd9`S%_Q!KQWoeTOXfoA0+1d76U{*iB+5q78*SI3&j+ zEO@}KdM9+LBiG$&&2urI;ur<|9l|F5=8bE$CGP6U7i8X;jZ=Z_F#NQx*}HL(6t@V5 F{tq^2XvhEn diff --git a/dist/core/core.untouched.wast b/dist/core/core.untouched.wast index fef64555..b4e8f72a 100644 --- a/dist/core/core.untouched.wast +++ b/dist/core/core.untouched.wast @@ -15,7 +15,6 @@ (type $iiiiiiiv (func (param i32 i32 i32 i32 i32 i32 i32))) (type $iiiii (func (param i32 i32 i32 i32) (result i32))) (type $iiiiiiiiv (func (param i32 i32 i32 i32 i32 i32 i32 i32))) - (import "env" "hexLog" (func $core/helpers/index/env.hexLog (param i32 i32 i32 i32 i32 i32))) (global $core/constants/WASMBOY_MEMORY_LOCATION i32 (i32.const 0)) (global $core/constants/WASMBOY_MEMORY_SIZE i32 (i32.const 9109504)) (global $core/constants/WASMBOY_WASM_PAGES i32 (i32.const 139)) @@ -254,9 +253,9 @@ (global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue (mut i32) (i32.const 0)) (global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch (mut i32) (i32.const 0)) (global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay (mut i32) (i32.const 0)) - (global $~argc (mut i32) (i32.const 0)) (global $core/sound/channel1/Channel1.dutyCycle (mut i32) (i32.const 0)) (global $core/sound/channel2/Channel2.dutyCycle (mut i32) (i32.const 0)) + (global $~argc (mut i32) (i32.const 0)) (global $core/legacy/wasmMemorySize i32 (i32.const 9109504)) (global $core/legacy/wasmBoyInternalStateLocation i32 (i32.const 1024)) (global $core/legacy/wasmBoyInternalStateSize i32 (i32.const 1024)) @@ -358,7 +357,7 @@ (export "gameBytesLocation" (global $core/legacy/gameBytesLocation)) (export "gameRamBanksLocation" (global $core/legacy/gameRamBanksLocation)) (start $start) - (func $core/memory/banking/getRomBankAddress (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/banking/getRomBankAddress (; 0 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/memory/banking.ts:103:2 @@ -403,7 +402,7 @@ ) ) ) - (func $core/memory/banking/getRamBankAddress (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/banking/getRamBankAddress (; 1 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/memory/banking.ts:114:93 (i32.add ;;@ core/memory/banking.ts:114:15 @@ -420,7 +419,7 @@ ) ) ) - (func $core/memory/memoryMap/getWasmBoyOffsetFromGameBoyOffset (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/memoryMap/getWasmBoyOffsetFromGameBoyOffset (; 2 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (block $case14|0 @@ -590,7 +589,7 @@ (i32.const -6144) ) ) - (func $core/memory/load/eightBitLoadFromGBMemory (; 4 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/eightBitLoadFromGBMemory (; 3 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/memory/load.ts:7:71 (i32.load8_u ;;@ core/memory/load.ts:7:23 @@ -599,190 +598,190 @@ ) ) ) - (func $core/cpu/cpu/initializeCpu (; 5 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:159:2 + (func $core/cpu/cpu/initializeCpu (; 4 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:157:2 (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed - ;;@ core/cpu/cpu.ts:159:23 + ;;@ core/cpu/cpu.ts:157:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:160:2 + ;;@ core/cpu/cpu.ts:158:2 (set_global $core/cpu/cpu/Cpu.registerA + ;;@ core/cpu/cpu.ts:158:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:159:2 + (set_global $core/cpu/cpu/Cpu.registerB + ;;@ core/cpu/cpu.ts:159:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:160:2 + (set_global $core/cpu/cpu/Cpu.registerC ;;@ core/cpu/cpu.ts:160:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:161:2 - (set_global $core/cpu/cpu/Cpu.registerB + (set_global $core/cpu/cpu/Cpu.registerD ;;@ core/cpu/cpu.ts:161:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:162:2 - (set_global $core/cpu/cpu/Cpu.registerC + (set_global $core/cpu/cpu/Cpu.registerE ;;@ core/cpu/cpu.ts:162:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:163:2 - (set_global $core/cpu/cpu/Cpu.registerD + (set_global $core/cpu/cpu/Cpu.registerH ;;@ core/cpu/cpu.ts:163:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:164:2 - (set_global $core/cpu/cpu/Cpu.registerE + (set_global $core/cpu/cpu/Cpu.registerL ;;@ core/cpu/cpu.ts:164:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:165:2 - (set_global $core/cpu/cpu/Cpu.registerH + (set_global $core/cpu/cpu/Cpu.registerF ;;@ core/cpu/cpu.ts:165:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:166:2 - (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:166:18 - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:167:2 - (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:167:18 - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:168:2 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:168:21 + ;;@ core/cpu/cpu.ts:166:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:169:2 + ;;@ core/cpu/cpu.ts:167:2 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:169:23 + ;;@ core/cpu/cpu.ts:167:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:170:2 + ;;@ core/cpu/cpu.ts:168:2 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:170:22 + ;;@ core/cpu/cpu.ts:168:22 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:171:2 + ;;@ core/cpu/cpu.ts:169:2 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:171:21 + ;;@ core/cpu/cpu.ts:169:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:172:2 + ;;@ core/cpu/cpu.ts:170:2 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:172:21 + ;;@ core/cpu/cpu.ts:170:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:173:2 + ;;@ core/cpu/cpu.ts:171:2 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:173:18 + ;;@ core/cpu/cpu.ts:171:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:174:2 + ;;@ core/cpu/cpu.ts:172:2 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:174:18 + ;;@ core/cpu/cpu.ts:172:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:176:2 + ;;@ core/cpu/cpu.ts:174:2 (if - ;;@ core/cpu/cpu.ts:176:6 + ;;@ core/cpu/cpu.ts:174:6 (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/cpu/cpu.ts:176:22 + ;;@ core/cpu/cpu.ts:174:22 (block - ;;@ core/cpu/cpu.ts:178:4 + ;;@ core/cpu/cpu.ts:176:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:178:20 + ;;@ core/cpu/cpu.ts:176:20 (i32.const 17) ) - ;;@ core/cpu/cpu.ts:179:4 + ;;@ core/cpu/cpu.ts:177:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:179:20 + ;;@ core/cpu/cpu.ts:177:20 (i32.const 128) ) - ;;@ core/cpu/cpu.ts:180:4 + ;;@ core/cpu/cpu.ts:178:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:180:20 + ;;@ core/cpu/cpu.ts:178:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:181:4 + ;;@ core/cpu/cpu.ts:179:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:181:20 + ;;@ core/cpu/cpu.ts:179:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:182:4 + ;;@ core/cpu/cpu.ts:180:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:182:20 + ;;@ core/cpu/cpu.ts:180:20 (i32.const 255) ) - ;;@ core/cpu/cpu.ts:183:4 + ;;@ core/cpu/cpu.ts:181:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:183:20 + ;;@ core/cpu/cpu.ts:181:20 (i32.const 86) ) - ;;@ core/cpu/cpu.ts:184:4 + ;;@ core/cpu/cpu.ts:182:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:184:20 + ;;@ core/cpu/cpu.ts:182:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:185:4 + ;;@ core/cpu/cpu.ts:183:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:185:20 + ;;@ core/cpu/cpu.ts:183:20 (i32.const 13) ) ) - ;;@ core/cpu/cpu.ts:190:9 + ;;@ core/cpu/cpu.ts:188:9 (block - ;;@ core/cpu/cpu.ts:192:4 + ;;@ core/cpu/cpu.ts:190:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:192:20 + ;;@ core/cpu/cpu.ts:190:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:193:4 + ;;@ core/cpu/cpu.ts:191:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:193:20 + ;;@ core/cpu/cpu.ts:191:20 (i32.const 176) ) - ;;@ core/cpu/cpu.ts:194:4 + ;;@ core/cpu/cpu.ts:192:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:194:20 + ;;@ core/cpu/cpu.ts:192:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:195:4 + ;;@ core/cpu/cpu.ts:193:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:195:20 + ;;@ core/cpu/cpu.ts:193:20 (i32.const 19) ) - ;;@ core/cpu/cpu.ts:196:4 + ;;@ core/cpu/cpu.ts:194:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:196:20 + ;;@ core/cpu/cpu.ts:194:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:197:4 + ;;@ core/cpu/cpu.ts:195:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:197:20 + ;;@ core/cpu/cpu.ts:195:20 (i32.const 216) ) - ;;@ core/cpu/cpu.ts:198:4 + ;;@ core/cpu/cpu.ts:196:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:198:20 + ;;@ core/cpu/cpu.ts:196:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:199:4 + ;;@ core/cpu/cpu.ts:197:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:199:20 + ;;@ core/cpu/cpu.ts:197:20 (i32.const 77) ) ) ) - ;;@ core/cpu/cpu.ts:188:4 + ;;@ core/cpu/cpu.ts:186:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:188:25 + ;;@ core/cpu/cpu.ts:186:25 (i32.const 256) ) - ;;@ core/cpu/cpu.ts:189:4 + ;;@ core/cpu/cpu.ts:187:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:189:23 + ;;@ core/cpu/cpu.ts:187:23 (i32.const 65534) ) ) - (func $core/memory/memory/initializeCartridge (; 6 ;) (; has Stack IR ;) (type $v) + (func $core/memory/memory/initializeCartridge (; 5 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) ;;@ core/memory/memory.ts:135:2 @@ -964,7 +963,7 @@ (i32.const 0) ) ) - (func $core/memory/store/eightBitStoreIntoGBMemory (; 7 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/eightBitStoreIntoGBMemory (; 6 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/memory/store.ts:7:2 (i32.store8 ;;@ core/memory/store.ts:7:12 @@ -974,7 +973,7 @@ (get_local $1) ) ) - (func $core/memory/dma/initializeDma (; 8 ;) (; has Stack IR ;) (type $v) + (func $core/memory/dma/initializeDma (; 7 ;) (; has Stack IR ;) (type $v) ;;@ core/memory/dma.ts:10:4 (call $core/memory/store/eightBitStoreIntoGBMemory ;;@ core/memory/dma.ts:10:30 @@ -1011,149 +1010,149 @@ (i32.const 255) ) ) - (func $core/graphics/graphics/initializeGraphics (; 9 ;) (; has Stack IR ;) (type $v) - ;;@ core/graphics/graphics.ts:146:2 + (func $core/graphics/graphics/initializeGraphics (; 8 ;) (; has Stack IR ;) (type $v) + ;;@ core/graphics/graphics.ts:144:2 (set_global $core/graphics/graphics/Graphics.currentCycles - ;;@ core/graphics/graphics.ts:146:27 + ;;@ core/graphics/graphics.ts:144:27 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:147:2 + ;;@ core/graphics/graphics.ts:145:2 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter - ;;@ core/graphics/graphics.ts:147:34 + ;;@ core/graphics/graphics.ts:145:34 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:148:2 + ;;@ core/graphics/graphics.ts:146:2 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/graphics/graphics.ts:148:30 + ;;@ core/graphics/graphics.ts:146:30 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:149:2 + ;;@ core/graphics/graphics.ts:147:2 (set_global $core/graphics/graphics/Graphics.scrollX - ;;@ core/graphics/graphics.ts:149:21 + ;;@ core/graphics/graphics.ts:147:21 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:150:2 + ;;@ core/graphics/graphics.ts:148:2 (set_global $core/graphics/graphics/Graphics.scrollY - ;;@ core/graphics/graphics.ts:150:21 + ;;@ core/graphics/graphics.ts:148:21 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:151:2 + ;;@ core/graphics/graphics.ts:149:2 (set_global $core/graphics/graphics/Graphics.windowX - ;;@ core/graphics/graphics.ts:151:21 + ;;@ core/graphics/graphics.ts:149:21 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:152:2 + ;;@ core/graphics/graphics.ts:150:2 (set_global $core/graphics/graphics/Graphics.windowY - ;;@ core/graphics/graphics.ts:152:21 + ;;@ core/graphics/graphics.ts:150:21 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:154:2 + ;;@ core/graphics/graphics.ts:152:2 (if - ;;@ core/graphics/graphics.ts:154:6 + ;;@ core/graphics/graphics.ts:152:6 (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/graphics/graphics.ts:154:22 + ;;@ core/graphics/graphics.ts:152:22 (block - ;;@ core/graphics/graphics.ts:156:4 + ;;@ core/graphics/graphics.ts:154:4 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/graphics/graphics.ts:156:32 + ;;@ core/graphics/graphics.ts:154:32 (i32.const 144) ) - ;;@ core/graphics/graphics.ts:157:4 + ;;@ core/graphics/graphics.ts:155:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:157:30 + ;;@ core/graphics/graphics.ts:155:30 (i32.const 65344) - ;;@ core/graphics/graphics.ts:157:38 + ;;@ core/graphics/graphics.ts:155:38 (i32.const 145) ) - ;;@ core/graphics/graphics.ts:158:4 + ;;@ core/graphics/graphics.ts:156:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:158:30 + ;;@ core/graphics/graphics.ts:156:30 (i32.const 65345) - ;;@ core/graphics/graphics.ts:158:38 + ;;@ core/graphics/graphics.ts:156:38 (i32.const 129) ) - ;;@ core/graphics/graphics.ts:160:4 + ;;@ core/graphics/graphics.ts:158:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:160:30 + ;;@ core/graphics/graphics.ts:158:30 (i32.const 65348) - ;;@ core/graphics/graphics.ts:160:38 + ;;@ core/graphics/graphics.ts:158:38 (i32.const 144) ) - ;;@ core/graphics/graphics.ts:162:4 + ;;@ core/graphics/graphics.ts:160:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:162:30 + ;;@ core/graphics/graphics.ts:160:30 (i32.const 65351) - ;;@ core/graphics/graphics.ts:162:38 + ;;@ core/graphics/graphics.ts:160:38 (i32.const 252) ) ) - ;;@ core/graphics/graphics.ts:168:9 + ;;@ core/graphics/graphics.ts:166:9 (block - ;;@ core/graphics/graphics.ts:169:4 + ;;@ core/graphics/graphics.ts:167:4 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/graphics/graphics.ts:169:32 + ;;@ core/graphics/graphics.ts:167:32 (i32.const 144) ) - ;;@ core/graphics/graphics.ts:170:4 + ;;@ core/graphics/graphics.ts:168:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:170:30 + ;;@ core/graphics/graphics.ts:168:30 (i32.const 65344) - ;;@ core/graphics/graphics.ts:170:38 + ;;@ core/graphics/graphics.ts:168:38 (i32.const 145) ) - ;;@ core/graphics/graphics.ts:171:4 + ;;@ core/graphics/graphics.ts:169:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:171:30 + ;;@ core/graphics/graphics.ts:169:30 (i32.const 65345) - ;;@ core/graphics/graphics.ts:171:38 + ;;@ core/graphics/graphics.ts:169:38 (i32.const 133) ) - ;;@ core/graphics/graphics.ts:173:4 + ;;@ core/graphics/graphics.ts:171:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:173:30 + ;;@ core/graphics/graphics.ts:171:30 (i32.const 65350) - ;;@ core/graphics/graphics.ts:173:38 + ;;@ core/graphics/graphics.ts:171:38 (i32.const 255) ) - ;;@ core/graphics/graphics.ts:174:4 + ;;@ core/graphics/graphics.ts:172:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:174:30 + ;;@ core/graphics/graphics.ts:172:30 (i32.const 65351) - ;;@ core/graphics/graphics.ts:174:38 + ;;@ core/graphics/graphics.ts:172:38 (i32.const 252) ) - ;;@ core/graphics/graphics.ts:175:4 + ;;@ core/graphics/graphics.ts:173:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:175:30 + ;;@ core/graphics/graphics.ts:173:30 (i32.const 65352) - ;;@ core/graphics/graphics.ts:175:38 + ;;@ core/graphics/graphics.ts:173:38 (i32.const 255) ) - ;;@ core/graphics/graphics.ts:176:4 + ;;@ core/graphics/graphics.ts:174:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:176:30 + ;;@ core/graphics/graphics.ts:174:30 (i32.const 65353) - ;;@ core/graphics/graphics.ts:176:38 + ;;@ core/graphics/graphics.ts:174:38 (i32.const 255) ) ) ) - ;;@ core/graphics/graphics.ts:166:4 + ;;@ core/graphics/graphics.ts:164:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:166:30 + ;;@ core/graphics/graphics.ts:164:30 (i32.const 65359) - ;;@ core/graphics/graphics.ts:166:38 + ;;@ core/graphics/graphics.ts:164:38 (i32.const 0) ) - ;;@ core/graphics/graphics.ts:167:4 + ;;@ core/graphics/graphics.ts:165:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/graphics/graphics.ts:167:30 + ;;@ core/graphics/graphics.ts:165:30 (i32.const 65392) - ;;@ core/graphics/graphics.ts:167:38 + ;;@ core/graphics/graphics.ts:165:38 (i32.const 1) ) ) - (func $core/graphics/palette/initializePalette (; 10 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/palette/initializePalette (; 9 ;) (; has Stack IR ;) (type $v) ;;@ core/graphics/palette.ts:16:2 (if ;;@ core/graphics/palette.ts:16:6 @@ -1222,7 +1221,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.initialize (; 11 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.initialize (; 10 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:146:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65296) @@ -1254,7 +1253,7 @@ (i32.const 191) ) ) - (func $core/sound/channel2/Channel2.initialize (; 12 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.initialize (; 11 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:122:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65301) @@ -1286,7 +1285,7 @@ (i32.const 184) ) ) - (func $core/sound/channel3/Channel3.initialize (; 13 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.initialize (; 12 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:112:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65306) @@ -1323,7 +1322,7 @@ (i32.const 1) ) ) - (func $core/sound/channel4/Channel4.initialize (; 14 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.initialize (; 13 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:139:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65311) @@ -1355,7 +1354,7 @@ (i32.const 191) ) ) - (func $core/sound/accumulator/initializeSoundAccumulator (; 15 ;) (; has Stack IR ;) (type $v) + (func $core/sound/accumulator/initializeSoundAccumulator (; 14 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/accumulator.ts:28:2 (set_global $core/sound/accumulator/SoundAccumulator.channel1Sample ;;@ core/sound/accumulator.ts:28:36 @@ -1422,7 +1421,7 @@ (i32.const 0) ) ) - (func $core/sound/sound/initializeSound (; 16 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/initializeSound (; 15 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:145:2 (set_global $core/sound/sound/Sound.currentCycles ;;@ core/sound/sound.ts:145:24 @@ -1532,7 +1531,7 @@ ;;@ core/sound/sound.ts:173:2 (call $core/sound/accumulator/initializeSoundAccumulator) ) - (func $core/timers/timers/initializeTimers (; 17 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/initializeTimers (; 16 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:161:2 (set_global $core/timers/timers/Timers.currentCycles ;;@ core/timers/timers.ts:161:25 @@ -1621,7 +1620,7 @@ (i32.const 248) ) ) - (func $core/core/initialize (; 18 ;) (; has Stack IR ;) (type $v) + (func $core/core/initialize (; 17 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) ;;@ core/core.ts:123:6 @@ -1800,7 +1799,7 @@ (i32.const 0) ) ) - (func $core/core/config (; 19 ;) (; has Stack IR ;) (type $iiiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) + (func $core/core/config (; 18 ;) (; has Stack IR ;) (type $iiiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) ;;@ core/core.ts:56:2 (if ;;@ core/core.ts:56:6 @@ -1975,7 +1974,7 @@ ;;@ core/core.ts:110:2 (call $core/core/initialize) ) - (func $core/cpu/cpu/Cpu.MAX_CYCLES_PER_FRAME (; 20 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/cpu/Cpu.MAX_CYCLES_PER_FRAME (; 19 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/cpu.ts:52:4 (if ;;@ core/cpu/cpu.ts:52:8 @@ -1986,44 +1985,44 @@ ) (i32.const 70224) ) - (func $core/portable/portable/u16Portable (; 21 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/portable/portable/u16Portable (; 20 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/portable/portable.ts:12:17 (i32.and (get_local $0) (i32.const 65535) ) ) - (func $core/graphics/graphics/Graphics.MAX_CYCLES_PER_SCANLINE (; 22 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/graphics/graphics/Graphics.MAX_CYCLES_PER_SCANLINE (; 21 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/graphics/graphics.ts:40:4 (if ;;@ core/graphics/graphics.ts:40:8 (get_global $core/cpu/cpu/Cpu.GBCDoubleSpeed) ;;@ core/graphics/graphics.ts:40:28 (block - ;;@ core/graphics/graphics.ts:42:6 + ;;@ core/graphics/graphics.ts:41:6 (if - ;;@ core/graphics/graphics.ts:42:10 + ;;@ core/graphics/graphics.ts:41:10 (i32.eq (get_global $core/graphics/graphics/Graphics.scanlineRegister) - ;;@ core/graphics/graphics.ts:42:40 + ;;@ core/graphics/graphics.ts:41:40 (i32.const 153) ) (return (i32.const 8) ) ) - ;;@ core/graphics/graphics.ts:46:13 + ;;@ core/graphics/graphics.ts:45:13 (return (i32.const 912) ) ) ) - ;;@ core/graphics/graphics.ts:49:4 + ;;@ core/graphics/graphics.ts:48:4 (if - ;;@ core/graphics/graphics.ts:49:8 + ;;@ core/graphics/graphics.ts:48:8 (i32.eq (get_global $core/graphics/graphics/Graphics.scanlineRegister) - ;;@ core/graphics/graphics.ts:49:38 + ;;@ core/graphics/graphics.ts:48:38 (i32.const 153) ) (return @@ -2032,34 +2031,34 @@ ) (i32.const 456) ) - (func $core/graphics/graphics/Graphics.batchProcessCycles (; 23 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/graphics/graphics/Graphics.batchProcessCycles (; 22 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/graphics/graphics.ts:30:44 (call $core/graphics/graphics/Graphics.MAX_CYCLES_PER_SCANLINE) ) - (func $core/graphics/graphics/loadFromVramBank (; 24 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - ;;@ core/graphics/graphics.ts:315:32 + (func $core/graphics/graphics/loadFromVramBank (; 23 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + ;;@ core/graphics/graphics.ts:313:32 (i32.load8_u - ;;@ core/graphics/graphics.ts:314:28 + ;;@ core/graphics/graphics.ts:312:28 (i32.add (i32.add (get_local $0) (i32.const -30720) ) - ;;@ core/graphics/graphics.ts:314:105 + ;;@ core/graphics/graphics.ts:312:105 (i32.shl - ;;@ core/graphics/graphics.ts:314:114 + ;;@ core/graphics/graphics.ts:312:114 (i32.and (get_local $1) - ;;@ core/graphics/graphics.ts:314:128 + ;;@ core/graphics/graphics.ts:312:128 (i32.const 1) ) - ;;@ core/graphics/graphics.ts:314:105 + ;;@ core/graphics/graphics.ts:312:105 (i32.const 13) ) ) ) ) - (func $core/helpers/index/checkBitOnByte (; 25 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/helpers/index/checkBitOnByte (; 24 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/helpers/index.ts:58:40 (i32.ne ;;@ core/helpers/index.ts:58:9 @@ -2076,30 +2075,30 @@ (i32.const 0) ) ) - (func $core/graphics/graphics/getRgbPixelStart (; 26 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) - ;;@ core/graphics/graphics.ts:301:25 + (func $core/graphics/graphics/getRgbPixelStart (; 25 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + ;;@ core/graphics/graphics.ts:299:25 (i32.mul - ;;@ core/graphics/graphics.ts:301:9 + ;;@ core/graphics/graphics.ts:299:9 (i32.add - ;;@ core/graphics/graphics.ts:301:10 + ;;@ core/graphics/graphics.ts:299:10 (i32.mul (get_local $1) - ;;@ core/graphics/graphics.ts:301:14 + ;;@ core/graphics/graphics.ts:299:14 (i32.const 160) ) (get_local $0) ) - ;;@ core/graphics/graphics.ts:301:25 + ;;@ core/graphics/graphics.ts:299:25 (i32.const 3) ) ) - (func $core/graphics/graphics/setPixelOnFrame (; 27 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ;;@ core/graphics/graphics.ts:309:2 + (func $core/graphics/graphics/setPixelOnFrame (; 26 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + ;;@ core/graphics/graphics.ts:307:2 (i32.store8 - ;;@ core/graphics/graphics.ts:309:12 + ;;@ core/graphics/graphics.ts:307:12 (i32.add (i32.add - ;;@ core/graphics/graphics.ts:309:29 + ;;@ core/graphics/graphics.ts:307:29 (call $core/graphics/graphics/getRgbPixelStart (get_local $0) (get_local $1) @@ -2111,7 +2110,7 @@ (get_local $3) ) ) - (func $core/graphics/priority/getPixelStart (; 28 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/graphics/priority/getPixelStart (; 27 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/graphics/priority.ts:31:19 (i32.add ;;@ core/graphics/priority.ts:31:9 @@ -2123,7 +2122,7 @@ (get_local $0) ) ) - (func $core/graphics/priority/getPriorityforPixel (; 29 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/graphics/priority/getPriorityforPixel (; 28 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/graphics/priority.ts:18:64 (i32.load8_u ;;@ core/graphics/priority.ts:18:18 @@ -2137,7 +2136,7 @@ ) ) ) - (func $core/helpers/index/resetBitOnByte (; 30 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/helpers/index/resetBitOnByte (; 29 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/helpers/index.ts:52:37 (i32.and (get_local $1) @@ -2153,7 +2152,7 @@ ) ) ) - (func $core/helpers/index/setBitOnByte (; 31 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/helpers/index/setBitOnByte (; 30 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/helpers/index.ts:48:36 (i32.or (get_local $1) @@ -2165,7 +2164,7 @@ ) ) ) - (func $core/graphics/priority/addPriorityforPixel (; 32 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $core/graphics/priority/addPriorityforPixel (; 31 ;) (; has Stack IR ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) ;;@ core/graphics/priority.ts:9:2 (set_local $4 @@ -2206,7 +2205,7 @@ (get_local $4) ) ) - (func $core/graphics/backgroundWindow/drawLineOfTileFromTileCache (; 33 ;) (; has Stack IR ;) (type $iiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i32) + (func $core/graphics/backgroundWindow/drawLineOfTileFromTileCache (; 32 ;) (; has Stack IR ;) (type $iiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i32) @@ -2524,7 +2523,7 @@ ) (get_local $7) ) - (func $core/graphics/tiles/getTileDataAddress (; 34 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/graphics/tiles/getTileDataAddress (; 33 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) ;;@ core/graphics/tiles.ts:148:2 (if @@ -2588,7 +2587,7 @@ ) ) ) - (func $core/graphics/palette/loadPaletteByteFromWasmMemory (; 35 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/graphics/palette/loadPaletteByteFromWasmMemory (; 34 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) ;;@ core/graphics/palette.ts:140:2 (set_local $2 @@ -2623,7 +2622,7 @@ ) ) ) - (func $core/helpers/index/concatenateBytes (; 36 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/helpers/index/concatenateBytes (; 35 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/helpers/index.ts:9:51 (i32.or ;;@ core/helpers/index.ts:9:9 @@ -2645,7 +2644,7 @@ ) ) ) - (func $core/graphics/palette/getRgbColorFromPalette (; 37 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $core/graphics/palette/getRgbColorFromPalette (; 36 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) ;;@ core/graphics/palette.ts:122:62 (call $core/helpers/index/concatenateBytes @@ -2682,7 +2681,7 @@ ) ) ) - (func $core/graphics/palette/getColorComponentFromRgb (; 38 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/graphics/palette/getColorComponentFromRgb (; 37 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/graphics/palette.ts:134:22 (i32.shl ;;@ core/graphics/palette.ts:130:24 @@ -2708,7 +2707,7 @@ (i32.const 3) ) ) - (func $core/graphics/palette/getMonochromeColorFromPalette (; 39 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $core/graphics/palette/getMonochromeColorFromPalette (; 38 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) ;;@ core/graphics/palette.ts:43:2 (if ;;@ core/graphics/palette.ts:43:6 @@ -2790,7 +2789,7 @@ ) (get_local $1) ) - (func $core/graphics/tiles/getTilePixelStart (; 40 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $core/graphics/tiles/getTilePixelStart (; 39 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) ;;@ core/graphics/tiles.ts:134:22 (i32.mul ;;@ core/graphics/tiles.ts:131:24 @@ -2805,7 +2804,7 @@ (i32.const 3) ) ) - (func $core/graphics/tiles/drawPixelsFromLineOfTile (; 41 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) + (func $core/graphics/tiles/drawPixelsFromLineOfTile (; 40 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) (local $13 i32) (local $14 i32) (local $15 i32) @@ -3125,7 +3124,7 @@ ) (get_local $13) ) - (func $core/graphics/backgroundWindow/drawLineOfTileFromTileId (; 42 ;) (; has Stack IR ;) (type $iiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i32) + (func $core/graphics/backgroundWindow/drawLineOfTileFromTileId (; 41 ;) (; has Stack IR ;) (type $iiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i32) @@ -3263,7 +3262,7 @@ (get_local $2) ) ) - (func $core/graphics/backgroundWindow/drawColorPixelFromTileId (; 43 ;) (; has Stack IR ;) (type $iiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) + (func $core/graphics/backgroundWindow/drawColorPixelFromTileId (; 42 ;) (; has Stack IR ;) (type $iiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) ;;@ core/graphics/backgroundWindow.ts:269:2 (set_local $6 ;;@ core/graphics/backgroundWindow.ts:269:29 @@ -3498,7 +3497,7 @@ ) ) ) - (func $core/graphics/backgroundWindow/drawMonochromePixelFromTileId (; 44 ;) (; has Stack IR ;) (type $iiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (func $core/graphics/backgroundWindow/drawMonochromePixelFromTileId (; 43 ;) (; has Stack IR ;) (type $iiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) ;;@ core/graphics/backgroundWindow.ts:205:2 (set_local $5 ;;@ core/graphics/backgroundWindow.ts:205:40 @@ -3629,7 +3628,7 @@ (i32.const 0) ) ) - (func $core/graphics/backgroundWindow/drawBackgroundWindowScanline (; 45 ;) (; has Stack IR ;) (type $iiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (func $core/graphics/backgroundWindow/drawBackgroundWindowScanline (; 44 ;) (; has Stack IR ;) (type $iiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -3849,7 +3848,7 @@ ) ) ) - (func $core/graphics/backgroundWindow/renderBackground (; 46 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/graphics/backgroundWindow/renderBackground (; 45 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) ;;@ core/graphics/backgroundWindow.ts:23:2 @@ -3893,7 +3892,7 @@ (get_local $4) ) ) - (func $core/graphics/backgroundWindow/renderWindow (; 47 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/graphics/backgroundWindow/renderWindow (; 46 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3946,7 +3945,7 @@ (get_local $5) ) ) - (func $core/graphics/sprites/renderSprites (; 48 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/graphics/sprites/renderSprites (; 47 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4632,49 +4631,49 @@ ) ) ) - (func $core/graphics/graphics/_drawScanline (; 49 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/graphics/graphics/_drawScanline (; 48 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) - ;;@ core/graphics/graphics.ts:244:2 + ;;@ core/graphics/graphics.ts:242:2 (set_local $2 (i32.const 34816) ) - ;;@ core/graphics/graphics.ts:245:2 + ;;@ core/graphics/graphics.ts:243:2 (if - ;;@ core/graphics/graphics.ts:245:6 + ;;@ core/graphics/graphics.ts:243:6 (get_global $core/graphics/lcd/Lcd.bgWindowTileDataSelect) - ;;@ core/graphics/graphics.ts:245:34 + ;;@ core/graphics/graphics.ts:243:34 (set_local $2 (i32.const 32768) ) ) - ;;@ core/graphics/graphics.ts:256:2 + ;;@ core/graphics/graphics.ts:254:2 (if (tee_local $1 - ;;@ core/graphics/graphics.ts:256:6 + ;;@ core/graphics/graphics.ts:254:6 (if (result i32) (get_global $core/cpu/cpu/Cpu.GBCEnabled) (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/graphics/graphics.ts:256:24 + ;;@ core/graphics/graphics.ts:254:24 (get_global $core/graphics/lcd/Lcd.bgDisplayEnabled) ) ) - ;;@ core/graphics/graphics.ts:256:46 + ;;@ core/graphics/graphics.ts:254:46 (block - ;;@ core/graphics/graphics.ts:258:4 + ;;@ core/graphics/graphics.ts:256:4 (set_local $1 (i32.const 38912) ) - ;;@ core/graphics/graphics.ts:259:4 + ;;@ core/graphics/graphics.ts:257:4 (if - ;;@ core/graphics/graphics.ts:259:8 + ;;@ core/graphics/graphics.ts:257:8 (get_global $core/graphics/lcd/Lcd.bgTileMapDisplaySelect) - ;;@ core/graphics/graphics.ts:259:36 + ;;@ core/graphics/graphics.ts:257:36 (set_local $1 (i32.const 39936) ) ) - ;;@ core/graphics/graphics.ts:264:4 + ;;@ core/graphics/graphics.ts:262:4 (call $core/graphics/backgroundWindow/renderBackground (get_local $0) (get_local $2) @@ -4682,26 +4681,26 @@ ) ) ) - ;;@ core/graphics/graphics.ts:269:2 + ;;@ core/graphics/graphics.ts:267:2 (if - ;;@ core/graphics/graphics.ts:269:6 + ;;@ core/graphics/graphics.ts:267:6 (get_global $core/graphics/lcd/Lcd.windowDisplayEnabled) - ;;@ core/graphics/graphics.ts:269:32 + ;;@ core/graphics/graphics.ts:267:32 (block - ;;@ core/graphics/graphics.ts:271:4 + ;;@ core/graphics/graphics.ts:269:4 (set_local $1 (i32.const 38912) ) - ;;@ core/graphics/graphics.ts:272:4 + ;;@ core/graphics/graphics.ts:270:4 (if - ;;@ core/graphics/graphics.ts:272:8 + ;;@ core/graphics/graphics.ts:270:8 (get_global $core/graphics/lcd/Lcd.windowTileMapDisplaySelect) - ;;@ core/graphics/graphics.ts:272:40 + ;;@ core/graphics/graphics.ts:270:40 (set_local $1 (i32.const 39936) ) ) - ;;@ core/graphics/graphics.ts:277:4 + ;;@ core/graphics/graphics.ts:275:4 (call $core/graphics/backgroundWindow/renderWindow (get_local $0) (get_local $2) @@ -4709,40 +4708,40 @@ ) ) ) - ;;@ core/graphics/graphics.ts:280:2 + ;;@ core/graphics/graphics.ts:278:2 (if - ;;@ core/graphics/graphics.ts:280:6 + ;;@ core/graphics/graphics.ts:278:6 (get_global $core/graphics/lcd/Lcd.spriteDisplayEnable) - ;;@ core/graphics/graphics.ts:280:31 + ;;@ core/graphics/graphics.ts:278:31 (call $core/graphics/sprites/renderSprites (get_local $0) - ;;@ core/graphics/graphics.ts:282:36 + ;;@ core/graphics/graphics.ts:280:36 (get_global $core/graphics/lcd/Lcd.tallSpriteSize) ) ) ) - (func $core/graphics/graphics/_renderEntireFrame (; 50 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/graphics/_renderEntireFrame (; 49 ;) (; has Stack IR ;) (type $v) (local $0 i32) - ;;@ core/graphics/graphics.ts:291:2 + ;;@ core/graphics/graphics.ts:289:2 (block $break|0 (loop $repeat|0 (br_if $break|0 - ;;@ core/graphics/graphics.ts:291:22 + ;;@ core/graphics/graphics.ts:289:22 (i32.gt_u (get_local $0) - ;;@ core/graphics/graphics.ts:291:27 + ;;@ core/graphics/graphics.ts:289:27 (i32.const 144) ) ) - ;;@ core/graphics/graphics.ts:292:4 + ;;@ core/graphics/graphics.ts:290:4 (call $core/graphics/graphics/_drawScanline - ;;@ core/graphics/graphics.ts:292:18 + ;;@ core/graphics/graphics.ts:290:18 (i32.and (get_local $0) (i32.const 255) ) ) - ;;@ core/graphics/graphics.ts:291:32 + ;;@ core/graphics/graphics.ts:289:32 (set_local $0 (i32.add (get_local $0) @@ -4753,7 +4752,7 @@ ) ) ) - (func $core/graphics/priority/clearPriorityMap (; 51 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/priority/clearPriorityMap (; 50 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) ;;@ core/graphics/priority.ts:22:2 @@ -4818,7 +4817,7 @@ ) ) ) - (func $core/graphics/tiles/resetTileCache (; 52 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/tiles/resetTileCache (; 51 ;) (; has Stack IR ;) (type $v) ;;@ core/graphics/tiles.ts:21:2 (set_global $core/graphics/tiles/TileCache.tileId ;;@ core/graphics/tiles.ts:21:21 @@ -4830,10 +4829,10 @@ (i32.const -1) ) ) - (func $core/graphics/graphics/Graphics.MIN_CYCLES_SPRITES_LCD_MODE (; 53 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/graphics/graphics.ts:58:4 + (func $core/graphics/graphics/Graphics.MIN_CYCLES_SPRITES_LCD_MODE (; 52 ;) (; has Stack IR ;) (type $i) (result i32) + ;;@ core/graphics/graphics.ts:56:4 (if - ;;@ core/graphics/graphics.ts:58:8 + ;;@ core/graphics/graphics.ts:56:8 (get_global $core/cpu/cpu/Cpu.GBCDoubleSpeed) (return (i32.const 752) @@ -4841,10 +4840,10 @@ ) (i32.const 376) ) - (func $core/graphics/graphics/Graphics.MIN_CYCLES_TRANSFER_DATA_LCD_MODE (; 54 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/graphics/graphics.ts:66:4 + (func $core/graphics/graphics/Graphics.MIN_CYCLES_TRANSFER_DATA_LCD_MODE (; 53 ;) (; has Stack IR ;) (type $i) (result i32) + ;;@ core/graphics/graphics.ts:64:4 (if - ;;@ core/graphics/graphics.ts:66:8 + ;;@ core/graphics/graphics.ts:64:8 (get_global $core/cpu/cpu/Cpu.GBCDoubleSpeed) (return (i32.const 498) @@ -4852,40 +4851,40 @@ ) (i32.const 249) ) - (func $core/interrupts/interrupts/_requestInterrupt (; 55 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/interrupts/interrupts/_requestInterrupt (; 54 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) - ;;@ core/interrupts/interrupts.ts:192:2 + ;;@ core/interrupts/interrupts.ts:190:2 (set_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue - ;;@ core/interrupts/interrupts.ts:190:2 + ;;@ core/interrupts/interrupts.ts:188:2 (tee_local $1 - ;;@ core/interrupts/interrupts.ts:190:21 + ;;@ core/interrupts/interrupts.ts:188:21 (call $core/helpers/index/setBitOnByte (get_local $0) - ;;@ core/interrupts/interrupts.ts:187:25 + ;;@ core/interrupts/interrupts.ts:185:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65295) ) ) ) ) - ;;@ core/interrupts/interrupts.ts:194:2 + ;;@ core/interrupts/interrupts.ts:192:2 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65295) (get_local $1) ) ) - (func $core/interrupts/interrupts/requestLcdInterrupt (; 56 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:213:2 + (func $core/interrupts/interrupts/requestLcdInterrupt (; 55 ;) (; has Stack IR ;) (type $v) + ;;@ core/interrupts/interrupts.ts:211:2 (set_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested - ;;@ core/interrupts/interrupts.ts:213:39 + ;;@ core/interrupts/interrupts.ts:211:39 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:214:2 + ;;@ core/interrupts/interrupts.ts:212:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 1) ) ) - (func $core/sound/sound/Sound.batchProcessCycles (; 57 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/sound/Sound.batchProcessCycles (; 56 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/sound/sound.ts:41:4 (if ;;@ core/sound/sound.ts:41:8 @@ -4896,7 +4895,7 @@ ) (i32.const 87) ) - (func $core/sound/sound/Sound.maxFrameSequenceCycles (; 58 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/sound/Sound.maxFrameSequenceCycles (; 57 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/sound/sound.ts:92:4 (if ;;@ core/sound/sound.ts:92:8 @@ -4907,7 +4906,7 @@ ) (i32.const 8192) ) - (func $core/sound/channel1/Channel1.updateLength (; 59 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.updateLength (; 58 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel1.ts:294:8 (if @@ -4949,7 +4948,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.updateLength (; 60 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.updateLength (; 59 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel2.ts:232:8 (if @@ -4991,7 +4990,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.updateLength (; 61 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.updateLength (; 60 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel3.ts:268:8 (if @@ -5033,7 +5032,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.updateLength (; 62 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.updateLength (; 61 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel4.ts:266:8 (if @@ -5075,7 +5074,7 @@ ) ) ) - (func $core/sound/channel1/getNewFrequencyFromSweep (; 63 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/channel1/getNewFrequencyFromSweep (; 62 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/sound/channel1.ts:375:2 (set_local $0 @@ -5105,7 +5104,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.setFrequency (; 64 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel1/Channel1.setFrequency (; 63 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) ;;@ core/sound/channel1.ts:332:4 @@ -5173,7 +5172,7 @@ ) ) ) - (func $core/sound/channel1/calculateSweepAndCheckOverflow (; 65 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/calculateSweepAndCheckOverflow (; 64 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) ;;@ core/sound/channel1.ts:351:6 @@ -5233,7 +5232,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.updateSweep (; 66 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.updateSweep (; 65 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:278:4 (set_global $core/sound/channel1/Channel1.sweepCounter (i32.sub @@ -5276,7 +5275,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.updateEnvelope (; 67 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.updateEnvelope (; 66 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel1.ts:307:4 (set_global $core/sound/channel1/Channel1.envelopeCounter @@ -5366,7 +5365,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.updateEnvelope (; 68 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.updateEnvelope (; 67 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel2.ts:245:4 (set_global $core/sound/channel2/Channel2.envelopeCounter @@ -5456,7 +5455,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.updateEnvelope (; 69 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.updateEnvelope (; 68 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel4.ts:279:4 (set_global $core/sound/channel4/Channel4.envelopeCounter @@ -5546,7 +5545,7 @@ ) ) ) - (func $core/sound/sound/updateFrameSequencer (; 70 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/sound/updateFrameSequencer (; 69 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/sound/sound.ts:261:2 (set_global $core/sound/sound/Sound.frameSequenceCycleCounter @@ -5681,7 +5680,7 @@ ) (i32.const 0) ) - (func $core/sound/channel1/Channel1.willChannelUpdate (; 71 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel1/Channel1.willChannelUpdate (; 70 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/sound/channel1.ts:264:4 (set_global $core/sound/channel1/Channel1.cycleCounter (i32.add @@ -5707,7 +5706,7 @@ ) (i32.const 1) ) - (func $core/sound/accumulator/didChannelDacChange (; 72 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/accumulator/didChannelDacChange (; 71 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/sound/accumulator.ts:105:2 (block $break|0 @@ -5849,7 +5848,7 @@ ) (i32.const 0) ) - (func $core/sound/channel2/Channel2.willChannelUpdate (; 73 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel2/Channel2.willChannelUpdate (; 72 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/sound/channel2.ts:221:4 (set_global $core/sound/channel2/Channel2.cycleCounter (i32.add @@ -5875,7 +5874,7 @@ ) (i32.const 1) ) - (func $core/sound/channel3/Channel3.willChannelUpdate (; 74 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel3/Channel3.willChannelUpdate (; 73 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/sound/channel3.ts:257:4 (set_global $core/sound/channel3/Channel3.cycleCounter (i32.add @@ -5913,7 +5912,7 @@ ) (i32.const 1) ) - (func $core/sound/channel4/Channel4.willChannelUpdate (; 75 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel4/Channel4.willChannelUpdate (; 74 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/sound/channel4.ts:246:4 (set_global $core/sound/channel4/Channel4.cycleCounter (i32.add @@ -5939,7 +5938,7 @@ ) (i32.const 1) ) - (func $core/sound/channel1/Channel1.resetTimer (; 76 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.resetTimer (; 75 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:162:4 (set_global $core/sound/channel1/Channel1.frequencyTimer ;;@ core/sound/channel1.ts:162:30 @@ -5969,7 +5968,7 @@ ) ) ) - (func $core/sound/duty/isDutyCycleClockPositiveOrNegativeForWaveform (; 77 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/sound/duty/isDutyCycleClockPositiveOrNegativeForWaveform (; 76 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (block $case3|0 (block $case2|0 @@ -6037,7 +6036,7 @@ (i32.const 1) ) ) - (func $core/sound/channel1/Channel1.getSample (; 78 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel1/Channel1.getSample (; 77 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/sound/channel1.ts:172:4 (set_global $core/sound/channel1/Channel1.frequencyTimer @@ -6156,7 +6155,7 @@ (i32.const 15) ) ) - (func $core/sound/channel1/Channel1.getSampleFromCycleCounter (; 79 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/channel1/Channel1.getSampleFromCycleCounter (; 78 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/sound/channel1.ts:155:4 (set_local $0 @@ -6173,7 +6172,7 @@ (get_local $0) ) ) - (func $core/sound/channel2/Channel2.resetTimer (; 80 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.resetTimer (; 79 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:138:4 (set_global $core/sound/channel2/Channel2.frequencyTimer ;;@ core/sound/channel2.ts:138:30 @@ -6203,7 +6202,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.getSample (; 81 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel2/Channel2.getSample (; 80 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/sound/channel2.ts:148:4 (set_global $core/sound/channel2/Channel2.frequencyTimer @@ -6322,7 +6321,7 @@ (i32.const 15) ) ) - (func $core/sound/channel2/Channel2.getSampleFromCycleCounter (; 82 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/channel2/Channel2.getSampleFromCycleCounter (; 81 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/sound/channel2.ts:131:4 (set_local $0 @@ -6339,7 +6338,7 @@ (get_local $0) ) ) - (func $core/sound/channel3/Channel3.resetTimer (; 83 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.resetTimer (; 82 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:131:4 (set_global $core/sound/channel3/Channel3.frequencyTimer ;;@ core/sound/channel3.ts:131:30 @@ -6369,7 +6368,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.getSample (; 84 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel3/Channel3.getSample (; 83 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/sound/channel3.ts:141:4 @@ -6640,7 +6639,7 @@ (i32.const 15) ) ) - (func $core/sound/channel3/Channel3.getSampleFromCycleCounter (; 85 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/channel3/Channel3.getSampleFromCycleCounter (; 84 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/sound/channel3.ts:124:4 (set_local $0 @@ -6657,7 +6656,7 @@ (get_local $0) ) ) - (func $core/sound/channel4/Channel4.getNoiseChannelFrequencyPeriod (; 86 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/channel4/Channel4.getNoiseChannelFrequencyPeriod (; 85 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/sound/channel4.ts:258:4 (set_local $0 @@ -6684,7 +6683,7 @@ ) (get_local $0) ) - (func $core/sound/channel4/Channel4.getSample (; 87 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/channel4/Channel4.getSample (; 86 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/sound/channel4.ts:155:4 (set_global $core/sound/channel4/Channel4.frequencyTimer @@ -6858,7 +6857,7 @@ (i32.const 15) ) ) - (func $core/sound/channel4/Channel4.getSampleFromCycleCounter (; 88 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/channel4/Channel4.getSampleFromCycleCounter (; 87 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/sound/channel4.ts:148:4 (set_local $0 @@ -6875,7 +6874,7 @@ (get_local $0) ) ) - (func $core/cpu/cpu/Cpu.CLOCK_SPEED (; 89 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/cpu/Cpu.CLOCK_SPEED (; 88 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/cpu.ts:41:4 (if ;;@ core/cpu/cpu.ts:41:8 @@ -6886,14 +6885,14 @@ ) (i32.const 4194304) ) - (func $core/sound/sound/Sound.maxDownSampleCycles (; 90 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/sound/Sound.maxDownSampleCycles (; 89 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/sound/sound.ts:105:27 (call $core/cpu/cpu/Cpu.CLOCK_SPEED) ) - (func $core/portable/portable/i32Portable (; 91 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/portable/portable/i32Portable (; 90 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (get_local $0) ) - (func $core/sound/sound/getSampleAsUnsignedByte (; 92 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/sound/sound/getSampleAsUnsignedByte (; 91 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/sound/sound.ts:421:2 (if ;;@ core/sound/sound.ts:421:6 @@ -6944,7 +6943,7 @@ ) ) ) - (func $core/sound/sound/mixChannelSamples (; 93 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $core/sound/sound/mixChannelSamples (; 92 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) ;;@ core/sound/sound.ts:344:2 (set_global $core/sound/accumulator/SoundAccumulator.mixerVolumeChanged @@ -7115,7 +7114,7 @@ (get_local $0) ) ) - (func $core/sound/sound/setLeftAndRightOutputForAudioQueue (; 94 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/sound/sound/setLeftAndRightOutputForAudioQueue (; 93 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) ;;@ core/sound/sound.ts:461:2 (i32.store8 @@ -7155,7 +7154,7 @@ ) ) ) - (func $core/sound/accumulator/accumulateSound (; 95 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/accumulator/accumulateSound (; 94 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7440,7 +7439,7 @@ ) ) ) - (func $core/helpers/index/splitHighByte (; 96 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/splitHighByte (; 95 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:13:35 (i32.shr_s ;;@ core/helpers/index.ts:13:9 @@ -7453,14 +7452,14 @@ (i32.const 8) ) ) - (func $core/helpers/index/splitLowByte (; 97 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/splitLowByte (; 96 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:17:23 (i32.and (get_local $0) (i32.const 255) ) ) - (func $core/sound/sound/calculateSound (; 98 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/sound/calculateSound (; 97 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7608,7 +7607,7 @@ ) ) ) - (func $core/sound/sound/updateSound (; 99 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/sound/updateSound (; 98 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/sound/sound.ts:191:2 (set_local $1 @@ -7640,7 +7639,7 @@ ) ) ) - (func $core/sound/sound/batchProcessAudio (; 100 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/batchProcessAudio (; 99 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:178:2 (if ;;@ core/sound/sound.ts:178:6 @@ -7679,7 +7678,7 @@ ) ) ) - (func $core/sound/registers/SoundRegisterReadTraps (; 101 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/sound/registers/SoundRegisterReadTraps (; 100 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/sound/registers.ts:130:2 (if @@ -7783,7 +7782,7 @@ ) (i32.const -1) ) - (func $core/joypad/joypad/getJoypadState (; 102 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/joypad/joypad/getJoypadState (; 101 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/joypad/joypad.ts:66:2 (set_local $0 @@ -7965,7 +7964,7 @@ (i32.const 240) ) ) - (func $core/memory/readTraps/checkReadTraps (; 103 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/readTraps/checkReadTraps (; 102 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/memory/readTraps.ts:17:2 (if @@ -8225,7 +8224,7 @@ ) (i32.const -1) ) - (func $core/memory/load/eightBitLoadFromGBMemoryWithTraps (; 104 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/eightBitLoadFromGBMemoryWithTraps (; 103 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (if (i32.eq @@ -8253,7 +8252,7 @@ (i32.const 255) ) ) - (func $core/memory/banking/handleBanking (; 105 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/banking/handleBanking (; 104 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) ;;@ core/memory/banking.ts:7:2 @@ -8655,7 +8654,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.updateNRx0 (; 106 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel1/Channel1.updateNRx0 (; 105 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel1.ts:29:4 (set_global $core/sound/channel1/Channel1.NRx0SweepPeriod ;;@ core/sound/channel1.ts:29:31 @@ -8688,7 +8687,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.updateNRx0 (; 107 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel3/Channel3.updateNRx0 (; 106 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel3.ts:25:4 (set_global $core/sound/channel3/Channel3.isDacEnabled ;;@ core/sound/channel3.ts:25:28 @@ -8699,7 +8698,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.updateNRx1 (; 108 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel1/Channel1.updateNRx1 (; 107 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel1.ts:40:4 (set_global $core/sound/channel1/Channel1.NRx1Duty ;;@ core/sound/channel1.ts:40:24 @@ -8732,7 +8731,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.updateNRx1 (; 109 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel2/Channel2.updateNRx1 (; 108 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel2.ts:28:4 (set_global $core/sound/channel2/Channel2.NRx1Duty ;;@ core/sound/channel2.ts:28:24 @@ -8765,7 +8764,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.updateNRx1 (; 110 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel3/Channel3.updateNRx1 (; 109 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel3.ts:33:4 (set_global $core/sound/channel3/Channel3.NRx1LengthLoad (get_local $0) @@ -8780,7 +8779,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.updateNRx1 (; 111 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel4/Channel4.updateNRx1 (; 110 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel4.ts:28:4 (set_global $core/sound/channel4/Channel4.NRx1LengthLoad ;;@ core/sound/channel4.ts:28:30 @@ -8800,7 +8799,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.updateNRx2 (; 112 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel1/Channel1.updateNRx2 (; 111 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel1.ts:57:4 (set_global $core/sound/channel1/Channel1.NRx2StartingVolume ;;@ core/sound/channel1.ts:57:34 @@ -8846,7 +8845,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.updateNRx2 (; 113 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel2/Channel2.updateNRx2 (; 112 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel2.ts:45:4 (set_global $core/sound/channel2/Channel2.NRx2StartingVolume ;;@ core/sound/channel2.ts:45:34 @@ -8892,7 +8891,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.updateNRx2 (; 114 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel3/Channel3.updateNRx2 (; 113 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel3.ts:48:4 (set_global $core/sound/channel3/Channel3.NRx2VolumeCode ;;@ core/sound/channel3.ts:48:30 @@ -8907,7 +8906,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.updateNRx2 (; 115 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel4/Channel4.updateNRx2 (; 114 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel4.ts:44:4 (set_global $core/sound/channel4/Channel4.NRx2StartingVolume ;;@ core/sound/channel4.ts:44:34 @@ -8953,7 +8952,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.updateNRx3 (; 116 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel1/Channel1.updateNRx3 (; 115 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel1.ts:70:4 (set_global $core/sound/channel1/Channel1.NRx3FrequencyLSB (get_local $0) @@ -8973,7 +8972,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.updateNRx3 (; 117 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel2/Channel2.updateNRx3 (; 116 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel2.ts:58:4 (set_global $core/sound/channel2/Channel2.NRx3FrequencyLSB (get_local $0) @@ -8993,7 +8992,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.updateNRx3 (; 118 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel3/Channel3.updateNRx3 (; 117 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel3.ts:56:4 (set_global $core/sound/channel3/Channel3.NRx3FrequencyLSB (get_local $0) @@ -9013,7 +9012,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.updateNRx3 (; 119 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel4/Channel4.updateNRx3 (; 118 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/sound/channel4.ts:59:4 (set_global $core/sound/channel4/Channel4.NRx3ClockShift @@ -9131,7 +9130,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.updateNRx4 (; 120 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel1/Channel1.updateNRx4 (; 119 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel1.ts:83:4 (set_global $core/sound/channel1/Channel1.NRx4LengthEnabled ;;@ core/sound/channel1.ts:83:33 @@ -9165,7 +9164,7 @@ ) ) ) - (func $core/sound/channel1/Channel1.trigger (; 121 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.trigger (; 120 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/sound/channel1.ts:221:4 (set_global $core/sound/channel1/Channel1.isEnabled @@ -9263,7 +9262,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.updateNRx4 (; 122 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel2/Channel2.updateNRx4 (; 121 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel2.ts:71:4 (set_global $core/sound/channel2/Channel2.NRx4LengthEnabled ;;@ core/sound/channel2.ts:71:33 @@ -9297,7 +9296,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.trigger (; 123 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.trigger (; 122 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:197:4 (set_global $core/sound/channel2/Channel2.isEnabled ;;@ core/sound/channel2.ts:197:25 @@ -9341,7 +9340,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.updateNRx4 (; 124 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel3/Channel3.updateNRx4 (; 123 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel3.ts:69:4 (set_global $core/sound/channel3/Channel3.NRx4LengthEnabled ;;@ core/sound/channel3.ts:69:33 @@ -9375,7 +9374,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.trigger (; 125 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.trigger (; 124 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:235:4 (set_global $core/sound/channel3/Channel3.isEnabled ;;@ core/sound/channel3.ts:235:25 @@ -9414,7 +9413,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.updateNRx4 (; 126 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/channel4/Channel4.updateNRx4 (; 125 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/channel4.ts:97:4 (set_global $core/sound/channel4/Channel4.NRx4LengthEnabled ;;@ core/sound/channel4.ts:97:33 @@ -9425,7 +9424,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.trigger (; 127 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.trigger (; 126 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:221:4 (set_global $core/sound/channel4/Channel4.isEnabled ;;@ core/sound/channel4.ts:221:25 @@ -9477,7 +9476,7 @@ ) ) ) - (func $core/sound/sound/Sound.updateNR50 (; 128 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/sound/Sound.updateNR50 (; 127 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/sound.ts:53:4 (set_global $core/sound/sound/Sound.NR50LeftMixerVolume ;;@ core/sound/sound.ts:53:32 @@ -9501,7 +9500,7 @@ ) ) ) - (func $core/sound/sound/Sound.updateNR51 (; 129 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/sound/Sound.updateNR51 (; 128 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/sound.ts:68:4 (set_global $core/sound/sound/Sound.NR51IsChannel4EnabledOnLeftOutput ;;@ core/sound/sound.ts:68:46 @@ -9575,7 +9574,7 @@ ) ) ) - (func $core/sound/sound/Sound.updateNR52 (; 130 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/sound/sound/Sound.updateNR52 (; 129 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/sound/sound.ts:82:4 (set_global $core/sound/sound/Sound.NR52IsSoundEnabled ;;@ core/sound/sound.ts:82:31 @@ -9586,7 +9585,7 @@ ) ) ) - (func $core/sound/registers/SoundRegisterWriteTraps (; 131 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/sound/registers/SoundRegisterWriteTraps (; 130 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (block $folding-inner0 ;;@ core/sound/registers.ts:16:6 @@ -9901,7 +9900,7 @@ ;;@ core/sound/registers.ts:29:13 (i32.const 1) ) - (func $core/graphics/lcd/Lcd.updateLcdControl (; 132 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/graphics/lcd/Lcd.updateLcdControl (; 131 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/graphics/lcd.ts:50:4 (set_global $core/graphics/lcd/Lcd.enabled ;;@ core/graphics/lcd.ts:50:18 @@ -9975,7 +9974,7 @@ ) ) ) - (func $core/memory/dma/startDmaTransfer (; 133 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/memory/dma/startDmaTransfer (; 132 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/memory/dma.ts:27:2 (set_local $1 @@ -10034,7 +10033,7 @@ (i32.const 644) ) ) - (func $core/memory/dma/getHdmaSourceFromMemory (; 134 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/memory/dma/getHdmaSourceFromMemory (; 133 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/memory/dma.ts:162:15 (i32.and ;;@ core/memory/dma.ts:158:24 @@ -10054,7 +10053,7 @@ (i32.const 65520) ) ) - (func $core/memory/dma/getHdmaDestinationFromMemory (; 135 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/memory/dma/getHdmaDestinationFromMemory (; 134 ;) (; has Stack IR ;) (type $i) (result i32) (i32.add ;;@ core/memory/dma.ts:179:20 (i32.and @@ -10077,7 +10076,7 @@ (i32.const 32768) ) ) - (func $core/memory/dma/startHdmaTransfer (; 136 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/memory/dma/startHdmaTransfer (; 135 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10223,7 +10222,7 @@ ) ) ) - (func $core/graphics/palette/storePaletteByteInWasmMemory (; 137 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/graphics/palette/storePaletteByteInWasmMemory (; 136 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) ;;@ core/graphics/palette.ts:153:2 (set_local $3 @@ -10259,7 +10258,7 @@ (get_local $1) ) ) - (func $core/graphics/palette/incrementPaletteIndexIfSet (; 138 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/graphics/palette/incrementPaletteIndexIfSet (; 137 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/graphics/palette.ts:96:2 (if ;;@ core/graphics/palette.ts:96:6 @@ -10284,7 +10283,7 @@ ) ) ) - (func $core/graphics/palette/writeColorPaletteToMemory (; 139 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/graphics/palette/writeColorPaletteToMemory (; 138 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) ;;@ core/graphics/palette.ts:72:6 @@ -10362,18 +10361,18 @@ ) ) ) - (func $core/interrupts/interrupts/requestTimerInterrupt (; 140 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:218:2 + (func $core/interrupts/interrupts/requestTimerInterrupt (; 139 ;) (; has Stack IR ;) (type $v) + ;;@ core/interrupts/interrupts.ts:216:2 (set_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested - ;;@ core/interrupts/interrupts.ts:218:41 + ;;@ core/interrupts/interrupts.ts:216:41 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:219:2 + ;;@ core/interrupts/interrupts.ts:217:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 2) ) ) - (func $core/timers/timers/_getTimerCounterMaskBit (; 141 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/timers/timers/_getTimerCounterMaskBit (; 140 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/timers/timers.ts:267:2 (block $break|0 @@ -10431,7 +10430,7 @@ ) (i32.const 0) ) - (func $core/timers/timers/_checkDividerRegisterFallingEdgeDetector (; 142 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/timers/timers/_checkDividerRegisterFallingEdgeDetector (; 141 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) ;;@ core/timers/timers.ts:256:6 (if @@ -10468,7 +10467,7 @@ ) (i32.const 0) ) - (func $core/timers/timers/_incrementTimerCounter (; 143 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/_incrementTimerCounter (; 142 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:236:2 (set_global $core/timers/timers/Timers.timerCounter (i32.add @@ -10500,7 +10499,7 @@ ) ) ) - (func $core/timers/timers/updateTimers (; 144 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/updateTimers (; 143 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (loop $continue|0 @@ -10609,7 +10608,7 @@ ) ) ) - (func $core/timers/timers/batchProcessTimers (; 145 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/batchProcessTimers (; 144 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:199:2 (call $core/timers/timers/updateTimers ;;@ core/timers/timers.ts:199:15 @@ -10621,7 +10620,7 @@ (i32.const 0) ) ) - (func $core/timers/timers/Timers.updateDividerRegister (; 146 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateDividerRegister (; 145 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/timers/timers.ts:34:4 (set_local $0 ;;@ core/timers/timers.ts:34:34 @@ -10657,7 +10656,7 @@ (call $core/timers/timers/_incrementTimerCounter) ) ) - (func $core/timers/timers/Timers.updateTimerCounter (; 147 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateTimerCounter (; 146 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/timers/timers.ts:54:4 (if ;;@ core/timers/timers.ts:54:8 @@ -10687,7 +10686,7 @@ (get_local $0) ) ) - (func $core/timers/timers/Timers.updateTimerModulo (; 148 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateTimerModulo (; 147 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/timers/timers.ts:80:4 (set_global $core/timers/timers/Timers.timerModulo (get_local $0) @@ -10716,7 +10715,7 @@ ) ) ) - (func $core/timers/timers/Timers.updateTimerControl (; 149 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateTimerControl (; 148 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) ;;@ core/timers/timers.ts:106:4 @@ -10810,7 +10809,7 @@ (get_local $2) ) ) - (func $core/joypad/joypad/Joypad.updateJoypad (; 150 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/Joypad.updateJoypad (; 149 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/joypad/joypad.ts:45:4 (set_global $core/joypad/joypad/Joypad.joypadRegisterFlipped ;;@ core/joypad/joypad.ts:45:35 @@ -10841,7 +10840,7 @@ ) ) ) - (func $core/interrupts/interrupts/Interrupts.updateInterruptRequested (; 151 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/interrupts/interrupts/Interrupts.updateInterruptRequested (; 150 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/interrupts/interrupts.ts:49:4 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested ;;@ core/interrupts/interrupts.ts:49:44 @@ -10879,7 +10878,7 @@ (get_local $0) ) ) - (func $core/interrupts/interrupts/Interrupts.updateInterruptEnabled (; 152 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/interrupts/interrupts/Interrupts.updateInterruptEnabled (; 151 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/interrupts/interrupts.ts:33:4 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptEnabled ;;@ core/interrupts/interrupts.ts:33:42 @@ -10917,7 +10916,7 @@ (get_local $0) ) ) - (func $core/memory/writeTraps/checkWriteTraps (; 153 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/memory/writeTraps/checkWriteTraps (; 152 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (block $folding-inner1 (block $folding-inner0 @@ -11499,7 +11498,7 @@ ;;@ core/memory/writeTraps.ts:24:11 (i32.const 0) ) - (func $core/memory/store/eightBitStoreIntoGBMemoryWithTraps (; 154 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/eightBitStoreIntoGBMemoryWithTraps (; 153 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/memory/store.ts:11:2 (if ;;@ core/memory/store.ts:11:6 @@ -11514,7 +11513,7 @@ ) ) ) - (func $core/memory/dma/hdmaTransfer (; 155 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/memory/dma/hdmaTransfer (; 154 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11616,7 +11615,7 @@ ) ) ) - (func $core/memory/dma/updateHblankHdma (; 156 ;) (; has Stack IR ;) (type $v) + (func $core/memory/dma/updateHblankHdma (; 155 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/memory/dma.ts:90:2 (if @@ -11720,18 +11719,18 @@ ) ) ) - (func $core/interrupts/interrupts/requestVBlankInterrupt (; 157 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:208:2 + (func $core/interrupts/interrupts/requestVBlankInterrupt (; 156 ;) (; has Stack IR ;) (type $v) + ;;@ core/interrupts/interrupts.ts:206:2 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested - ;;@ core/interrupts/interrupts.ts:208:42 + ;;@ core/interrupts/interrupts.ts:206:42 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:209:2 + ;;@ core/interrupts/interrupts.ts:207:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 0) ) ) - (func $core/graphics/lcd/setLcdStatus (; 158 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/lcd/setLcdStatus (; 157 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -12082,15 +12081,15 @@ ) ) ) - (func $core/graphics/graphics/updateGraphics (; 159 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/graphics/graphics/updateGraphics (; 158 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) - ;;@ core/graphics/graphics.ts:186:2 + ;;@ core/graphics/graphics.ts:184:2 (if - ;;@ core/graphics/graphics.ts:186:6 + ;;@ core/graphics/graphics.ts:184:6 (get_global $core/graphics/lcd/Lcd.enabled) - ;;@ core/graphics/graphics.ts:186:19 + ;;@ core/graphics/graphics.ts:184:19 (block - ;;@ core/graphics/graphics.ts:187:4 + ;;@ core/graphics/graphics.ts:185:4 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter (i32.add (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) @@ -12099,89 +12098,89 @@ ) (loop $continue|0 (if - ;;@ core/graphics/graphics.ts:189:11 + ;;@ core/graphics/graphics.ts:187:11 (i32.ge_s (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) - ;;@ core/graphics/graphics.ts:189:53 + ;;@ core/graphics/graphics.ts:187:53 (call $core/graphics/graphics/Graphics.MAX_CYCLES_PER_SCANLINE) ) (block - ;;@ core/graphics/graphics.ts:192:6 + ;;@ core/graphics/graphics.ts:190:6 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter (i32.sub (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) - ;;@ core/graphics/graphics.ts:192:48 + ;;@ core/graphics/graphics.ts:190:48 (call $core/graphics/graphics/Graphics.MAX_CYCLES_PER_SCANLINE) ) ) - ;;@ core/graphics/graphics.ts:199:6 + ;;@ core/graphics/graphics.ts:197:6 (if - ;;@ core/graphics/graphics.ts:199:10 + ;;@ core/graphics/graphics.ts:197:10 (i32.eq - ;;@ core/graphics/graphics.ts:196:6 + ;;@ core/graphics/graphics.ts:194:6 (tee_local $1 - ;;@ core/graphics/graphics.ts:196:34 + ;;@ core/graphics/graphics.ts:194:34 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) - ;;@ core/graphics/graphics.ts:199:31 + ;;@ core/graphics/graphics.ts:197:31 (i32.const 144) ) - ;;@ core/graphics/graphics.ts:199:36 + ;;@ core/graphics/graphics.ts:197:36 (block - ;;@ core/graphics/graphics.ts:201:8 + ;;@ core/graphics/graphics.ts:199:8 (if - ;;@ core/graphics/graphics.ts:201:13 + ;;@ core/graphics/graphics.ts:199:13 (get_global $core/config/Config.graphicsDisableScanlineRendering) - ;;@ core/graphics/graphics.ts:203:15 + ;;@ core/graphics/graphics.ts:201:15 (call $core/graphics/graphics/_renderEntireFrame) - ;;@ core/graphics/graphics.ts:201:54 + ;;@ core/graphics/graphics.ts:199:54 (call $core/graphics/graphics/_drawScanline (get_local $1) ) ) - ;;@ core/graphics/graphics.ts:208:8 + ;;@ core/graphics/graphics.ts:206:8 (call $core/graphics/priority/clearPriorityMap) - ;;@ core/graphics/graphics.ts:211:8 + ;;@ core/graphics/graphics.ts:209:8 (call $core/graphics/tiles/resetTileCache) ) - ;;@ core/graphics/graphics.ts:212:13 + ;;@ core/graphics/graphics.ts:210:13 (if - ;;@ core/graphics/graphics.ts:212:17 + ;;@ core/graphics/graphics.ts:210:17 (i32.lt_s (get_local $1) - ;;@ core/graphics/graphics.ts:212:36 + ;;@ core/graphics/graphics.ts:210:36 (i32.const 144) ) - ;;@ core/graphics/graphics.ts:212:41 + ;;@ core/graphics/graphics.ts:210:41 (if - ;;@ core/graphics/graphics.ts:214:12 + ;;@ core/graphics/graphics.ts:212:12 (i32.eqz - ;;@ core/graphics/graphics.ts:214:13 + ;;@ core/graphics/graphics.ts:212:13 (get_global $core/config/Config.graphicsDisableScanlineRendering) ) - ;;@ core/graphics/graphics.ts:214:54 + ;;@ core/graphics/graphics.ts:212:54 (call $core/graphics/graphics/_drawScanline (get_local $1) ) ) ) ) - ;;@ core/graphics/graphics.ts:230:6 + ;;@ core/graphics/graphics.ts:228:6 (set_global $core/graphics/graphics/Graphics.scanlineRegister (tee_local $1 - ;;@ core/graphics/graphics.ts:221:6 + ;;@ core/graphics/graphics.ts:219:6 (if (result i32) - ;;@ core/graphics/graphics.ts:221:10 + ;;@ core/graphics/graphics.ts:219:10 (i32.gt_s (get_local $1) - ;;@ core/graphics/graphics.ts:221:29 + ;;@ core/graphics/graphics.ts:219:29 (i32.const 153) ) - ;;@ core/graphics/graphics.ts:224:27 + ;;@ core/graphics/graphics.ts:222:27 (i32.const 0) (i32.add (get_local $1) - ;;@ core/graphics/graphics.ts:226:28 + ;;@ core/graphics/graphics.ts:224:28 (i32.const 1) ) ) @@ -12193,40 +12192,40 @@ ) ) ) - ;;@ core/graphics/graphics.ts:238:2 + ;;@ core/graphics/graphics.ts:236:2 (call $core/graphics/lcd/setLcdStatus) ) - (func $core/graphics/graphics/batchProcessGraphics (; 160 ;) (; has Stack IR ;) (type $v) - ;;@ core/graphics/graphics.ts:134:2 + (func $core/graphics/graphics/batchProcessGraphics (; 159 ;) (; has Stack IR ;) (type $v) + ;;@ core/graphics/graphics.ts:132:2 (if - ;;@ core/graphics/graphics.ts:134:6 + ;;@ core/graphics/graphics.ts:132:6 (i32.lt_s (get_global $core/graphics/graphics/Graphics.currentCycles) - ;;@ core/graphics/graphics.ts:134:40 + ;;@ core/graphics/graphics.ts:132:40 (call $core/graphics/graphics/Graphics.batchProcessCycles) ) (return) ) (loop $continue|0 (if - ;;@ core/graphics/graphics.ts:138:9 + ;;@ core/graphics/graphics.ts:136:9 (i32.ge_s (get_global $core/graphics/graphics/Graphics.currentCycles) - ;;@ core/graphics/graphics.ts:138:44 + ;;@ core/graphics/graphics.ts:136:44 (call $core/graphics/graphics/Graphics.batchProcessCycles) ) (block - ;;@ core/graphics/graphics.ts:139:4 + ;;@ core/graphics/graphics.ts:137:4 (call $core/graphics/graphics/updateGraphics - ;;@ core/graphics/graphics.ts:139:28 + ;;@ core/graphics/graphics.ts:137:28 (call $core/graphics/graphics/Graphics.batchProcessCycles) ) - ;;@ core/graphics/graphics.ts:140:4 + ;;@ core/graphics/graphics.ts:138:4 (set_global $core/graphics/graphics/Graphics.currentCycles - ;;@ core/graphics/graphics.ts:140:29 + ;;@ core/graphics/graphics.ts:138:29 (i32.sub (get_global $core/graphics/graphics/Graphics.currentCycles) - ;;@ core/graphics/graphics.ts:140:63 + ;;@ core/graphics/graphics.ts:138:63 (call $core/graphics/graphics/Graphics.batchProcessCycles) ) ) @@ -12235,7 +12234,7 @@ ) ) ) - (func $core/core/syncCycles (; 161 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/core/syncCycles (; 160 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/core.ts:341:2 (if ;;@ core/core.ts:341:6 @@ -12339,7 +12338,7 @@ ) ) ) - (func $core/cpu/opcodes/getDataByteTwo (; 162 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/opcodes/getDataByteTwo (; 161 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/opcodes.ts:150:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:150:13 @@ -12358,7 +12357,7 @@ ) ) ) - (func $core/cpu/opcodes/getDataByteOne (; 163 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/opcodes/getDataByteOne (; 162 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/opcodes.ts:145:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:145:13 @@ -12370,7 +12369,7 @@ (get_global $core/cpu/cpu/Cpu.programCounter) ) ) - (func $core/cpu/opcodes/getConcatenatedDataByte (; 164 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/opcodes/getConcatenatedDataByte (; 163 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/opcodes.ts:156:65 (call $core/helpers/index/concatenateBytes ;;@ core/cpu/opcodes.ts:156:31 @@ -12385,7 +12384,7 @@ ) ) ) - (func $core/cpu/opcodes/eightBitStoreSyncCycles (; 165 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/opcodes/eightBitStoreSyncCycles (; 164 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/opcodes.ts:128:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:128:13 @@ -12397,7 +12396,7 @@ (get_local $1) ) ) - (func $core/cpu/flags/setFlagBit (; 166 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/cpu/flags/setFlagBit (; 165 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) ;;@ core/cpu/flags.ts:6:2 (set_local $2 @@ -12445,7 +12444,7 @@ ;;@ core/cpu/flags.ts:15:13 (get_global $core/cpu/cpu/Cpu.registerF) ) - (func $core/cpu/flags/setHalfCarryFlag (; 167 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setHalfCarryFlag (; 166 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:28:2 (drop (call $core/cpu/flags/setFlagBit @@ -12455,7 +12454,7 @@ ) ) ) - (func $core/cpu/flags/checkAndSetEightBitHalfCarryFlag (; 168 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/flags/checkAndSetEightBitHalfCarryFlag (; 167 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/flags.ts:55:2 (if ;;@ core/cpu/flags.ts:55:6 @@ -12538,7 +12537,7 @@ ) ) ) - (func $core/cpu/flags/setZeroFlag (; 169 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setZeroFlag (; 168 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:20:2 (drop (call $core/cpu/flags/setFlagBit @@ -12548,7 +12547,7 @@ ) ) ) - (func $core/cpu/flags/setSubtractFlag (; 170 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setSubtractFlag (; 169 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:24:2 (drop (call $core/cpu/flags/setFlagBit @@ -12558,7 +12557,7 @@ ) ) ) - (func $core/cpu/flags/setCarryFlag (; 171 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setCarryFlag (; 170 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:32:2 (drop (call $core/cpu/flags/setFlagBit @@ -12568,7 +12567,7 @@ ) ) ) - (func $core/helpers/index/rotateByteLeft (; 172 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteLeft (; 171 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:25:47 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:25:20 @@ -12590,7 +12589,7 @@ ) ) ) - (func $core/memory/store/sixteenBitStoreIntoGBMemoryWithTraps (; 173 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/sixteenBitStoreIntoGBMemoryWithTraps (; 172 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) ;;@ core/memory/store.ts:19:2 @@ -12642,7 +12641,7 @@ ) ) ) - (func $core/cpu/opcodes/sixteenBitStoreSyncCycles (; 174 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/opcodes/sixteenBitStoreSyncCycles (; 173 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/opcodes.ts:139:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:139:13 @@ -12654,7 +12653,7 @@ (get_local $1) ) ) - (func $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow (; 175 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow (; 174 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) ;;@ core/cpu/flags.ts:96:2 (if (i32.and @@ -12792,7 +12791,7 @@ ) ) ) - (func $core/cpu/opcodes/eightBitLoadSyncCycles (; 176 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/eightBitLoadSyncCycles (; 175 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/opcodes.ts:123:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:123:13 @@ -12803,7 +12802,7 @@ (get_local $0) ) ) - (func $core/helpers/index/rotateByteRight (; 177 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteRight (; 176 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:38:47 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:38:20 @@ -12825,7 +12824,7 @@ ) ) ) - (func $core/cpu/opcodes/handleOpcode0x (; 178 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode0x (; 177 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner4 (block $folding-inner3 @@ -13380,7 +13379,7 @@ ;;@ core/cpu/opcodes.ts:165:13 (i32.const 4) ) - (func $core/cpu/flags/getCarryFlag (; 179 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getCarryFlag (; 178 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:49:32 (i32.and ;;@ core/cpu/flags.ts:49:9 @@ -13394,7 +13393,7 @@ (i32.const 1) ) ) - (func $core/helpers/index/rotateByteLeftThroughCarry (; 180 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteLeftThroughCarry (; 179 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:31:49 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:31:20 @@ -13409,7 +13408,7 @@ ) ) ) - (func $core/portable/portable/i8Portable (; 181 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/portable/portable/i8Portable (; 180 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/portable/portable.ts:19:2 (if @@ -13452,7 +13451,7 @@ ) (get_local $1) ) - (func $core/cpu/instructions/relativeJump (; 182 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/relativeJump (; 181 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:425:2 (set_local $1 @@ -13491,7 +13490,7 @@ ) ) ) - (func $core/helpers/index/rotateByteRightThroughCarry (; 183 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteRightThroughCarry (; 182 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:44:56 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:44:20 @@ -13514,7 +13513,7 @@ ) ) ) - (func $core/cpu/opcodes/handleOpcode1x (; 184 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode1x (; 183 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner3 (block $folding-inner2 @@ -14174,7 +14173,7 @@ ;;@ core/cpu/opcodes.ts:389:13 (i32.const 4) ) - (func $core/cpu/flags/getZeroFlag (; 185 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getZeroFlag (; 184 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:37:32 (i32.and ;;@ core/cpu/flags.ts:37:9 @@ -14188,7 +14187,7 @@ (i32.const 1) ) ) - (func $core/cpu/flags/getHalfCarryFlag (; 186 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getHalfCarryFlag (; 185 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:45:32 (i32.and ;;@ core/cpu/flags.ts:45:9 @@ -14202,7 +14201,7 @@ (i32.const 1) ) ) - (func $core/cpu/flags/getSubtractFlag (; 187 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getSubtractFlag (; 186 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:41:32 (i32.and ;;@ core/cpu/flags.ts:41:9 @@ -14216,7 +14215,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcode2x (; 188 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode2x (; 187 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner1 (block $folding-inner0 @@ -14979,7 +14978,7 @@ ;;@ core/cpu/opcodes.ts:582:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode3x (; 189 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode3x (; 188 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner3 (block $folding-inner2 @@ -15574,7 +15573,7 @@ ;;@ core/cpu/opcodes.ts:780:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode4x (; 190 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode4x (; 189 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -15751,7 +15750,7 @@ ;;@ core/cpu/opcodes.ts:947:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode5x (; 191 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode5x (; 190 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -15928,7 +15927,7 @@ ;;@ core/cpu/opcodes.ts:1035:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode6x (; 192 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode6x (; 191 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16105,7 +16104,7 @@ ;;@ core/cpu/opcodes.ts:1123:13 (i32.const 4) ) - (func $core/cpu/cpu/Cpu.enableHalt (; 193 ;) (; has Stack IR ;) (type $v) + (func $core/cpu/cpu/Cpu.enableHalt (; 192 ;) (; has Stack IR ;) (type $v) ;;@ core/cpu/cpu.ts:74:4 (if ;;@ core/cpu/cpu.ts:74:8 @@ -16121,38 +16120,38 @@ (return) ) ) - ;;@ core/cpu/cpu.ts:83:4 + ;;@ core/cpu/cpu.ts:81:4 (if (i32.eqz ;;@ core/cpu/cpu.ts:79:29 (i32.and (i32.and (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) - ;;@ core/cpu/cpu.ts:80:4 + ;;@ core/cpu/cpu.ts:79:65 (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) ) - ;;@ core/cpu/cpu.ts:81:4 + ;;@ core/cpu/cpu.ts:79:103 (i32.const 31) ) ) - ;;@ core/cpu/cpu.ts:83:29 + ;;@ core/cpu/cpu.ts:81:29 (block - ;;@ core/cpu/cpu.ts:84:6 + ;;@ core/cpu/cpu.ts:82:6 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:84:25 + ;;@ core/cpu/cpu.ts:82:25 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:85:6 + ;;@ core/cpu/cpu.ts:83:6 (return) ) ) - ;;@ core/cpu/cpu.ts:88:4 + ;;@ core/cpu/cpu.ts:86:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:88:20 + ;;@ core/cpu/cpu.ts:86:20 (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcode7x (; 194 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode7x (; 193 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16377,7 +16376,7 @@ ;;@ core/cpu/opcodes.ts:1212:13 (i32.const 4) ) - (func $core/cpu/flags/checkAndSetEightBitCarryFlag (; 195 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/flags/checkAndSetEightBitCarryFlag (; 194 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/flags.ts:75:2 (if ;;@ core/cpu/flags.ts:75:6 @@ -16448,7 +16447,7 @@ ) ) ) - (func $core/cpu/instructions/addARegister (; 196 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/addARegister (; 195 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:31:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -16500,7 +16499,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/addAThroughCarryRegister (; 197 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/addAThroughCarryRegister (; 196 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:46:2 (set_local $1 @@ -16609,7 +16608,7 @@ (i32.const 0) ) ) - (func $core/cpu/opcodes/handleOpcode8x (; 198 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode8x (; 197 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16783,7 +16782,7 @@ ;;@ core/cpu/opcodes.ts:1315:13 (i32.const 4) ) - (func $core/cpu/instructions/subARegister (; 199 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/subARegister (; 198 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:74:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -16841,7 +16840,7 @@ (i32.const 1) ) ) - (func $core/cpu/instructions/subAThroughCarryRegister (; 200 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/subAThroughCarryRegister (; 199 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:89:2 (set_local $1 @@ -16950,7 +16949,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcode9x (; 201 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode9x (; 200 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17124,7 +17123,7 @@ ;;@ core/cpu/opcodes.ts:1421:13 (i32.const 4) ) - (func $core/cpu/instructions/andARegister (; 202 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/andARegister (; 201 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:115:2 (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/instructions.ts:115:18 @@ -17164,7 +17163,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/xorARegister (; 203 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/xorARegister (; 202 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:127:2 (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/instructions.ts:127:18 @@ -17207,7 +17206,7 @@ (i32.const 0) ) ) - (func $core/cpu/opcodes/handleOpcodeAx (; 204 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeAx (; 203 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17381,7 +17380,7 @@ ;;@ core/cpu/opcodes.ts:1527:13 (i32.const 4) ) - (func $core/cpu/instructions/orARegister (; 205 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/orARegister (; 204 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:139:2 (set_global $core/cpu/cpu/Cpu.registerA (i32.and @@ -17424,7 +17423,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/cpARegister (; 206 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/cpARegister (; 205 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:157:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -17474,7 +17473,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcodeBx (; 207 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeBx (; 206 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17648,7 +17647,7 @@ ;;@ core/cpu/opcodes.ts:1634:13 (i32.const 4) ) - (func $core/memory/load/sixteenBitLoadFromGBMemory (; 208 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/sixteenBitLoadFromGBMemory (; 207 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/memory/load.ts:25:2 @@ -17716,7 +17715,7 @@ (get_local $1) ) ) - (func $core/cpu/opcodes/sixteenBitLoadSyncCycles (; 209 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/sixteenBitLoadSyncCycles (; 208 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/opcodes.ts:133:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:133:13 @@ -17727,7 +17726,7 @@ (get_local $0) ) ) - (func $core/cpu/instructions/rotateRegisterLeft (; 210 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterLeft (; 209 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:171:2 (if ;;@ core/cpu/instructions.ts:171:6 @@ -17783,7 +17782,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterRight (; 211 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterRight (; 210 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:195:2 (if ;;@ core/cpu/instructions.ts:195:6 @@ -17839,7 +17838,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterLeftThroughCarry (; 212 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterLeftThroughCarry (; 211 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:220:2 (if @@ -17906,7 +17905,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterRightThroughCarry (; 213 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterRightThroughCarry (; 212 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:247:2 (if @@ -17973,7 +17972,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftLeftRegister (; 214 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftLeftRegister (; 213 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:274:2 (if @@ -18045,7 +18044,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftRightArithmeticRegister (; 215 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftRightArithmeticRegister (; 214 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/cpu/instructions.ts:304:2 @@ -18152,7 +18151,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/swapNibblesOnRegister (; 216 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/swapNibblesOnRegister (; 215 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:344:2 (if ;;@ core/cpu/instructions.ts:342:2 @@ -18213,7 +18212,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftRightLogicalRegister (; 217 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftRightLogicalRegister (; 216 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:364:2 (if @@ -18287,7 +18286,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/testBitOnRegister (; 218 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/cpu/instructions/testBitOnRegister (; 217 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/cpu/instructions.ts:394:2 (if (i32.and @@ -18325,7 +18324,7 @@ ) (get_local $1) ) - (func $core/cpu/instructions/setBitOnRegister (; 219 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $core/cpu/instructions/setBitOnRegister (; 218 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (tee_local $2 ;;@ core/cpu/instructions.ts:409:2 (if (result i32) @@ -18361,7 +18360,7 @@ ) ) ) - (func $core/cpu/cbOpcodes/handleCbOpcode (; 220 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/cbOpcodes/handleCbOpcode (; 219 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -19544,7 +19543,7 @@ ) (get_local $6) ) - (func $core/cpu/opcodes/handleOpcodeCx (; 221 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeCx (; 220 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner5 (block $folding-inner4 @@ -19974,26 +19973,26 @@ ;;@ core/cpu/opcodes.ts:1800:13 (i32.const 4) ) - (func $core/interrupts/interrupts/setInterrupts (; 222 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ core/interrupts/interrupts.ts:200:2 + (func $core/interrupts/interrupts/setInterrupts (; 221 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + ;;@ core/interrupts/interrupts.ts:198:2 (if (i32.and (get_local $0) (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:200:13 + ;;@ core/interrupts/interrupts.ts:198:13 (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay - ;;@ core/interrupts/interrupts.ts:201:44 + ;;@ core/interrupts/interrupts.ts:199:44 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:202:9 + ;;@ core/interrupts/interrupts.ts:200:9 (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch - ;;@ core/interrupts/interrupts.ts:203:39 + ;;@ core/interrupts/interrupts.ts:201:39 (i32.const 0) ) ) ) - (func $core/cpu/opcodes/handleOpcodeDx (; 223 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeDx (; 222 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner4 (block $folding-inner3 @@ -20201,80 +20200,80 @@ ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:1974:6 + ;;@ core/cpu/opcodes.ts:1975:6 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:1974:27 + ;;@ core/cpu/opcodes.ts:1975:27 (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1974:57 + ;;@ core/cpu/opcodes.ts:1975:57 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:1976:6 + ;;@ core/cpu/opcodes.ts:1977:6 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/cpu/opcodes.ts:1976:20 + ;;@ core/cpu/opcodes.ts:1977:20 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:1977:6 + ;;@ core/cpu/opcodes.ts:1978:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1977:25 + ;;@ core/cpu/opcodes.ts:1978:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1977:37 + ;;@ core/cpu/opcodes.ts:1978:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1977:56 + ;;@ core/cpu/opcodes.ts:1978:56 (i32.const 2) ) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:1982:6 + ;;@ core/cpu/opcodes.ts:1983:6 (if - ;;@ core/cpu/opcodes.ts:1982:10 + ;;@ core/cpu/opcodes.ts:1983:10 (i32.eq (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:1982:29 + ;;@ core/cpu/opcodes.ts:1983:29 (i32.const 1) ) (br $folding-inner0) (br $folding-inner3) ) ) - ;;@ core/cpu/opcodes.ts:1994:6 + ;;@ core/cpu/opcodes.ts:1995:6 (if - ;;@ core/cpu/opcodes.ts:1994:10 + ;;@ core/cpu/opcodes.ts:1995:10 (i32.eq (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:1994:29 + ;;@ core/cpu/opcodes.ts:1995:29 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:1994:32 + ;;@ core/cpu/opcodes.ts:1995:32 (block - ;;@ core/cpu/opcodes.ts:1995:8 + ;;@ core/cpu/opcodes.ts:1996:8 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1995:27 + ;;@ core/cpu/opcodes.ts:1996:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1995:39 + ;;@ core/cpu/opcodes.ts:1996:39 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1995:58 + ;;@ core/cpu/opcodes.ts:1996:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1997:8 + ;;@ core/cpu/opcodes.ts:1998:8 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1997:34 + ;;@ core/cpu/opcodes.ts:1998:34 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1997:52 + ;;@ core/cpu/opcodes.ts:1998:52 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1997:64 + ;;@ core/cpu/opcodes.ts:1998:64 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1997:85 + ;;@ core/cpu/opcodes.ts:1998:85 (i32.const 2) ) ) @@ -20284,35 +20283,35 @@ (br $folding-inner3) ) ) - ;;@ core/cpu/opcodes.ts:2011:6 + ;;@ core/cpu/opcodes.ts:2012:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:2011:31 + ;;@ core/cpu/opcodes.ts:2012:31 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:2017:6 + ;;@ core/cpu/opcodes.ts:2018:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2017:25 + ;;@ core/cpu/opcodes.ts:2018:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2017:37 + ;;@ core/cpu/opcodes.ts:2018:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2017:56 + ;;@ core/cpu/opcodes.ts:2018:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2019:6 + ;;@ core/cpu/opcodes.ts:2020:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2019:32 + ;;@ core/cpu/opcodes.ts:2020:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2019:50 + ;;@ core/cpu/opcodes.ts:2020:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2020:6 + ;;@ core/cpu/opcodes.ts:2021:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2020:27 + ;;@ core/cpu/opcodes.ts:2021:27 (i32.const 24) ) (br $folding-inner1) @@ -20394,7 +20393,7 @@ ;;@ core/cpu/opcodes.ts:1950:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcodeEx (; 224 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeEx (; 223 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (block $folding-inner0 (block $break|0 (block $case10|0 @@ -20410,7 +20409,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:2028:9 + ;;@ core/cpu/opcodes.ts:2029:9 (i32.const 224) ) (block @@ -20425,167 +20424,167 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:2036:6 + ;;@ core/cpu/opcodes.ts:2037:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2036:30 + ;;@ core/cpu/opcodes.ts:2037:30 (i32.add - ;;@ core/cpu/opcodes.ts:2034:34 + ;;@ core/cpu/opcodes.ts:2035:34 (i32.and (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) - ;;@ core/cpu/opcodes.ts:2036:30 + ;;@ core/cpu/opcodes.ts:2037:30 (i32.const 65280) ) - ;;@ core/cpu/opcodes.ts:2036:57 + ;;@ core/cpu/opcodes.ts:2037:57 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2043:6 + ;;@ core/cpu/opcodes.ts:2044:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2043:29 + ;;@ core/cpu/opcodes.ts:2044:29 (i32.and (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2043:54 + ;;@ core/cpu/opcodes.ts:2044:54 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2044:6 + ;;@ core/cpu/opcodes.ts:2045:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2044:25 + ;;@ core/cpu/opcodes.ts:2045:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2044:37 + ;;@ core/cpu/opcodes.ts:2045:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2044:56 + ;;@ core/cpu/opcodes.ts:2045:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2045:6 + ;;@ core/cpu/opcodes.ts:2046:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:2045:22 + ;;@ core/cpu/opcodes.ts:2046:22 (call $core/helpers/index/splitHighByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2046:6 + ;;@ core/cpu/opcodes.ts:2047:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:2046:22 + ;;@ core/cpu/opcodes.ts:2047:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2047:13 + ;;@ core/cpu/opcodes.ts:2048:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2057:6 + ;;@ core/cpu/opcodes.ts:2058:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2057:30 + ;;@ core/cpu/opcodes.ts:2058:30 (i32.add - ;;@ core/cpu/opcodes.ts:2057:39 + ;;@ core/cpu/opcodes.ts:2058:39 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:2057:30 + ;;@ core/cpu/opcodes.ts:2058:30 (i32.const 65280) ) - ;;@ core/cpu/opcodes.ts:2057:59 + ;;@ core/cpu/opcodes.ts:2058:59 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/opcodes.ts:2058:13 + ;;@ core/cpu/opcodes.ts:2059:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2063:6 + ;;@ core/cpu/opcodes.ts:2064:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2063:25 + ;;@ core/cpu/opcodes.ts:2064:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2063:37 + ;;@ core/cpu/opcodes.ts:2064:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2063:56 + ;;@ core/cpu/opcodes.ts:2064:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2065:6 + ;;@ core/cpu/opcodes.ts:2066:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2065:32 + ;;@ core/cpu/opcodes.ts:2066:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2065:50 + ;;@ core/cpu/opcodes.ts:2066:50 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2065:67 + ;;@ core/cpu/opcodes.ts:2066:67 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:2065:82 + ;;@ core/cpu/opcodes.ts:2066:82 (get_global $core/cpu/cpu/Cpu.registerL) ) ) - ;;@ core/cpu/opcodes.ts:2066:13 + ;;@ core/cpu/opcodes.ts:2067:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2072:6 + ;;@ core/cpu/opcodes.ts:2073:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:2072:19 + ;;@ core/cpu/opcodes.ts:2073:19 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2078:6 + ;;@ core/cpu/opcodes.ts:2079:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2078:25 + ;;@ core/cpu/opcodes.ts:2079:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2078:37 + ;;@ core/cpu/opcodes.ts:2079:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2078:56 + ;;@ core/cpu/opcodes.ts:2079:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2080:6 + ;;@ core/cpu/opcodes.ts:2081:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2080:32 + ;;@ core/cpu/opcodes.ts:2081:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2080:50 + ;;@ core/cpu/opcodes.ts:2081:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2081:6 + ;;@ core/cpu/opcodes.ts:2082:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2081:27 + ;;@ core/cpu/opcodes.ts:2082:27 (i32.const 32) ) - ;;@ core/cpu/opcodes.ts:2082:13 + ;;@ core/cpu/opcodes.ts:2083:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2089:6 + ;;@ core/cpu/opcodes.ts:2090:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2089:34 + ;;@ core/cpu/opcodes.ts:2090:34 (call $core/portable/portable/i8Portable - ;;@ core/cpu/opcodes.ts:2089:45 + ;;@ core/cpu/opcodes.ts:2090:45 (call $core/cpu/opcodes/getDataByteOne) ) ) - ;;@ core/cpu/opcodes.ts:2091:6 + ;;@ core/cpu/opcodes.ts:2092:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:2091:44 + ;;@ core/cpu/opcodes.ts:2092:44 (get_global $core/cpu/cpu/Cpu.stackPointer) (tee_local $0 - ;;@ core/cpu/opcodes.ts:2091:62 + ;;@ core/cpu/opcodes.ts:2092:62 (i32.shr_s (i32.shl (get_local $0) @@ -20594,124 +20593,124 @@ (i32.const 24) ) ) - ;;@ core/cpu/opcodes.ts:2091:81 + ;;@ core/cpu/opcodes.ts:2092:81 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:2092:6 + ;;@ core/cpu/opcodes.ts:2093:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2092:25 + ;;@ core/cpu/opcodes.ts:2093:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2092:37 + ;;@ core/cpu/opcodes.ts:2093:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:2093:6 + ;;@ core/cpu/opcodes.ts:2094:6 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:2093:18 + ;;@ core/cpu/opcodes.ts:2094:18 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2094:6 + ;;@ core/cpu/opcodes.ts:2095:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:2094:22 + ;;@ core/cpu/opcodes.ts:2095:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2095:6 + ;;@ core/cpu/opcodes.ts:2096:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2095:27 + ;;@ core/cpu/opcodes.ts:2096:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2095:39 + ;;@ core/cpu/opcodes.ts:2096:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2095:60 + ;;@ core/cpu/opcodes.ts:2096:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:2096:13 + ;;@ core/cpu/opcodes.ts:2097:13 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:2100:6 + ;;@ core/cpu/opcodes.ts:2101:6 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:2100:27 + ;;@ core/cpu/opcodes.ts:2101:27 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2100:49 + ;;@ core/cpu/opcodes.ts:2101:49 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:2100:64 + ;;@ core/cpu/opcodes.ts:2101:64 (get_global $core/cpu/cpu/Cpu.registerL) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2101:13 + ;;@ core/cpu/opcodes.ts:2102:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2106:6 + ;;@ core/cpu/opcodes.ts:2107:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2106:30 + ;;@ core/cpu/opcodes.ts:2107:30 (i32.and (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:2106:57 + ;;@ core/cpu/opcodes.ts:2107:57 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/opcodes.ts:2107:6 + ;;@ core/cpu/opcodes.ts:2108:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2107:27 + ;;@ core/cpu/opcodes.ts:2108:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2107:39 + ;;@ core/cpu/opcodes.ts:2108:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2107:60 + ;;@ core/cpu/opcodes.ts:2108:60 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2108:13 + ;;@ core/cpu/opcodes.ts:2109:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2115:6 + ;;@ core/cpu/opcodes.ts:2116:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:2115:19 + ;;@ core/cpu/opcodes.ts:2116:19 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2121:6 + ;;@ core/cpu/opcodes.ts:2122:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2121:25 + ;;@ core/cpu/opcodes.ts:2122:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2121:37 + ;;@ core/cpu/opcodes.ts:2122:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2121:56 + ;;@ core/cpu/opcodes.ts:2122:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2123:6 + ;;@ core/cpu/opcodes.ts:2124:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2123:32 + ;;@ core/cpu/opcodes.ts:2124:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2123:50 + ;;@ core/cpu/opcodes.ts:2124:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2124:6 + ;;@ core/cpu/opcodes.ts:2125:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2124:27 + ;;@ core/cpu/opcodes.ts:2125:27 (i32.const 40) ) - ;;@ core/cpu/opcodes.ts:2125:13 + ;;@ core/cpu/opcodes.ts:2126:13 (return (i32.const 8) ) @@ -20720,22 +20719,22 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:2037:6 + ;;@ core/cpu/opcodes.ts:2038:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2037:27 + ;;@ core/cpu/opcodes.ts:2038:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2037:39 + ;;@ core/cpu/opcodes.ts:2038:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2037:60 + ;;@ core/cpu/opcodes.ts:2038:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:2038:13 + ;;@ core/cpu/opcodes.ts:2039:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcodeFx (; 225 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeFx (; 224 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (block $folding-inner1 (block $folding-inner0 (block $break|0 @@ -20754,7 +20753,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:2132:9 + ;;@ core/cpu/opcodes.ts:2133:9 (i32.const 240) ) (block @@ -20769,20 +20768,20 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:2138:6 + ;;@ core/cpu/opcodes.ts:2139:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:2138:22 + ;;@ core/cpu/opcodes.ts:2139:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:2138:33 + ;;@ core/cpu/opcodes.ts:2139:33 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2138:60 + ;;@ core/cpu/opcodes.ts:2139:60 (i32.add - ;;@ core/cpu/opcodes.ts:2136:34 + ;;@ core/cpu/opcodes.ts:2137:34 (i32.and (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) - ;;@ core/cpu/opcodes.ts:2138:60 + ;;@ core/cpu/opcodes.ts:2139:60 (i32.const 65280) ) ) @@ -20790,44 +20789,44 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2146:6 + ;;@ core/cpu/opcodes.ts:2147:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2146:29 + ;;@ core/cpu/opcodes.ts:2147:29 (i32.and - ;;@ core/cpu/opcodes.ts:2146:34 + ;;@ core/cpu/opcodes.ts:2147:34 (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2146:59 + ;;@ core/cpu/opcodes.ts:2147:59 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2147:6 + ;;@ core/cpu/opcodes.ts:2148:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2147:25 + ;;@ core/cpu/opcodes.ts:2148:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2147:37 + ;;@ core/cpu/opcodes.ts:2148:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2147:56 + ;;@ core/cpu/opcodes.ts:2148:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2148:6 + ;;@ core/cpu/opcodes.ts:2149:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:2148:22 + ;;@ core/cpu/opcodes.ts:2149:22 (call $core/helpers/index/splitHighByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2149:6 + ;;@ core/cpu/opcodes.ts:2150:6 (set_global $core/cpu/cpu/Cpu.registerF (i32.and - ;;@ core/cpu/opcodes.ts:2149:22 + ;;@ core/cpu/opcodes.ts:2150:22 (call $core/helpers/index/splitLowByte (get_local $0) ) @@ -20836,17 +20835,17 @@ ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2155:6 + ;;@ core/cpu/opcodes.ts:2156:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:2155:22 + ;;@ core/cpu/opcodes.ts:2156:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:2155:33 + ;;@ core/cpu/opcodes.ts:2156:33 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2155:60 + ;;@ core/cpu/opcodes.ts:2156:60 (i32.add - ;;@ core/cpu/opcodes.ts:2155:69 + ;;@ core/cpu/opcodes.ts:2156:69 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:2155:60 + ;;@ core/cpu/opcodes.ts:2156:60 (i32.const 65280) ) ) @@ -20854,102 +20853,102 @@ ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2160:6 + ;;@ core/cpu/opcodes.ts:2161:6 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/cpu/opcodes.ts:2160:20 + ;;@ core/cpu/opcodes.ts:2161:20 (i32.const 0) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2166:6 + ;;@ core/cpu/opcodes.ts:2167:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2166:25 + ;;@ core/cpu/opcodes.ts:2167:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2166:37 + ;;@ core/cpu/opcodes.ts:2167:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2166:56 + ;;@ core/cpu/opcodes.ts:2167:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2168:6 + ;;@ core/cpu/opcodes.ts:2169:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2168:32 + ;;@ core/cpu/opcodes.ts:2169:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2168:50 + ;;@ core/cpu/opcodes.ts:2169:50 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2168:67 + ;;@ core/cpu/opcodes.ts:2169:67 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:2168:82 + ;;@ core/cpu/opcodes.ts:2169:82 (get_global $core/cpu/cpu/Cpu.registerF) ) ) - ;;@ core/cpu/opcodes.ts:2169:13 + ;;@ core/cpu/opcodes.ts:2170:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2175:6 + ;;@ core/cpu/opcodes.ts:2176:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:2175:18 + ;;@ core/cpu/opcodes.ts:2176:18 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2181:6 + ;;@ core/cpu/opcodes.ts:2182:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2181:25 + ;;@ core/cpu/opcodes.ts:2182:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2181:37 + ;;@ core/cpu/opcodes.ts:2182:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2181:56 + ;;@ core/cpu/opcodes.ts:2182:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2183:6 + ;;@ core/cpu/opcodes.ts:2184:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2183:32 + ;;@ core/cpu/opcodes.ts:2184:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2183:50 + ;;@ core/cpu/opcodes.ts:2184:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2184:6 + ;;@ core/cpu/opcodes.ts:2185:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2184:27 + ;;@ core/cpu/opcodes.ts:2185:27 (i32.const 48) ) - ;;@ core/cpu/opcodes.ts:2185:13 + ;;@ core/cpu/opcodes.ts:2186:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2192:6 + ;;@ core/cpu/opcodes.ts:2193:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2192:34 + ;;@ core/cpu/opcodes.ts:2193:34 (call $core/portable/portable/i8Portable - ;;@ core/cpu/opcodes.ts:2192:45 + ;;@ core/cpu/opcodes.ts:2193:45 (call $core/cpu/opcodes/getDataByteOne) ) ) - ;;@ core/cpu/opcodes.ts:2195:6 + ;;@ core/cpu/opcodes.ts:2196:6 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:2195:18 + ;;@ core/cpu/opcodes.ts:2196:18 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2196:6 + ;;@ core/cpu/opcodes.ts:2197:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:2196:22 + ;;@ core/cpu/opcodes.ts:2197:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2197:6 + ;;@ core/cpu/opcodes.ts:2198:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:2197:44 + ;;@ core/cpu/opcodes.ts:2198:44 (get_global $core/cpu/cpu/Cpu.stackPointer) (tee_local $0 - ;;@ core/cpu/opcodes.ts:2197:62 + ;;@ core/cpu/opcodes.ts:2198:62 (i32.shr_s (i32.shl (get_local $0) @@ -20958,19 +20957,19 @@ (i32.const 24) ) ) - ;;@ core/cpu/opcodes.ts:2197:81 + ;;@ core/cpu/opcodes.ts:2198:81 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:2199:6 + ;;@ core/cpu/opcodes.ts:2200:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:2199:22 + ;;@ core/cpu/opcodes.ts:2200:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:2198:6 + ;;@ core/cpu/opcodes.ts:2199:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:2198:23 + ;;@ core/cpu/opcodes.ts:2199:23 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2198:35 + ;;@ core/cpu/opcodes.ts:2199:35 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) (get_local $0) @@ -20981,57 +20980,57 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2200:6 + ;;@ core/cpu/opcodes.ts:2201:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:2200:22 + ;;@ core/cpu/opcodes.ts:2201:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2201:6 + ;;@ core/cpu/opcodes.ts:2202:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2201:27 + ;;@ core/cpu/opcodes.ts:2202:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2201:39 + ;;@ core/cpu/opcodes.ts:2202:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2201:60 + ;;@ core/cpu/opcodes.ts:2202:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:2202:13 + ;;@ core/cpu/opcodes.ts:2203:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2206:6 + ;;@ core/cpu/opcodes.ts:2207:6 (set_global $core/cpu/cpu/Cpu.stackPointer (i32.and - ;;@ core/cpu/opcodes.ts:2206:25 + ;;@ core/cpu/opcodes.ts:2207:25 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2206:47 + ;;@ core/cpu/opcodes.ts:2207:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:2206:62 + ;;@ core/cpu/opcodes.ts:2207:62 (get_global $core/cpu/cpu/Cpu.registerL) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2207:13 + ;;@ core/cpu/opcodes.ts:2208:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2212:6 + ;;@ core/cpu/opcodes.ts:2213:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:2212:22 + ;;@ core/cpu/opcodes.ts:2213:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2212:49 + ;;@ core/cpu/opcodes.ts:2213:49 (i32.and (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) @@ -21040,59 +21039,59 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2213:6 + ;;@ core/cpu/opcodes.ts:2214:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2213:27 + ;;@ core/cpu/opcodes.ts:2214:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2213:39 + ;;@ core/cpu/opcodes.ts:2214:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2213:60 + ;;@ core/cpu/opcodes.ts:2214:60 (i32.const 2) ) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2218:6 + ;;@ core/cpu/opcodes.ts:2219:6 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/cpu/opcodes.ts:2218:20 + ;;@ core/cpu/opcodes.ts:2219:20 (i32.const 1) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2226:6 + ;;@ core/cpu/opcodes.ts:2227:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:2226:18 + ;;@ core/cpu/opcodes.ts:2227:18 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2232:6 + ;;@ core/cpu/opcodes.ts:2233:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2232:25 + ;;@ core/cpu/opcodes.ts:2233:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2232:37 + ;;@ core/cpu/opcodes.ts:2233:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2232:56 + ;;@ core/cpu/opcodes.ts:2233:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2234:6 + ;;@ core/cpu/opcodes.ts:2235:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2234:32 + ;;@ core/cpu/opcodes.ts:2235:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2234:50 + ;;@ core/cpu/opcodes.ts:2235:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2235:6 + ;;@ core/cpu/opcodes.ts:2236:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2235:27 + ;;@ core/cpu/opcodes.ts:2236:27 (i32.const 56) ) - ;;@ core/cpu/opcodes.ts:2236:13 + ;;@ core/cpu/opcodes.ts:2237:13 (return (i32.const 8) ) @@ -21101,23 +21100,23 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:2139:6 + ;;@ core/cpu/opcodes.ts:2140:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2139:27 + ;;@ core/cpu/opcodes.ts:2140:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2139:39 + ;;@ core/cpu/opcodes.ts:2140:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2139:60 + ;;@ core/cpu/opcodes.ts:2140:60 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:2150:13 + ;;@ core/cpu/opcodes.ts:2151:13 (i32.const 4) ) - (func $core/cpu/opcodes/executeOpcode (; 226 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/executeOpcode (; 225 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/opcodes.ts:71:2 (set_global $core/cpu/cpu/Cpu.programCounter @@ -21305,36 +21304,36 @@ (get_local $0) ) ) - (func $core/cpu/cpu/Cpu.exitHaltAndStop (; 227 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:92:4 + (func $core/cpu/cpu/Cpu.exitHaltAndStop (; 226 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:90:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:92:23 + ;;@ core/cpu/cpu.ts:90:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:93:4 + ;;@ core/cpu/cpu.ts:91:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:93:23 + ;;@ core/cpu/cpu.ts:91:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:94:4 + ;;@ core/cpu/cpu.ts:92:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:94:20 + ;;@ core/cpu/cpu.ts:92:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:95:4 + ;;@ core/cpu/cpu.ts:93:4 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:95:20 + ;;@ core/cpu/cpu.ts:93:20 (i32.const 0) ) ) - (func $core/cpu/cpu/Cpu.isHalted (; 228 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/cpu.ts:99:4 + (func $core/cpu/cpu/Cpu.isHalted (; 227 ;) (; has Stack IR ;) (type $i) (result i32) + ;;@ core/cpu/cpu.ts:97:4 (if - ;;@ core/cpu/cpu.ts:99:8 + ;;@ core/cpu/cpu.ts:97:8 (if (result i32) (get_global $core/cpu/cpu/Cpu.isHaltNormal) (get_global $core/cpu/cpu/Cpu.isHaltNormal) - ;;@ core/cpu/cpu.ts:99:28 + ;;@ core/cpu/cpu.ts:97:28 (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) (return @@ -21343,7 +21342,7 @@ ) (i32.const 0) ) - (func $core/memory/store/sixteenBitStoreIntoGBMemory (; 229 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/sixteenBitStoreIntoGBMemory (; 228 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) ;;@ core/memory/store.ts:35:2 (set_local $2 @@ -21371,71 +21370,71 @@ (get_local $2) ) ) - (func $core/interrupts/interrupts/_handleInterrupt (; 230 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/interrupts/interrupts/_handleInterrupt (; 229 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) - ;;@ core/interrupts/interrupts.ts:146:2 + ;;@ core/interrupts/interrupts.ts:144:2 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/interrupts/interrupts.ts:146:16 + ;;@ core/interrupts/interrupts.ts:144:16 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:151:2 + ;;@ core/interrupts/interrupts.ts:149:2 (set_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue - ;;@ core/interrupts/interrupts.ts:150:2 + ;;@ core/interrupts/interrupts.ts:148:2 (tee_local $1 - ;;@ core/interrupts/interrupts.ts:150:21 + ;;@ core/interrupts/interrupts.ts:148:21 (call $core/helpers/index/resetBitOnByte (get_local $0) - ;;@ core/interrupts/interrupts.ts:149:25 + ;;@ core/interrupts/interrupts.ts:147:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65295) ) ) ) ) - ;;@ core/interrupts/interrupts.ts:152:2 + ;;@ core/interrupts/interrupts.ts:150:2 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65295) (get_local $1) ) - ;;@ core/interrupts/interrupts.ts:156:2 + ;;@ core/interrupts/interrupts.ts:154:2 (set_global $core/cpu/cpu/Cpu.stackPointer (i32.and - ;;@ core/interrupts/interrupts.ts:156:21 + ;;@ core/interrupts/interrupts.ts:154:21 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/interrupts/interrupts.ts:156:40 + ;;@ core/interrupts/interrupts.ts:154:40 (i32.const 2) ) (i32.const 65535) ) ) - ;;@ core/interrupts/interrupts.ts:157:2 + ;;@ core/interrupts/interrupts.ts:155:2 (if - ;;@ core/interrupts/interrupts.ts:157:10 + ;;@ core/interrupts/interrupts.ts:155:10 (call $core/cpu/cpu/Cpu.isHalted) - ;;@ core/interrupts/interrupts.ts:157:22 + ;;@ core/interrupts/interrupts.ts:155:22 (call $core/memory/store/sixteenBitStoreIntoGBMemory - ;;@ core/interrupts/interrupts.ts:158:32 + ;;@ core/interrupts/interrupts.ts:156:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/interrupts/interrupts.ts:158:50 + ;;@ core/interrupts/interrupts.ts:156:50 (i32.and (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/interrupts/interrupts.ts:158:71 + ;;@ core/interrupts/interrupts.ts:156:71 (i32.const 1) ) (i32.const 65535) ) ) - ;;@ core/interrupts/interrupts.ts:159:9 + ;;@ core/interrupts/interrupts.ts:157:9 (call $core/memory/store/sixteenBitStoreIntoGBMemory - ;;@ core/interrupts/interrupts.ts:160:32 + ;;@ core/interrupts/interrupts.ts:158:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/interrupts/interrupts.ts:160:50 + ;;@ core/interrupts/interrupts.ts:158:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) ) - ;;@ core/interrupts/interrupts.ts:166:2 + ;;@ core/interrupts/interrupts.ts:164:2 (block $break|0 (block $case3|0 (block $case2|0 @@ -21454,123 +21453,58 @@ (br $break|0) ) ) - ;;@ core/interrupts/interrupts.ts:168:6 + ;;@ core/interrupts/interrupts.ts:166:6 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested - ;;@ core/interrupts/interrupts.ts:168:46 + ;;@ core/interrupts/interrupts.ts:166:46 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:169:6 + ;;@ core/interrupts/interrupts.ts:167:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:169:27 + ;;@ core/interrupts/interrupts.ts:167:27 (i32.const 64) ) - ;;@ core/interrupts/interrupts.ts:170:6 + ;;@ core/interrupts/interrupts.ts:168:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:172:6 + ;;@ core/interrupts/interrupts.ts:170:6 (set_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested - ;;@ core/interrupts/interrupts.ts:172:43 + ;;@ core/interrupts/interrupts.ts:170:43 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:173:6 + ;;@ core/interrupts/interrupts.ts:171:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:173:27 + ;;@ core/interrupts/interrupts.ts:171:27 (i32.const 72) ) - ;;@ core/interrupts/interrupts.ts:174:6 + ;;@ core/interrupts/interrupts.ts:172:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:176:6 + ;;@ core/interrupts/interrupts.ts:174:6 (set_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested - ;;@ core/interrupts/interrupts.ts:176:45 + ;;@ core/interrupts/interrupts.ts:174:45 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:177:6 + ;;@ core/interrupts/interrupts.ts:175:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:177:27 + ;;@ core/interrupts/interrupts.ts:175:27 (i32.const 80) ) - ;;@ core/interrupts/interrupts.ts:178:6 + ;;@ core/interrupts/interrupts.ts:176:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:180:6 + ;;@ core/interrupts/interrupts.ts:178:6 (set_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested - ;;@ core/interrupts/interrupts.ts:180:46 + ;;@ core/interrupts/interrupts.ts:178:46 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:181:6 + ;;@ core/interrupts/interrupts.ts:179:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:181:27 + ;;@ core/interrupts/interrupts.ts:179:27 (i32.const 96) ) ) ) - (func $core/helpers/index/hexLog (; 231 ;) (; has Stack IR ;) (type $iiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - ;;@ core/helpers/index.ts:87:6 - (call $core/helpers/index/env.hexLog - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - (get_local $4) - (get_local $5) - ) - ) - (func $core/helpers/index/hexLog|trampoline (; 232 ;) (; has Stack IR ;) (type $iiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (block $6of6 - (block $5of6 - (block $4of6 - (block $3of6 - (block $2of6 - (block $1of6 - (block $0of6 - (block $outOfRange - (br_table $0of6 $1of6 $2of6 $3of6 $4of6 $5of6 $6of6 $outOfRange - (get_global $~argc) - ) - ) - (unreachable) - ) - (set_local $0 - ;;@ core/helpers/index.ts:80:14 - (i32.const -9999) - ) - ) - (set_local $1 - ;;@ core/helpers/index.ts:81:14 - (i32.const -9999) - ) - ) - (set_local $2 - ;;@ core/helpers/index.ts:82:14 - (i32.const -9999) - ) - ) - (set_local $3 - ;;@ core/helpers/index.ts:83:14 - (i32.const -9999) - ) - ) - (set_local $4 - ;;@ core/helpers/index.ts:84:14 - (i32.const -9999) - ) - ) - (set_local $5 - ;;@ core/helpers/index.ts:85:14 - (i32.const -9999) - ) - ) - (call $core/helpers/index/hexLog - (get_local $0) - (get_local $1) - (get_local $2) - (get_local $3) - (get_local $4) - (get_local $5) - ) - ) - (func $core/interrupts/interrupts/checkInterrupts (; 233 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/interrupts/interrupts/checkInterrupts (; 230 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) ;;@ core/interrupts/interrupts.ts:85:2 @@ -21641,91 +21575,78 @@ (call $core/interrupts/interrupts/_handleInterrupt (i32.const 0) ) - (set_global $~argc - (i32.const 2) - ) - (call $core/helpers/index/hexLog|trampoline - ;;@ core/interrupts/interrupts.ts:106:15 - (i32.const 5) - ;;@ core/interrupts/interrupts.ts:106:21 - (i32.const 1) - (i32.const 0) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ;;@ core/interrupts/interrupts.ts:107:8 + ;;@ core/interrupts/interrupts.ts:106:8 (set_local $1 - ;;@ core/interrupts/interrupts.ts:107:30 + ;;@ core/interrupts/interrupts.ts:106:30 (i32.const 1) ) ) - ;;@ core/interrupts/interrupts.ts:108:13 + ;;@ core/interrupts/interrupts.ts:107:13 (if (tee_local $0 - ;;@ core/interrupts/interrupts.ts:108:17 + ;;@ core/interrupts/interrupts.ts:107:17 (if (result i32) (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptEnabled) - ;;@ core/interrupts/interrupts.ts:108:53 + ;;@ core/interrupts/interrupts.ts:107:53 (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested) (get_global $core/interrupts/interrupts/Interrupts.isLcdInterruptEnabled) ) ) - ;;@ core/interrupts/interrupts.ts:108:89 + ;;@ core/interrupts/interrupts.ts:107:89 (block - ;;@ core/interrupts/interrupts.ts:109:8 + ;;@ core/interrupts/interrupts.ts:108:8 (call $core/interrupts/interrupts/_handleInterrupt (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:110:8 + ;;@ core/interrupts/interrupts.ts:109:8 (set_local $1 - ;;@ core/interrupts/interrupts.ts:110:30 + ;;@ core/interrupts/interrupts.ts:109:30 (i32.const 1) ) ) - ;;@ core/interrupts/interrupts.ts:111:13 + ;;@ core/interrupts/interrupts.ts:110:13 (if (tee_local $0 - ;;@ core/interrupts/interrupts.ts:111:17 + ;;@ core/interrupts/interrupts.ts:110:17 (if (result i32) (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptEnabled) - ;;@ core/interrupts/interrupts.ts:111:55 + ;;@ core/interrupts/interrupts.ts:110:55 (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested) (get_global $core/interrupts/interrupts/Interrupts.isTimerInterruptEnabled) ) ) - ;;@ core/interrupts/interrupts.ts:111:93 + ;;@ core/interrupts/interrupts.ts:110:93 (block - ;;@ core/interrupts/interrupts.ts:112:8 + ;;@ core/interrupts/interrupts.ts:111:8 (call $core/interrupts/interrupts/_handleInterrupt (i32.const 2) ) - ;;@ core/interrupts/interrupts.ts:113:8 + ;;@ core/interrupts/interrupts.ts:112:8 (set_local $1 - ;;@ core/interrupts/interrupts.ts:113:30 + ;;@ core/interrupts/interrupts.ts:112:30 (i32.const 1) ) ) - ;;@ core/interrupts/interrupts.ts:114:13 + ;;@ core/interrupts/interrupts.ts:113:13 (if (tee_local $0 - ;;@ core/interrupts/interrupts.ts:114:17 + ;;@ core/interrupts/interrupts.ts:113:17 (if (result i32) (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptEnabled) - ;;@ core/interrupts/interrupts.ts:114:56 + ;;@ core/interrupts/interrupts.ts:113:56 (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested) (get_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptEnabled) ) ) - ;;@ core/interrupts/interrupts.ts:114:95 + ;;@ core/interrupts/interrupts.ts:113:95 (block - ;;@ core/interrupts/interrupts.ts:115:8 + ;;@ core/interrupts/interrupts.ts:114:8 (call $core/interrupts/interrupts/_handleInterrupt (i32.const 4) ) - ;;@ core/interrupts/interrupts.ts:116:8 + ;;@ core/interrupts/interrupts.ts:115:8 (set_local $1 - ;;@ core/interrupts/interrupts.ts:116:30 + ;;@ core/interrupts/interrupts.ts:115:30 (i32.const 1) ) ) @@ -21734,30 +21655,30 @@ ) ) ) - ;;@ core/interrupts/interrupts.ts:120:4 + ;;@ core/interrupts/interrupts.ts:119:4 (set_local $0 - ;;@ core/interrupts/interrupts.ts:120:37 + ;;@ core/interrupts/interrupts.ts:119:37 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:121:4 + ;;@ core/interrupts/interrupts.ts:120:4 (if (get_local $1) - ;;@ core/interrupts/interrupts.ts:121:29 + ;;@ core/interrupts/interrupts.ts:120:29 (block - ;;@ core/interrupts/interrupts.ts:123:6 + ;;@ core/interrupts/interrupts.ts:122:6 (set_local $0 - ;;@ core/interrupts/interrupts.ts:123:30 + ;;@ core/interrupts/interrupts.ts:122:30 (i32.const 20) ) - ;;@ core/interrupts/interrupts.ts:124:6 + ;;@ core/interrupts/interrupts.ts:123:6 (if - ;;@ core/interrupts/interrupts.ts:124:14 + ;;@ core/interrupts/interrupts.ts:123:14 (call $core/cpu/cpu/Cpu.isHalted) - ;;@ core/interrupts/interrupts.ts:124:26 + ;;@ core/interrupts/interrupts.ts:123:26 (block - ;;@ core/interrupts/interrupts.ts:128:12 + ;;@ core/interrupts/interrupts.ts:127:12 (call $core/cpu/cpu/Cpu.exitHaltAndStop) - ;;@ core/interrupts/interrupts.ts:129:8 + ;;@ core/interrupts/interrupts.ts:128:8 (set_local $0 (i32.const 24) ) @@ -21765,30 +21686,14 @@ ) ) ) - ;;@ core/interrupts/interrupts.ts:133:4 + ;;@ core/interrupts/interrupts.ts:132:4 (if - ;;@ core/interrupts/interrupts.ts:133:12 + ;;@ core/interrupts/interrupts.ts:132:12 (call $core/cpu/cpu/Cpu.isHalted) - ;;@ core/interrupts/interrupts.ts:133:24 - (block - (set_global $~argc - (i32.const 2) - ) - (call $core/helpers/index/hexLog|trampoline - ;;@ core/interrupts/interrupts.ts:134:13 - (i32.const 4) - ;;@ core/interrupts/interrupts.ts:134:19 - (get_global $core/cpu/cpu/Cpu.currentCycles) - (i32.const 0) - (i32.const 0) - (i32.const 0) - (i32.const 0) - ) - ;;@ core/interrupts/interrupts.ts:135:10 - (call $core/cpu/cpu/Cpu.exitHaltAndStop) - ) + ;;@ core/interrupts/interrupts.ts:132:24 + (call $core/cpu/cpu/Cpu.exitHaltAndStop) ) - ;;@ core/interrupts/interrupts.ts:138:11 + ;;@ core/interrupts/interrupts.ts:136:11 (return (get_local $0) ) @@ -21796,7 +21701,7 @@ ) (i32.const 0) ) - (func $core/core/executeStep (; 234 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/executeStep (; 231 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) ;;@ core/core.ts:285:2 @@ -21926,7 +21831,7 @@ ) (get_local $0) ) - (func $core/core/executeFrame (; 235 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/executeFrame (; 232 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) (loop $continue|0 @@ -22006,11 +21911,11 @@ ) (i32.const -1) ) - (func $core/sound/sound/getNumberOfSamplesInAudioBuffer (; 236 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/sound/getNumberOfSamplesInAudioBuffer (; 233 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/sound/sound.ts:202:15 (get_global $core/sound/sound/Sound.audioQueueIndex) ) - (func $core/core/executeFrameAndCheckAudio (; 237 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/core/executeFrameAndCheckAudio (; 234 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/core.ts:210:2 @@ -22135,7 +22040,7 @@ ) (i32.const -1) ) - (func $core/core/executeFrameUntilBreakpoint (; 238 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/core/executeFrameUntilBreakpoint (; 235 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (loop $continue|0 @@ -22237,7 +22142,7 @@ ) (i32.const -1) ) - (func $core/core/getSaveStateMemoryOffset (; 239 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/core/getSaveStateMemoryOffset (; 236 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/core.ts:381:48 (i32.add ;;@ core/core.ts:381:9 @@ -22252,7 +22157,7 @@ ) ) ) - (func $core/memory/store/storeBooleanDirectlyToWasmMemory (; 240 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/storeBooleanDirectlyToWasmMemory (; 237 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/memory/store.ts:44:2 (if (i32.and @@ -22273,204 +22178,204 @@ ) ) ) - (func $core/cpu/cpu/Cpu.saveState (; 241 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:112:4 + (func $core/cpu/cpu/Cpu.saveState (; 238 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:110:4 (i32.store8 - ;;@ core/cpu/cpu.ts:112:14 + ;;@ core/cpu/cpu.ts:110:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:112:39 + ;;@ core/cpu/cpu.ts:110:39 (i32.const 0) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:112:65 + ;;@ core/cpu/cpu.ts:110:65 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/cpu.ts:113:4 + ;;@ core/cpu/cpu.ts:111:4 (i32.store8 - ;;@ core/cpu/cpu.ts:113:14 + ;;@ core/cpu/cpu.ts:111:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:113:39 + ;;@ core/cpu/cpu.ts:111:39 (i32.const 1) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:113:65 + ;;@ core/cpu/cpu.ts:111:65 (get_global $core/cpu/cpu/Cpu.registerB) ) - ;;@ core/cpu/cpu.ts:114:4 + ;;@ core/cpu/cpu.ts:112:4 (i32.store8 - ;;@ core/cpu/cpu.ts:114:14 + ;;@ core/cpu/cpu.ts:112:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:114:39 + ;;@ core/cpu/cpu.ts:112:39 (i32.const 2) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:114:65 + ;;@ core/cpu/cpu.ts:112:65 (get_global $core/cpu/cpu/Cpu.registerC) ) - ;;@ core/cpu/cpu.ts:115:4 + ;;@ core/cpu/cpu.ts:113:4 (i32.store8 - ;;@ core/cpu/cpu.ts:115:14 + ;;@ core/cpu/cpu.ts:113:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:115:39 + ;;@ core/cpu/cpu.ts:113:39 (i32.const 3) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:115:65 + ;;@ core/cpu/cpu.ts:113:65 (get_global $core/cpu/cpu/Cpu.registerD) ) - ;;@ core/cpu/cpu.ts:116:4 + ;;@ core/cpu/cpu.ts:114:4 (i32.store8 - ;;@ core/cpu/cpu.ts:116:14 + ;;@ core/cpu/cpu.ts:114:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:116:39 + ;;@ core/cpu/cpu.ts:114:39 (i32.const 4) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:116:65 + ;;@ core/cpu/cpu.ts:114:65 (get_global $core/cpu/cpu/Cpu.registerE) ) - ;;@ core/cpu/cpu.ts:117:4 + ;;@ core/cpu/cpu.ts:115:4 (i32.store8 - ;;@ core/cpu/cpu.ts:117:14 + ;;@ core/cpu/cpu.ts:115:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:117:39 + ;;@ core/cpu/cpu.ts:115:39 (i32.const 5) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:117:65 + ;;@ core/cpu/cpu.ts:115:65 (get_global $core/cpu/cpu/Cpu.registerH) ) - ;;@ core/cpu/cpu.ts:118:4 + ;;@ core/cpu/cpu.ts:116:4 (i32.store8 - ;;@ core/cpu/cpu.ts:118:14 + ;;@ core/cpu/cpu.ts:116:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:118:39 + ;;@ core/cpu/cpu.ts:116:39 (i32.const 6) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:118:65 + ;;@ core/cpu/cpu.ts:116:65 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/cpu.ts:119:4 + ;;@ core/cpu/cpu.ts:117:4 (i32.store8 - ;;@ core/cpu/cpu.ts:119:14 + ;;@ core/cpu/cpu.ts:117:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:119:39 + ;;@ core/cpu/cpu.ts:117:39 (i32.const 7) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:119:65 + ;;@ core/cpu/cpu.ts:117:65 (get_global $core/cpu/cpu/Cpu.registerF) ) - ;;@ core/cpu/cpu.ts:121:4 + ;;@ core/cpu/cpu.ts:119:4 (i32.store16 - ;;@ core/cpu/cpu.ts:121:15 + ;;@ core/cpu/cpu.ts:119:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:121:40 + ;;@ core/cpu/cpu.ts:119:40 (i32.const 8) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:121:66 + ;;@ core/cpu/cpu.ts:119:66 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - ;;@ core/cpu/cpu.ts:122:4 + ;;@ core/cpu/cpu.ts:120:4 (i32.store16 - ;;@ core/cpu/cpu.ts:122:15 + ;;@ core/cpu/cpu.ts:120:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:122:40 + ;;@ core/cpu/cpu.ts:120:40 (i32.const 10) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:122:66 + ;;@ core/cpu/cpu.ts:120:66 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/cpu.ts:124:4 + ;;@ core/cpu/cpu.ts:122:4 (i32.store - ;;@ core/cpu/cpu.ts:124:15 + ;;@ core/cpu/cpu.ts:122:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:124:40 + ;;@ core/cpu/cpu.ts:122:40 (i32.const 12) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:124:66 + ;;@ core/cpu/cpu.ts:122:66 (get_global $core/cpu/cpu/Cpu.currentCycles) ) - ;;@ core/cpu/cpu.ts:126:4 + ;;@ core/cpu/cpu.ts:124:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:126:37 + ;;@ core/cpu/cpu.ts:124:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:126:62 + ;;@ core/cpu/cpu.ts:124:62 (i32.const 17) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:126:88 + ;;@ core/cpu/cpu.ts:124:88 (get_global $core/cpu/cpu/Cpu.isHaltNormal) ) - ;;@ core/cpu/cpu.ts:127:4 + ;;@ core/cpu/cpu.ts:125:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:127:37 + ;;@ core/cpu/cpu.ts:125:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:127:62 + ;;@ core/cpu/cpu.ts:125:62 (i32.const 18) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:127:88 + ;;@ core/cpu/cpu.ts:125:88 (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) - ;;@ core/cpu/cpu.ts:128:4 + ;;@ core/cpu/cpu.ts:126:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:128:37 + ;;@ core/cpu/cpu.ts:126:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:128:62 + ;;@ core/cpu/cpu.ts:126:62 (i32.const 19) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:128:88 + ;;@ core/cpu/cpu.ts:126:88 (get_global $core/cpu/cpu/Cpu.isHaltBug) ) - ;;@ core/cpu/cpu.ts:129:4 + ;;@ core/cpu/cpu.ts:127:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:129:37 + ;;@ core/cpu/cpu.ts:127:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:129:62 + ;;@ core/cpu/cpu.ts:127:62 (i32.const 20) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:129:88 + ;;@ core/cpu/cpu.ts:127:88 (get_global $core/cpu/cpu/Cpu.isStopped) ) ) - (func $core/graphics/graphics/Graphics.saveState (; 242 ;) (; has Stack IR ;) (type $v) - ;;@ core/graphics/graphics.ts:113:4 + (func $core/graphics/graphics/Graphics.saveState (; 239 ;) (; has Stack IR ;) (type $v) + ;;@ core/graphics/graphics.ts:111:4 (i32.store - ;;@ core/graphics/graphics.ts:113:15 + ;;@ core/graphics/graphics.ts:111:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/graphics/graphics.ts:113:40 + ;;@ core/graphics/graphics.ts:111:40 (i32.const 0) (i32.const 1) ) - ;;@ core/graphics/graphics.ts:113:71 + ;;@ core/graphics/graphics.ts:111:71 (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) ) - ;;@ core/graphics/graphics.ts:114:4 + ;;@ core/graphics/graphics.ts:112:4 (i32.store8 - ;;@ core/graphics/graphics.ts:114:14 + ;;@ core/graphics/graphics.ts:112:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/graphics/graphics.ts:114:39 + ;;@ core/graphics/graphics.ts:112:39 (i32.const 4) (i32.const 1) ) - ;;@ core/graphics/graphics.ts:114:70 + ;;@ core/graphics/graphics.ts:112:70 (get_global $core/graphics/lcd/Lcd.currentLcdMode) ) - ;;@ core/graphics/graphics.ts:116:4 + ;;@ core/graphics/graphics.ts:114:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65348) - ;;@ core/graphics/graphics.ts:116:71 + ;;@ core/graphics/graphics.ts:114:71 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) ) - (func $core/interrupts/interrupts/Interrupts.saveState (; 243 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/Interrupts.saveState (; 240 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:67:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/interrupts/interrupts.ts:67:37 @@ -22494,10 +22399,10 @@ (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay) ) ) - (func $core/joypad/joypad/Joypad.saveState (; 244 ;) (; has Stack IR ;) (type $v) + (func $core/joypad/joypad/Joypad.saveState (; 241 ;) (; has Stack IR ;) (type $v) (nop) ) - (func $core/memory/memory/Memory.saveState (; 245 ;) (; has Stack IR ;) (type $v) + (func $core/memory/memory/Memory.saveState (; 242 ;) (; has Stack IR ;) (type $v) ;;@ core/memory/memory.ts:104:4 (i32.store16 ;;@ core/memory/memory.ts:104:15 @@ -22598,7 +22503,7 @@ (get_global $core/memory/memory/Memory.isMBC5) ) ) - (func $core/timers/timers/Timers.saveState (; 246 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/Timers.saveState (; 243 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:138:4 (i32.store ;;@ core/timers/timers.ts:138:15 @@ -22650,7 +22555,7 @@ (get_global $core/timers/timers/Timers.timerCounter) ) ) - (func $core/sound/sound/Sound.saveState (; 247 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/Sound.saveState (; 244 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:126:4 (i32.store ;;@ core/sound/sound.ts:126:15 @@ -22685,7 +22590,7 @@ (get_global $core/sound/sound/Sound.frameSequencer) ) ) - (func $core/sound/channel1/Channel1.saveState (; 248 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.saveState (; 245 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:115:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel1.ts:115:37 @@ -22797,7 +22702,7 @@ (get_global $core/sound/channel1/Channel1.sweepShadowFrequency) ) ) - (func $core/sound/channel2/Channel2.saveState (; 249 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.saveState (; 246 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:99:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel2.ts:99:37 @@ -22876,7 +22781,7 @@ (get_global $core/sound/channel2/Channel2.waveFormPositionOnDuty) ) ) - (func $core/sound/channel3/Channel3.saveState (; 250 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.saveState (; 247 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:97:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel3.ts:97:37 @@ -22922,7 +22827,7 @@ (get_global $core/sound/channel3/Channel3.waveTablePosition) ) ) - (func $core/sound/channel4/Channel4.saveState (; 251 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.saveState (; 248 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:120:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel4.ts:120:37 @@ -22990,7 +22895,7 @@ (get_global $core/sound/channel4/Channel4.linearFeedbackShiftRegister) ) ) - (func $core/core/saveState (; 252 ;) (; has Stack IR ;) (type $v) + (func $core/core/saveState (; 249 ;) (; has Stack IR ;) (type $v) ;;@ core/core.ts:386:6 (call $core/cpu/cpu/Cpu.saveState) ;;@ core/core.ts:387:11 @@ -23019,7 +22924,7 @@ (i32.const 0) ) ) - (func $core/memory/load/loadBooleanDirectlyFromWasmMemory (; 253 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/loadBooleanDirectlyFromWasmMemory (; 250 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/memory/load.ts:55:2 (if ;;@ core/memory/load.ts:55:6 @@ -23037,229 +22942,229 @@ ) (i32.const 0) ) - (func $core/cpu/cpu/Cpu.loadState (; 254 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:135:4 + (func $core/cpu/cpu/Cpu.loadState (; 251 ;) (; has Stack IR ;) (type $v) + ;;@ core/cpu/cpu.ts:133:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:135:20 + ;;@ core/cpu/cpu.ts:133:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:135:29 + ;;@ core/cpu/cpu.ts:133:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:135:54 + ;;@ core/cpu/cpu.ts:133:54 (i32.const 0) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:136:4 + ;;@ core/cpu/cpu.ts:134:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:136:20 + ;;@ core/cpu/cpu.ts:134:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:136:29 + ;;@ core/cpu/cpu.ts:134:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:136:54 + ;;@ core/cpu/cpu.ts:134:54 (i32.const 1) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:137:4 + ;;@ core/cpu/cpu.ts:135:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:137:20 + ;;@ core/cpu/cpu.ts:135:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:137:29 + ;;@ core/cpu/cpu.ts:135:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:137:54 + ;;@ core/cpu/cpu.ts:135:54 (i32.const 2) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:138:4 + ;;@ core/cpu/cpu.ts:136:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:138:20 + ;;@ core/cpu/cpu.ts:136:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:138:29 + ;;@ core/cpu/cpu.ts:136:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:138:54 + ;;@ core/cpu/cpu.ts:136:54 (i32.const 3) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:139:4 + ;;@ core/cpu/cpu.ts:137:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:139:20 + ;;@ core/cpu/cpu.ts:137:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:139:29 + ;;@ core/cpu/cpu.ts:137:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:139:54 + ;;@ core/cpu/cpu.ts:137:54 (i32.const 4) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:140:4 + ;;@ core/cpu/cpu.ts:138:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:140:20 + ;;@ core/cpu/cpu.ts:138:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:140:29 + ;;@ core/cpu/cpu.ts:138:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:140:54 + ;;@ core/cpu/cpu.ts:138:54 (i32.const 5) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:141:4 + ;;@ core/cpu/cpu.ts:139:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:141:20 + ;;@ core/cpu/cpu.ts:139:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:141:29 + ;;@ core/cpu/cpu.ts:139:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:141:54 + ;;@ core/cpu/cpu.ts:139:54 (i32.const 6) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:142:4 + ;;@ core/cpu/cpu.ts:140:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:142:20 + ;;@ core/cpu/cpu.ts:140:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:142:29 + ;;@ core/cpu/cpu.ts:140:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:142:54 + ;;@ core/cpu/cpu.ts:140:54 (i32.const 7) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:144:4 + ;;@ core/cpu/cpu.ts:142:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:144:23 + ;;@ core/cpu/cpu.ts:142:23 (i32.load16_u - ;;@ core/cpu/cpu.ts:144:33 + ;;@ core/cpu/cpu.ts:142:33 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:144:58 + ;;@ core/cpu/cpu.ts:142:58 (i32.const 8) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:145:4 + ;;@ core/cpu/cpu.ts:143:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:145:25 + ;;@ core/cpu/cpu.ts:143:25 (i32.load16_u - ;;@ core/cpu/cpu.ts:145:35 + ;;@ core/cpu/cpu.ts:143:35 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:145:60 + ;;@ core/cpu/cpu.ts:143:60 (i32.const 10) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:147:4 + ;;@ core/cpu/cpu.ts:145:4 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:147:24 + ;;@ core/cpu/cpu.ts:145:24 (i32.load - ;;@ core/cpu/cpu.ts:147:34 + ;;@ core/cpu/cpu.ts:145:34 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:147:59 + ;;@ core/cpu/cpu.ts:145:59 (i32.const 12) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:149:4 + ;;@ core/cpu/cpu.ts:147:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:149:23 + ;;@ core/cpu/cpu.ts:147:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:149:57 + ;;@ core/cpu/cpu.ts:147:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:149:82 + ;;@ core/cpu/cpu.ts:147:82 (i32.const 17) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:150:4 + ;;@ core/cpu/cpu.ts:148:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:150:23 + ;;@ core/cpu/cpu.ts:148:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:150:57 + ;;@ core/cpu/cpu.ts:148:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:150:82 + ;;@ core/cpu/cpu.ts:148:82 (i32.const 18) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:151:4 + ;;@ core/cpu/cpu.ts:149:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:151:20 + ;;@ core/cpu/cpu.ts:149:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:151:54 + ;;@ core/cpu/cpu.ts:149:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:151:79 + ;;@ core/cpu/cpu.ts:149:79 (i32.const 19) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:152:4 + ;;@ core/cpu/cpu.ts:150:4 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:152:20 + ;;@ core/cpu/cpu.ts:150:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:152:54 + ;;@ core/cpu/cpu.ts:150:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:152:79 + ;;@ core/cpu/cpu.ts:150:79 (i32.const 20) (i32.const 0) ) ) ) ) - (func $core/graphics/graphics/Graphics.loadState (; 255 ;) (; has Stack IR ;) (type $v) - ;;@ core/graphics/graphics.ts:121:4 + (func $core/graphics/graphics/Graphics.loadState (; 252 ;) (; has Stack IR ;) (type $v) + ;;@ core/graphics/graphics.ts:119:4 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter - ;;@ core/graphics/graphics.ts:121:36 + ;;@ core/graphics/graphics.ts:119:36 (i32.load - ;;@ core/graphics/graphics.ts:121:46 + ;;@ core/graphics/graphics.ts:119:46 (call $core/core/getSaveStateMemoryOffset - ;;@ core/graphics/graphics.ts:121:71 + ;;@ core/graphics/graphics.ts:119:71 (i32.const 0) (i32.const 1) ) ) ) - ;;@ core/graphics/graphics.ts:122:4 + ;;@ core/graphics/graphics.ts:120:4 (set_global $core/graphics/lcd/Lcd.currentLcdMode - ;;@ core/graphics/graphics.ts:122:25 + ;;@ core/graphics/graphics.ts:120:25 (i32.load8_u - ;;@ core/graphics/graphics.ts:122:34 + ;;@ core/graphics/graphics.ts:120:34 (call $core/core/getSaveStateMemoryOffset - ;;@ core/graphics/graphics.ts:122:59 + ;;@ core/graphics/graphics.ts:120:59 (i32.const 4) (i32.const 1) ) ) ) - ;;@ core/graphics/graphics.ts:124:4 + ;;@ core/graphics/graphics.ts:122:4 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/graphics/graphics.ts:124:32 + ;;@ core/graphics/graphics.ts:122:32 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65348) ) ) - ;;@ core/graphics/graphics.ts:125:8 + ;;@ core/graphics/graphics.ts:123:8 (call $core/graphics/lcd/Lcd.updateLcdControl - ;;@ core/graphics/graphics.ts:125:25 + ;;@ core/graphics/graphics.ts:123:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65344) ) ) ) - (func $core/interrupts/interrupts/Interrupts.loadState (; 256 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/Interrupts.loadState (; 253 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:73:4 (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch ;;@ core/interrupts/interrupts.ts:73:39 @@ -23299,7 +23204,7 @@ ) ) ) - (func $core/joypad/joypad/Joypad.loadState (; 257 ;) (; has Stack IR ;) (type $v) + (func $core/joypad/joypad/Joypad.loadState (; 254 ;) (; has Stack IR ;) (type $v) ;;@ core/joypad/joypad.ts:60:11 (call $core/joypad/joypad/Joypad.updateJoypad ;;@ core/joypad/joypad.ts:60:24 @@ -23308,7 +23213,7 @@ ) ) ) - (func $core/memory/memory/Memory.loadState (; 258 ;) (; has Stack IR ;) (type $v) + (func $core/memory/memory/Memory.loadState (; 255 ;) (; has Stack IR ;) (type $v) ;;@ core/memory/memory.ts:119:4 (set_global $core/memory/memory/Memory.currentRomBank ;;@ core/memory/memory.ts:119:28 @@ -23418,7 +23323,7 @@ ) ) ) - (func $core/timers/timers/Timers.loadState (; 259 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/Timers.loadState (; 256 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:148:4 (set_global $core/timers/timers/Timers.currentCycles ;;@ core/timers/timers.ts:148:27 @@ -23489,14 +23394,14 @@ ) ) ) - (func $core/sound/sound/clearAudioBuffer (; 260 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/clearAudioBuffer (; 257 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:207:2 (set_global $core/sound/sound/Sound.audioQueueIndex ;;@ core/sound/sound.ts:207:26 (i32.const 0) ) ) - (func $core/sound/sound/Sound.loadState (; 261 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/Sound.loadState (; 258 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:133:4 (set_global $core/sound/sound/Sound.frameSequenceCycleCounter ;;@ core/sound/sound.ts:133:38 @@ -23536,7 +23441,7 @@ ;;@ core/sound/sound.ts:137:4 (call $core/sound/sound/clearAudioBuffer) ) - (func $core/sound/channel1/Channel1.loadState (; 262 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.loadState (; 259 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:131:4 (set_global $core/sound/channel1/Channel1.isEnabled ;;@ core/sound/channel1.ts:131:25 @@ -23658,7 +23563,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.loadState (; 263 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.loadState (; 260 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:111:4 (set_global $core/sound/channel2/Channel2.isEnabled ;;@ core/sound/channel2.ts:111:25 @@ -23744,7 +23649,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.loadState (; 264 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.loadState (; 261 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:105:4 (set_global $core/sound/channel3/Channel3.isEnabled ;;@ core/sound/channel3.ts:105:25 @@ -23794,7 +23699,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.loadState (; 265 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.loadState (; 262 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:130:4 (set_global $core/sound/channel4/Channel4.isEnabled ;;@ core/sound/channel4.ts:130:25 @@ -23868,7 +23773,7 @@ ) ) ) - (func $core/core/loadState (; 266 ;) (; has Stack IR ;) (type $v) + (func $core/core/loadState (; 263 ;) (; has Stack IR ;) (type $v) ;;@ core/core.ts:404:6 (call $core/cpu/cpu/Cpu.loadState) ;;@ core/core.ts:405:11 @@ -23897,7 +23802,7 @@ (i32.const 0) ) ) - (func $core/core/hasCoreStarted (; 267 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/hasCoreStarted (; 264 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/core.ts:32:2 (if ;;@ core/core.ts:32:6 @@ -23908,7 +23813,7 @@ ) (i32.const 0) ) - (func $core/joypad/joypad/_getJoypadButtonStateFromButtonId (; 268 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/joypad/joypad/_getJoypadButtonStateFromButtonId (; 265 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $case8|0 (block $case7|0 @@ -23992,7 +23897,7 @@ ;;@ core/joypad/joypad.ts:251:13 (i32.const 0) ) - (func $core/joypad/joypad/_setJoypadButtonStateFromButtonId (; 269 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/joypad/joypad/_setJoypadButtonStateFromButtonId (; 266 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) ;;@ core/joypad/joypad.ts:256:2 (block $break|0 @@ -24105,18 +24010,18 @@ ) ) ) - (func $core/interrupts/interrupts/requestJoypadInterrupt (; 270 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:223:2 + (func $core/interrupts/interrupts/requestJoypadInterrupt (; 267 ;) (; has Stack IR ;) (type $v) + ;;@ core/interrupts/interrupts.ts:221:2 (set_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested - ;;@ core/interrupts/interrupts.ts:223:42 + ;;@ core/interrupts/interrupts.ts:221:42 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:224:2 + ;;@ core/interrupts/interrupts.ts:222:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 4) ) ) - (func $core/joypad/joypad/_pressJoypadButton (; 271 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/_pressJoypadButton (; 268 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) ;;@ core/joypad/joypad.ts:186:2 @@ -24213,7 +24118,7 @@ ) ) ) - (func $core/joypad/joypad/_releaseJoypadButton (; 272 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/_releaseJoypadButton (; 269 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/joypad/joypad.ts:229:2 (call $core/joypad/joypad/_setJoypadButtonStateFromButtonId (get_local $0) @@ -24221,7 +24126,7 @@ (i32.const 0) ) ) - (func $core/joypad/joypad/setJoypadState (; 273 ;) (; has Stack IR ;) (type $iiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) + (func $core/joypad/joypad/setJoypadState (; 270 ;) (; has Stack IR ;) (type $iiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) ;;@ core/joypad/joypad.ts:135:2 (if ;;@ core/joypad/joypad.ts:135:6 @@ -24375,58 +24280,58 @@ ) ) ) - (func $core/debug/debug-cpu/getRegisterA (; 274 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterA (; 271 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:6:13 (get_global $core/cpu/cpu/Cpu.registerA) ) - (func $core/debug/debug-cpu/getRegisterB (; 275 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterB (; 272 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:10:13 (get_global $core/cpu/cpu/Cpu.registerB) ) - (func $core/debug/debug-cpu/getRegisterC (; 276 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterC (; 273 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:14:13 (get_global $core/cpu/cpu/Cpu.registerC) ) - (func $core/debug/debug-cpu/getRegisterD (; 277 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterD (; 274 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:18:13 (get_global $core/cpu/cpu/Cpu.registerD) ) - (func $core/debug/debug-cpu/getRegisterE (; 278 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterE (; 275 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:22:13 (get_global $core/cpu/cpu/Cpu.registerE) ) - (func $core/debug/debug-cpu/getRegisterH (; 279 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterH (; 276 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:26:13 (get_global $core/cpu/cpu/Cpu.registerH) ) - (func $core/debug/debug-cpu/getRegisterL (; 280 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterL (; 277 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:30:13 (get_global $core/cpu/cpu/Cpu.registerL) ) - (func $core/debug/debug-cpu/getRegisterF (; 281 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterF (; 278 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:34:13 (get_global $core/cpu/cpu/Cpu.registerF) ) - (func $core/debug/debug-cpu/getProgramCounter (; 282 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getProgramCounter (; 279 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:38:13 (get_global $core/cpu/cpu/Cpu.programCounter) ) - (func $core/debug/debug-cpu/getStackPointer (; 283 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getStackPointer (; 280 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:42:13 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - (func $core/debug/debug-cpu/getOpcodeAtProgramCounter (; 284 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getOpcodeAtProgramCounter (; 281 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:46:56 (call $core/memory/load/eightBitLoadFromGBMemory ;;@ core/debug/debug-cpu.ts:46:38 (get_global $core/cpu/cpu/Cpu.programCounter) ) ) - (func $core/debug/debug-graphics/getLY (; 285 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-graphics/getLY (; 282 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-graphics.ts:19:18 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) - (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory (; 286 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory (; 283 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -24858,7 +24763,7 @@ ) ) ) - (func $core/graphics/tiles/drawPixelsFromLineOfTile|trampoline (; 287 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) + (func $core/graphics/tiles/drawPixelsFromLineOfTile|trampoline (; 284 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) (block $3of3 (block $2of3 (block $1of3 @@ -24904,7 +24809,7 @@ (get_local $12) ) ) - (func $core/debug/debug-graphics/drawTileDataToWasmMemory (; 288 ;) (; has Stack IR ;) (type $v) + (func $core/debug/debug-graphics/drawTileDataToWasmMemory (; 285 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -25113,19 +25018,19 @@ ) ) ) - (func $core/debug/debug-timer/getDIV (; 289 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getDIV (; 286 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:5:16 (get_global $core/timers/timers/Timers.dividerRegister) ) - (func $core/debug/debug-timer/getTIMA (; 290 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTIMA (; 287 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:9:16 (get_global $core/timers/timers/Timers.timerCounter) ) - (func $core/debug/debug-timer/getTMA (; 291 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTMA (; 288 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:13:16 (get_global $core/timers/timers/Timers.timerModulo) ) - (func $core/debug/debug-timer/getTAC (; 292 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTAC (; 289 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/debug/debug-timer.ts:17:2 (set_local $0 @@ -25148,7 +25053,7 @@ ) (get_local $0) ) - (func $start (; 293 ;) (; has Stack IR ;) (type $v) + (func $start (; 290 ;) (; has Stack IR ;) (type $v) ;;@ core/core.ts:25:0 (if ;;@ core/core.ts:25:4 @@ -25170,7 +25075,7 @@ ) ) ) - (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory|trampoline (; 294 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory|trampoline (; 291 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (block $1of1 (block $0of1 (block $outOfRange @@ -25189,7 +25094,7 @@ (get_local $0) ) ) - (func $~setargc (; 295 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~setargc (; 292 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (set_global $~argc (get_local $0) ) diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.gb b/test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.gb new file mode 100644 index 0000000000000000000000000000000000000000..066f59504adfa2361cc965c0e50f4ff131571a95 GIT binary patch literal 32768 zcmeI4Ur1Y59LG;$)T>5&ovmEmrM(G3QfG^`!h(d$&GjZm6ISOR3RalJ))q!vq21=X zELFx}d)gj+SV0)<;xV~gyU&{B3 zIk~^{`*Y6uoO8q%@AmfID)*IZZwo%>YAiSI`sSB~h5N0nrS1~@fO%OfQ`!%G^f7CD zaR0)ihYx?acI(#J`3r47-+%bv+UK`!9yiZlym;ZvyJwD^O&OQZT)NC=W*C?2I6Gp$ z_1F4{=_zfS8>M=)zSQ`(=W+2sqUcH#`x8Fnv*H&npS4}s+Hkf$F*bSoX}Nv+eC4{~ zZK!Lj?^F)9_8d6sx0v=%@p57+Iyq&;BBRNu!#eH!<6}zp$M5buIkvUE?o+bw_?ogV zg%wXHO!kvE%Xxs6WV6?Wdk}T70NqQ4Ssq26er;IUJ^p zxw+NVbLToc4Sr>Rl}@|e(jN|!O(Tf-OlJ4^RF6K=FP=@)?XIjrRIaR7 z+JaC+gQm^RX`0|obEcV!*^(uE6hl@h-1i=8F@rb)K0 z(`oQ{WW3|Vb=|)svA<${ zq5{QN``vE2{_$}+9{E+(>-GCZ{?)5AS0OQ;Sc}}xl@+oBT;hDuyhcZ-r|0M8{Kz9t zA>~IRe*gacm3o!)BGwlQ(QP3K{+1=~j>ki@rTs1EHZ`>fzpDQC{!$c4)RXs4^idlQ zyWOT4iwzBtMP%swrc$%BWRt|57VCF&nWk;acyVLs7Rd9fX{s6usaztPvBAM)(s2d{ zJsz=|P>A>h0_3N&y@RuSzsZ(2Qc)HcY2|@HFxcPU*GKVGS4i-szJ-OE8KO?lq@za% z258fTC1xo1hx%q`Qz_e~lWJLH4-L_2p*!dU02n9E>#u$B`bMiX#c%j ziX!JnSpx&fBz@DaS48&i*U=n{|L@n)w6iRKBh5r~WOQ;WIx)$L;ROAp$9TJ`WN!qI zaCc;KGCDCedg8UG{+0NZ8^M<-a`)?O^6Mvg)*HN+^DYbrU!iQqn<0a3y0RxWo3l5A z-s0<&=QG%T?Err`LBU!Jf1+*TVueIGGbS?`&upqGQ%s3UOqNU7vP2y(;jO7e;Z!+u zSZ2C;W=l<(mBHuBB^+6zo|kB=sYKz;a%NO!dU$4QO_`O!FO^HgWr;>!LanJp;k|NZ zQf4;r%zZUw^1<^Ru@vzT0@W-=FuX%k9i^Z8YXiCEkB@ z=+{Hx4=;Wj$otr`iy7;=(}^dASBrtfZ@EBX>C1cF{*D&y_mlkTioZqsqq*+-J-_zn z?c({wo&28u8INKh00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY q0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00J){fqwzysY(|B literal 0 HcmV?d00001 From de7cfd8e15ab681f81711171ed35f1d8a0b6185d Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sat, 17 Nov 2018 21:09:54 -0800 Subject: [PATCH 08/18] Passing the halt bug --- core/core.ts | 8 +- core/cpu/opcodes.ts | 14 + core/interrupts/index.ts | 1 + core/interrupts/interrupts.ts | 14 + core/memory/readTraps.ts | 7 + dist/core/core.untouched.wasm | Bin 41653 -> 41752 bytes dist/core/core.untouched.wast | 5307 +++++++++-------- .../testroms/blargg/halt_bug/halt_bug.gb | Bin 0 -> 32768 bytes 8 files changed, 2719 insertions(+), 2632 deletions(-) create mode 100755 test/accuracy/testroms/blargg/halt_bug/halt_bug.gb diff --git a/core/core.ts b/core/core.ts index 37719b81..285d0d47 100644 --- a/core/core.ts +++ b/core/core.ts @@ -2,7 +2,7 @@ import { WASMBOY_STATE_LOCATION } from './constants'; import { Cpu, initializeCpu, executeOpcode } from './cpu/index'; import { Graphics, initializeGraphics, initializePalette, updateGraphics, batchProcessGraphics } from './graphics/index'; -import { Interrupts, checkInterrupts } from './interrupts/index'; +import { Interrupts, initializeInterrupts, checkInterrupts } from './interrupts/index'; import { Joypad } from './joypad/index'; import { Memory, initializeCartridge, initializeDma, eightBitStoreIntoGBMemory, eightBitLoadFromGBMemory } from './memory/index'; import { Timers, initializeTimers, updateTimers, batchProcessTimers } from './timers/index'; @@ -133,6 +133,7 @@ function initialize(): void { initializeGraphics(); initializePalette(); initializeSound(); + initializeInterrupts(); initializeTimers(); // Various Other Registers @@ -286,7 +287,8 @@ export function executeStep(): i32 { // Check if we are in the halt bug if (Cpu.isHaltBug) { - // Need to run the next opcode twice + // Need to not increment program counter, + // thus, running the next opcode twice // E.g // 0x76 - halt @@ -296,9 +298,9 @@ export function executeStep(): i32 { // 12 ld (de),a let haltBugOpcode: i32 = eightBitLoadFromGBMemory(Cpu.programCounter); + // Execute opcode will handle the actual PC behavior let haltBugCycles: i32 = executeOpcode(haltBugOpcode); syncCycles(haltBugCycles); - Cpu.programCounter = u16Portable(Cpu.programCounter - 1); Cpu.exitHaltAndStop(); } diff --git a/core/cpu/opcodes.ts b/core/cpu/opcodes.ts index b59c02f3..46a01b95 100644 --- a/core/cpu/opcodes.ts +++ b/core/cpu/opcodes.ts @@ -70,6 +70,20 @@ export function executeOpcode(opcode: i32): i32 { // Any other value can just subtract or add however much offset before reaching this line Cpu.programCounter = u16Portable(Cpu.programCounter + 1); + // Check if we are in the halt bug + if (Cpu.isHaltBug) { + // Need to not increment program counter, + // thus, running the next opcode twice + + // E.g + // 0x76 - halt + // FA 34 12 - ld a,(1234) + // Becomes + // FA FA 34 ld a,(34FA) + // 12 ld (de),a + Cpu.programCounter = u16Portable(Cpu.programCounter - 1); + } + // Split our opcode into a high nibble to speed up performance // Running 255 if statements is slow, even in wasm haha! let opcodeHighNibble: i32 = opcode & 0xf0; diff --git a/core/interrupts/index.ts b/core/interrupts/index.ts index 87f8af93..4e51ff87 100644 --- a/core/interrupts/index.ts +++ b/core/interrupts/index.ts @@ -1,5 +1,6 @@ export { Interrupts, + initializeInterrupts, checkInterrupts, setInterrupts, requestLcdInterrupt, diff --git a/core/interrupts/interrupts.ts b/core/interrupts/interrupts.ts index 9cc15d59..f67def8c 100644 --- a/core/interrupts/interrupts.ts +++ b/core/interrupts/interrupts.ts @@ -66,6 +66,8 @@ export class Interrupts { static saveState(): void { storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x00, Interrupts.saveStateSlot), Interrupts.masterInterruptSwitch); storeBooleanDirectlyToWasmMemory(getSaveStateMemoryOffset(0x01, Interrupts.saveStateSlot), Interrupts.masterInterruptSwitchDelay); + + // Interrupts enabled and requested are stored in actual GB memory, thus, don't need to be saved } // Function to load the save state from memory @@ -78,6 +80,18 @@ export class Interrupts { } } +export function initializeInterrupts(): void { + // Values from BGB + + // IE + Interrupts.updateInterruptEnabled(0x00); + eightBitStoreIntoGBMemory(Interrupts.memoryLocationInterruptEnabled, Interrupts.interruptsEnabledValue); + + // IF + Interrupts.updateInterruptRequested(0xe1); + eightBitStoreIntoGBMemory(Interrupts.memoryLocationInterruptEnabled, Interrupts.interruptsRequestedValue); +} + // NOTE: Interrupts should be handled before reading an opcode export function checkInterrupts(): i32 { // First check for our delay was enabled diff --git a/core/memory/readTraps.ts b/core/memory/readTraps.ts index fb716d60..194e5ccd 100644 --- a/core/memory/readTraps.ts +++ b/core/memory/readTraps.ts @@ -6,6 +6,7 @@ import { eightBitStoreIntoGBMemory } from './store'; import { eightBitLoadFromGBMemory } from './load'; import { Joypad, getJoypadState } from '../joypad/index'; import { Timers } from '../timers/index'; +import { Interrupts } from '../interrupts/index'; import { splitHighByte, hexLog } from '../helpers/index'; // Returns -1 if no trap found, otherwise returns a value that should be fed for the address @@ -90,6 +91,12 @@ export function checkReadTraps(offset: i32): i32 { return Timers.timerCounter; } + // Interrupts + if (offset === Interrupts.memoryLocationInterruptRequest) { + // TCAGB and BGB say the top 5 bits are always 1. + return 0xe0 | Interrupts.interruptsRequestedValue; + } + // Joypad if (offset === Joypad.memoryLocationJoypadRegister) { return getJoypadState(); diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index fe564f01756e8f90dde7cd5daa7f88474b2548db..9abe094516c0bdb15b9842a84186f4b0388556a3 100644 GIT binary patch literal 41752 zcmd^od3;?}wg1`Y4jE3GoVFlPMDESGlrprX^9(&n(>A4TYLkK}P}1bK&79tQLsJA2 zkU<5c%rlhH0TrA8M~bN6a{zHdeJW1R37+VCD!!-o_x-ND&$;I&H!b-2eSZJ^3O9RN zd+oK?UTf{OhjWhAp6^qZWvPqZ^QuOIf7W@Hb)FhgBj?#8BaB&$AZg(j1C(`MQo~y3 zRhUXBi8E@QH_7Daz|=qxKw26QIh6sV75jkwkj;Ne#Z>Sw5sxEkCGBJ~k*H4KUv(A! z)Ff(ZoT^Ecl@%2+0wj}h{8$MQ{u4yDO4vyy{}VydPSjS!Z5t@iY3bX@MKuYxdr-&C#nExeD{v>Jy4iL#0kpMhV z>?cVk-QmBa9Ye!)1PuPg9rO{sBrzDUwFBgV%cFr9$4n zNaL8+il|;kY)su^vX1;3^QTx^j2)1u{#(rbe-SIktr1c!fBs)k@c%~}qkn~xD_9ID z*uSDe{};LRU9ExN(!mQl__hwdql4e*;P*QCtqvw2p=bt;DbXgR#Om$U7Rv-WQEIS^ zr7}jzSfkhGITfF(-IDCf_6_9r*jBP*pnrSU4(m-d+2L%*P$9cI*WQ=4eyfg(rv3iT z#+})Y9)GB_Yry)wIyzdorN7YC+mOq)_Y4kn^%ty{m1Bxq3)w;IH>xV%etx#K&|b(| z|D&pU2iiMz;@x)b&h~ucK#qmELblU-k6oM37S;{y84O^qwU6DAEo>a>+m_9>Y;SGv z8|=;IoBM^3hN11-vpMT`%I)aQw&$XGm)b|1>9=lZXgO=^hNcZIo6p+1zNOJ`Yi`*X zv!;$IX>ERcQ%p?>av5&j>7_u)8b)x1%UQVh%IG|vwJ#x)vf79CL#@4MZTiP~l zX)97!ci7k>so@^BrlApIu)e7+%D2gGG+Q929NDmD>!!`kEt{L$Fx390BJQb&jV+QI zht;kIgCe7Gc(u-u(l;H^;5VMWW^>DyjjKx09WixGiNGH@rLB2=)7Djfn_q1CsM=zt zKuw#{f-zxcYZ2<`+G3_az4>r|%c|ySdu~UE^`L!B zXRdvB1CZ><0dePs_QAFRa$|#7OzQ#rNCLEV^=4PK7urk8?zWS_xT^UK>mIuTv9{(7 zzO_#>+Yq}~$NWa?K07%y*hz!`&^*a^+I@ztk~1^auxa zb$`Rk|E-QH3m~=stfrpd)tMb=87d486~a1yQT5w7oiz8$P-XM^Gs-~yO&v|l+XnVD z4)hM>HnsO=3x#ZmU|{9^yBrsg@8W61lvnk-$~ zQ^@ASs{d4nF>`Z!UqgF;Pci==s?xsSuKxK~)kF44${z7%rj<9VsosvSOsS@{?W7R% zRa!YI<<}NcoWoU5w^L_%bNoq?-ftuQI2K4F_R8pgfUOy-x6>+RH%+o^;PX{a?IbLr zxZsLm9hOL1PEFDw(%0s7*CFBtQQra`v*RnhQ{0%ZcCmdF?Y+1gSSA%TES#j*PLimU z)Hz|Lxu{ejmC)wepaT}_))cz^(N`}rwKjD-RTf&cXIhqXo5IR0GY`M{_$|P1A%2VS zTa4cl{FdUk48P_0t-$Y8{7%DfC4N4B4W!tgjQXQW05y^W3Ru1upqZ3en(!519t~io znucCfXi1@^Z=fm1AGOiQKM%w*%bf?vT{O^$;#K}Lwi`>sHOw^Ow;I1S_^rinR!VW$ ze6_LOl1OZQ+5+RqfXwOyN)kayGE%aJC3Qi`)JVx%mK+t7yd_dH%fUbPqshUanP_~D z;|MELYAKjG+w$Qy`UjMo^x-(_2wX=Uf%B*%@GvFf+$zj(2A*~JosQpn{9s)&8}Vxq z#_m-p*pC|55$jWkT*Ang5ZTMfGl={hkpz-sAulJuR{$Us1(5!;LC#lA#PP8N^(_En z`RSvQ(_%^EaCH6sL;@dIBl#U7PcaA1uRn>+5=QWsz(@{Z7;(s%y-19*=5>fX$;kDH z{1+oPARMXYWx=cHM+wkkauM@+Q#cw-)JMi0y z#xq^~(+%`J`1K;U&)Grc+JxU*@!O2-R{YxV+k)R2_??O0+weOJzqjM}4#1s_-#Pf5 zi{Dna+I8F-car}Ai1{n~@gO3?wTBS-Bgk`Wok`Skm9h%Ed~1y}9j!vY-Aq685DxgZ zgoA!u!d)pVlPiMd4Oqc|4H>ZW0k+#Y8ra;)+@bMuX#Qu)og#_dV9aLrZy3Kl_+5bC zJMp^^zl-p@7{3t_qsu_)TTpl3ip-vb&(y;lh_8R&&g^mgE0KPU>DN@|BIj$O^-n|F z>lI{gb-mRDgLqtg1U(#8s}tUFPEoyQC(y=h$BnxQx5BM-tK2$ws(Y9;N>LWHl%#}aSwM~%bN$%_IHOu*f^z zzfG+M2m$t1)Hz{B92w8XoVev4y5Kq=+E*&lr| z(VeopQ!!dhSkC|m)TEGd-{Oz%iwlNOs{N7tE~h$>@tkv#QX}A6Y*#uCUa4Im&`!nO zbUF^ZAEHRb*}_L{6{GA}>*`~e9xT6dT{;F9BcAjwSF3}BWgr=;Bl&Rh3GR3+^!}QQhf84LZYlO{$~6l|XWAeZoy4o^V~a9zzbe3Q7yY zxQ0)pl9|itN1%HfH67iVE7*+fR}R!C;U}OZm1L#^sc{yQw;WCz;|{)!0+)>*De^$l zJ#>&*KdxO8WFqEdbj8zlrETPJPyn)0fNh}DLpp_`asWb7SpX0sIp~8l7-NPibl1l~ zead!^12gg0oleP7{;{Z+=&gr^OIbsHtl*qQ3e+wb2apy+sVX3U7i@$7CzV!3pDblH zO^Vwbc{pM*?1aPp!Vhr!09Ru>{)-ku<@lB2@QE=^*@4_XjJJ(jjGh8Uc67{eqYv7YYw+EgX@n*#b&jc={3w?Qo=sK#|eClieAL9-Ae za4j`O1kEOcRcf+u9G%1fI7F~94tEHVie2csTZGIcW-3ZK@(w>7LkK@22XYBPo|Xp$CH)G&6x12oj>QL85>v9z}(2LhnqTN+*aqro|B4JR0?p0!I){uqQ-86X0?r4LQJJ zgAV8*@?`8_2ADtv89PuFFAiD^g9SlKF-&6680ubtXlOh80}(PYmP;Ox!K_fvarTgk z12iLy7GmQN2T%w~goE9ZM4Li#Pd$yJCJvTQtObZ;$7uZ69>i4~Nehx_+ z2E_HwzvD!UqZ}Jb!ve-uqIdfgZ5OEOuE+Fh)6y{PNn@b{5%d#E1A;?2%pQ5f}lU&UQ|Lyn7oteqKv` z9LkRM99CgHs5jCJkETZ_qmA1eS5&?RL#zC@(~lgu|A0$C=?ZHlIvJg=Nb8ACI-Nihb!-CcBC~+sf_bpD-Gd@kQgk5jfPpM@GtHrg6#-G* z^$?+rvSP1*^sQ%`T(pBE{3hX7OVYe|DF_V+iwA_!2E&Y5m^-UEU&K;15G{=7IvC~v zZW8LCUp7pq?iZ>H3}l{|Q_V3nqV6^@ zYqbXIbZbz zj)Ma!L#j&KYNwBDYfSPO!AlizV`xFTuxxe$TyyFr_fb2oyvro|1fn8Tm;g?3yeo_4 z?;ck^$MN2SOlZY>l{?pQj>8-;mIBK_bvh(ooB($o`y9?6&N|smiJ=;xU{7ogr$U+r zp7sUxjC<%?oUI`L-I%(KV-!VIWBDWSd+-NtO|5owUroSgea#M%e~KabH|0#z{s$a) zICklJmD$bJ06Lj;szF|+fZ<`Ddr5FB{`zZu{+8}M5L@Y_Q0 z+e2{V0sJ;?p08md%)_RgaqAAz2!7fT(COF7Sn6onBtNh z!-QEH^F@*+92~!LsNTXNF=c1&Lo#!}^6pn~^}PF3F7tqLmH>P~Cb@SJPXci#zS3=k=%2?fJt#FE zRE$WChg3#VsQi9b`v7);)+P`~7mdt&XF{dfW0eyNmNs4<=Ox4m2d{7$rpz;ur z20o-Rk^-`a*}#W&0}q=9kVFF?MgtF<29Q&1fWC+E&bpC*VIP9Cw9#s(YHdvL+rz-BmTQFaf_h071TT+$MLmyTm7|Z(@hQB-WG39++A>ISR34&7Pyo+66zhdJuv~*HqWmj^2zDoQ4l;1Yj-mfJ zXy{=Jz%Ih|ao7oWqvZP*%Fu$f?q~t|ya?9km4}EKxzB?d?|KU1Cm?SyYUnFfD&g1F zVT;CBm^r?{3T_MS-iWAq%Ifv&x}7O(|6^zl62MV+H(~tQ?I(4&!CiLy3F$U2@@Rse z5Q0&Ld?EM=61*8nQW_x`Ap3>j{Sq+*?F2)V3<`Q7}^*i_$gMHh~URH!IS~F z)e!te5R9S0fRo_Q2*IC0Ls!_abx4!NC`5r!{24e$?iS|TpxEwVKo$e!X`%ROiKMi0 zJPkyc0&VY0XxY1!q<;#e!^DgAJP&NeHYaRyV#u%CRc~d!gl4e2DLo=WyU&00pW;*s zT6;jY(du?3s4J}Fq*YO?s8aADWqO80*;2PlJ3AM)h#daE|8Se_457Q3do0Y-6j4!ntrB5u@}uVH;HAbB1l7 z0|NJL8Oa$l*2sGXG+|DXaEMV$M>Eeb4+L3x5K~*oG2>azJE-yG$gZH=Pf8J_;|{X; zF|ZiZqDTi!sYnOtKqYu#BmM}yDio$vQIbEa`$wgA&vK?{cVl#Pl$&G-Y;Kdi1AoxL zx%lHRho6qkVxIl@%X|EN*Ccz14(nt@`~2ltA0x}Z`j2*>dyex2c>?zJc&%Ws1%jM( z+-pNTo>JX({h?9F*&;c1BV+ZY!N*xm*P%R5VQh#|;%yW|jq$pIa* zwVjH4Z}nBTdu|$?_BQJ%uw}Y1k7F|doR}_dAH+fxaAxIUEd?a1n~qxyAti|kXRi&e z1HQRld=lk~M_{?9>-`cNX-JpluCI^Lki?MYI?UZrA7?s_G`w=k04D#pX4)x<5^u|F z;{rTMwrL-QHIBJZ~!^nXTSd@83j8RS&Tt zvnR6^lXDG)Wb~ggY?BQ+l}y0Vf(;ZlZ6e3rR;-?&Ok8=oXQd$snRa+x+fuPiM=GA_ zoRC(GjE$ve+}&Dlx!XVm>UX?8syv7xpw~jvP6Q=fSe+<_2$}5=5VsQ=WOCUEEj7eGBQo^|E6wUGQo76 z`JBcpnPj#=KF>@J1D9APGvR%Um|rM|Y!?gn$HKzD$AUtFuEbV@uK)KCapZX zp*2u{ps8`s_OL%Kw(P;oMXJJKyi0xMc5A?nfvnkG?aqf#Y4;+wLoL2=1jf|gK z!PWzC>iU_P7y(S$q{H@)#eTRq6IAcY%uIOTDDn_)E7zkn4uq!YffS{Lq4nn|_*!zGvL<$X#c&ifLYEE4%(dMzh4vdP811nr$ zHctmmD&t-NtCH9lXy7IYJ%bo_MX-^RnG2P%bzmk z-hYje5BA}mCJSM=A1f8hNzn4_}aZvFQQ}LsbijQd;Gxv>I8k6wMPn7pl zSug)Ym`nj@Kmj37cT+uk#9Cw_5RM;_G zK&hz28V=j;m6*(zQS>a>N0R==hH&eh2 zP0NjjmYVBMfs>pxOha$`xL@o~2$#CMCq_p>oWa6Iwds?46t zs7=Xpw}6_b6&!Spi2E>*bxqjqigyT9<_={xUO)o`Q@gZ!P5)zsg*gn2qF4HuLBidc zsYZICK5qqO2sS$nffAiz8rXu(TPj)`tQx~sqj+zZ3C8990?B_HRF~yvI@JM+cQ~Ul zj1?rr;$*yr=FfXact8a&wN#=GmP%RmHZOX>6at^ks~$bIZ;Dmm=2X10#e?w&4?7$pcsOj2+pB}Vn!}jtubIkVpk@k#!J5eocGb8Hay78v%FWl*Vl|RE579ym z&Y+Y#ga>aBoL_^nQ||7XY6inKRSfn}&?^w(KC*HzaNp_F@FXhCxzN3c_pu^57rP_e z;)vvoD)$nFV?!dm6pEDTk+qTgF2;LhS>#@(bOj8*y^>5w+cEM0Jmub{?c<&S{wkd2 znLSu|L$bS|oOQuqT%yc?z8lw;WTdXd>PjMLR~u6_q_1TVOx|g`xLw@sT%~yWF&iDm)N(Z)7qRS^POsK0RA|K2%KIg%!DsxX=1we?-8Ry30^J6B%@iXT}Ieykxw2m~KmWdFpp=B2&IkNc-*XH-QaiZsT?{~Nlz)2V6 z2&;GxAe9E|St3(1aKrrsAy<(e;OcSFbE=lg4EZ*;jhBmN*(>>93bQg41cRpcthmI6 zRmRp8_pJOXSYmETbC()7EwF+<9+ka|+-nsM@W2+%>THjv$9hXr?@c+=EbjvJBXa?Q z19Gsc=t39}m<6Vf<#rVB5 zbAkIl2o_MO%t*o;5qmoV6|=oP?p_5ud>uL~F1=%U!|wG29(J$~wnvuxd*r4Mq#h_S zVM(QgccFMEQWbQwF(8Kgph>m`^tefcOGgOa$%-DDz7X5Gqz3?K|83k^xe&V!S_>`& z<8h9Io`WR|I{=(k0+IZm3y#-V-8DddWynw=)6ztb?z16%3;SiHBH$z33ACvfK>(Sei=n)l z6_b(HbBS0EUb6wzZD4{#VBdDYR@*CK3t%2OA6Y5v3*uT)3ib)$+$4{sg8z=IHs4ava% zi>r55fs#$$;XWZYiG7%3%!4>u#GPfznd8F0&sbiwI}KIp z9JGTd+Ht43SRo+ZlW7*f^DIc5Z&6Mega3ljgxq2_Jg76pn5R?MdBe;(yB*9NF1rp7mGeyK`0}f0Or8mi3Syw1N%mBjt zit}@BhqC}vE4r}_ltUz;@zSdf?94<=353YjX+|I<;6NofCa@pjSsj!@dtlr#iQ!-Z zyUawHQu&mf#~d)WPkz=Zc3OAbliUNE3Y~0M{fwew(NJqiuz(AYp%o@6?+NqgTTjyfdaviK*+y^+tu)Ek; zm3qXh;@v&z+31}_vX6~DlBev3OpWD1q&K)0frlkV+0ug%mQx#I%l~b1Y;Eb z!ZUO~q|hV)Mhsj}SvW;FINMrOGYg2DPieq?*AA>3G81Hd7>{RQk zmb%mHEln`Aom~V8+}zOP6Lfb;*xjW(kvNr z=?P{V=l}@beTuWt3aGUdOIyW;WMfOqFwh$zzCCbA4=%jA6z#g&6|wxu6G*YXw#19_ zX2|s9AUEf6-wH&^v_%7sXNG8BxB+gWX?XS!ZvRVG9gZzkrU7CeNK-h}i$Wn;T;wR! zVUf2uP!6byq$mhQ8CgW>U8H3M0cB*7x2T+qK_Bg5)izvBxHi|lqfIVL9EiTvN z3c`t20FFH#4<|iNhCN=)6{qeo?IPxHU+MlnUPdJrv)?p+otW}PfsiFkJnwnu1`zBTz z?UqPjq#~@UhMy2ZONt)6C3^6dcuUF+9>jWy9z4Kt@W#W*;MIhKw}fVzHwtLbl5po} z5txAOc*)8!l$sz#;=urY5%Z zf&rllm4T1}S*iyF0kvtVx3t`VKSH@l^K@x%BVILgd;IO%WE0?!u< z9P}~JU=T+G%N}zt#GI0Xf5nL~(iMmu1ca=E4uNZ9Oz;oX>+*4dV!s6;lfB8OENo7~ z(^dW#t)ALieOgrN>B3engfq!$76C+Ov34z&AgF=vAi&y6gdtGf1$6x8qX0AAg3Ll} z$x~q$AqH+QMgW~#f&f?dmLkBeLP_<7qF*S0NryVY>3aQLdp_*ix5BQyFhSQq+afyF z3lY>gx@+QhEJ22JZPB={Ez(_Eq`S5lT|@Q7x_gV!J>50Vx9Hm9aa~)iySDgW>Do(S z*M1gu?dKDBZHeyM5MQ$}?eHH8n!1LG3tq#ul5ihKCH-Oea?ZS>j6vS~Bf~T0@ zr4Vx?tr-jk4l9v2u~BonOto%UCxBsf0{A=@@tCj2uHXao8umyo=e2(lp%q)Y140=Ggfb2YqvL?2i~~X$hiA<=Ae3=H zDC2-o#sQ&>1H$MyASvU3FdT;&SmvcHY(|uw$)Py#I5-RA+K9+|*~z@7nG z-|jsK-~P?;4WaN2q3{i%@C~8x4PlgTNDAK&3g5nF_=ZsUhEVv1Q22&W_=YgbHzb8` z2t&S|EbP$Rm=o|$yftCSyn_n6>W0upceLKH@I4wb5f2KK-;sm%e#0;kp)e7lFcG0J z5uq>pksQIyj*IbLSEo~RHquM7`8Z%bu+#{O?(UFdluv#N3Za@ec-m-r~ zXx5ddhpWtvH;Ag6``;xjm9CLbW{*UB+)SSzV3!IxjL|_l%S!~&nb2|;k^fkf#|sEw z1;RLY;3pn3u}K&=)7v6NWEy9Ep=jdz<5}v=po4*RJl-0D`sHMW#t<8nDe**jxgY!b zfX^jNL|)8LZ#zG#R28@xpH7b7hy-zX&j6nMOjYO;F|2OJ+(Yvg;2aE^wGaUmYY_tI z)nWutt0f4aRZ9^-n}THlQryG9=!|c1Y)-)6Av^?+Cp|igefjm}ceYXf%%Mm(WXMZmOIa_CazX&N$)GyN6FGe7F zXB7nfpa_WzPnQ1-Z=?DaN`4pteok^RZecE{#o3#M2NwyCQ>n0oUBeYt;Sz6HLU_3|>+`}@Kqc_wVP4C>lCQ?V;U|0W zqeu^~m3&OYk$lv_t1T@57Adn!%Gk<1k{>I{M;#onTmJi{EM8K^I*&*`&eclW!Q}(X ze_YCNbQ~#T9o)AC&D;zx(u{U+Zvo>WWiYFeGS+!c@~LYjb>!;A_oa+_RV-tjpGtnL zBp>aF{rR<&;b?hGoj*uE6fBaDI$|OIDrL!%GPZ*|5z?R1I^)zTRl!H7?UlG3FjjqW z0=|G_V`G61cH3AhgM&5}yI_iq(aq*|#l&pn8x6lk?G z^W{D>o+<*mr1L@y27atkA1s}+uuRw=dI(QVAgFg9SMCh zSCuq{KIvUKkdsUR9Z1Ksnji}+6jO2ACPFgvlefBpv zG&2cq-)2@||3+RJBy*0+yuuUT%**h99(lbZEhGGVIKto3BaCNLakaUs8ZURLnS>sK z@t;tWYK89y8{tJ5YrO-#SVoxpsWo+cn>+X{iQ2?iK7{P#U_=Y$d`BOhlD~R=6J;WY z-35OuiJQY-!6jydgK!jZ5gb*>tmRNCf#cZY9rKl%rm{nf+X@)pcmg9T0^(xXgZXr9 z<2=LEXP&{?$iF;{Ke4Te6cMK7B{M*l|1&c{W`r!uss@Rad@aU&n4??oo-$dgkD-js1!ReLlaSQSO7J-IyNDHHQzz& zt09;FXbhdD)xfbrHHdH-Te4iyasd>|Tsb~tjck-+8DTY>gUYf!{}Wj?MS3#dTjoxu zcpG+N{Y1$wnnda9DW&|5aCHLChiAu;o$v5OMa)lR1myf8kn3Rkd44zwn3+VqFg0;7 zurz~HIhMl3Wd?(r&fnuMRoJrU>k~)X`xWEn%Tl$FVSjfD?0e94!*8~=XCI69sE=WFX`ZC3YVH- zf8mG8Ydw904S0^mI}LYlPfK_!9k>So^(}dDm(!xY%HwvJ8{~2c=tlAeWBC(>zUp^r zq;R<_e3ynWSu4qM_m|)TW=I~_YCHNXJaUV)`>Ucq&&3qn4d`G`Exu}D$!ohnMJA8a z3OzkpcsIwhjKi8)xNwa}Rd_oC@$+#Gia~LnRJ<$v3Yx>_^2?lVU%|4$Y&`pNH47Wk zBi>5fS;qv#)sxqcbUxwr2PdKbf#FJnK0G_^6%gorH3;IF2=lK*iJSd5Un)`F*-m6f> zaeuAg>BwC;W;UlXMa7va)yrWh;MLld~Hg4Jeb88}OCo$Wx}?!~YIlBI- z?h$JZ2KP5;1^4p62*@WUY7d3H1c;!AFNBquo~KmMoDn?e>}_@Skn+*WG!XOlH>iZS z30X>6K#Epu{e}%`MK7J*-@yl6ixxQaktStNyiAh<4=N~~l%=5gb9Fb+06QP)1}@iF zYsPnJBK!oGixH*h@m@ph5LDvowm-MG+c^p&iTwd~%;ziA=u`9MG>-F_LJTVL3ii#B z!ONSBFJRo(@r8`XbbJxxaUEaGIPd!behK4PhcLdBajZQUU&eT)jxS$^wyJe}1><;I z9AQpfXydYvj-TfKr}C%h_)5m7>bTGNVLIM`IG*7J*^1TIu{s=n#;;=Mc>UYM)1S_p z31c(=WySiqjL*a?OgJ%1IsF8PGjAs8v2}b7<8d8tWIZeh2(yauq>eW+UZLZw8L!mw zHH=s3_*%xRb$k}$&Qdm)AgWUa9jhW))nkCCmupm!m6qywsV_s!3*_t*c7> z9QHP$^Up;bkKGZjf^gTHE=%I$inXwuVabD%sM3kOlBm^*4@hFFPW-3v@-UtFyd;j& ziMs{$G@ZCp>Kv;R_bBkrIfq14vZ}SGRNbFU_eyhPQiO(49lDOGmm&DUT)FxJ|X01lZ;-#*Cqbc_=aiy%87$;glGe;Gb z4h4AMv{pLC7Z{~ue4$Y~#upi-V|=kuI>wh6rDJ@lQ98z#8Ks-8_)cuCbd19p6eXHr z^Bvh*>D>RtQKwNl##b7pW861N$9Mx@c&wF<)z=xNV{^D%4yAKr`rXdB!HySN2{09o zbuq1J?PKBxeT?rhT1l{rjaD)~Lajt!FYvFB@SS`)Fwz$} zNua{J5l$dRDk!m>4UCMFP3IV8W&B+CQahrrM2u&XU{p*!yzfTqE0N&BqSjX?_Tn`m zAsAiyOpo?l?d=|Dy^?%DlVOe`bx-~NCef5ka&lU)>kHQ zkxuI?6E~2E01WSh()!AF|3D&G!o+@6)K_A^mDs73#DUvki7p}w-( z9jr#JWHr2RB@rg@&Z(*}aT|#Wz;K;c>njmHqa5ffUP1m3<>JlBcp7iib}zBrciHY` zwtKnlUSYdeV!ngE)>xhwYUftWo;jIknw4<@R4P_xB;{AH~EK7t@k|tyud%- z=AZBI&v)_1xA=78_-!N80Jht-2X6a(uT`W0nand-xnM&JoY|GZ5`hotF!~(#rFHaq z?oI3H3*4X9(Qk7(p`+j72DOfU7Y-Ay;465gaXhEeNyi92HoUI)^4Sd^-X&Zf%(7Qu zXBKHIO&>bOZ8;Y4g%!AzpFn6_&otI7c-Mq}1qYr>69-cvm(MD?SMwp2Dp*EXqpNJ^ zb|q0-NXxy(rc?1gAyOMn$x@PqF(Q;LS+-=sHDOjvvSN}24~1EA$%;!Ba55_)SqaI4 zzrw7fWF;jFZVR(2B&&j1bQI_F&jS8g$UlqtXEFaQ;h&}avy6XM@XvCX0eZ8HpYGff zQ`Pz%hE>IP7~*ZQqmSBnw`lm%!fLF|;BVrgCO-FMlfMb16FQCej#i^AHYBeo#XC3f zic&gTN8{zOl_v@qNG#=LEi)-+{4iFqF2Y*5GWzF*G$ zyhrkkJS}xX+7>1$FbPkm@>wxm8}~y~HY;hW%tOpz4QLGBP7P;~PmaNtfCIe7Dz1XP zS7Bwal2dqif`#aMHUHqI_(+=Zni;N&W1a?H>`0 zp#}0R|5zk}1<$nj^0q*g=AJV;Y)cxX)^Q{d;_+gt6`-IujP&58Mu_0WM|?`q#sQVC zBX7k_KxlwBhDPuaSsUIkM@9TWfpfhS||Qe#xXpIA5EAOQwXgC&JvxOdspPz#JO z56l4+iQp~CWPbPvI0ShQrTGH>d8cy(OqO>Mwqx+%D#i{^XUTF1%kk6r8AUF^u2QF2 zJu9tg4qiZ}*$dXz+R8Ru*lTTetZN)y>IJ7wsl;`KrTC5e=uzJ zHhdJNtAEFAe4}RbfP5mw@9e~MzBkj}Dew*Yn>F!i0@^V+G@HM!{;on-doR9_(>OSkm>xxAIu(Jy zcgS*GojbD0lcI3>0$C8W*UA(=lQXc!G+1#=6u7gmJ<{f?zV=E@I=)pjxU;JxKRb*R z+g)SIs*V>-A;h5m7)}JA`8-aw29(d*%SKpYPy}p~{KF3uAcHy(=r_5= zT>T-xBeWU@vJZ)$wZVVe*2c3M`SGz$_^#M$e*WypdZ{=#kSnm$v%|>HoQ0cA=22Qz zLs<+Xfv}Fn+}h}GT;II0Y1&*t9>Rx_u;RA%LdQ;g6RHD-qj3+u-j_dG3sndjMyTmj z?lbTqsRkIIH%|mei?n0grmo>EKYNuc9HTWoL=;Bw87+Zo>0ix{Q@tfqO6_2-YarKE z*h7<4#CGh72Z1s*w&UYfY(7;^MCJ2cp@^oB6?COi48lTy`ia_W@9f+(rafJ*NwYQ5R-KwRMz2HYtsJ3%(D@V1&096HCVbp9 zr$36iV2tGn4TXGtG*C)7GYhqG4I9*QAqIe2C3?4L40l7|HO3Q|wV`=qV76QFh08X6 zJF*cUrEFQ%wAe2lnuAtu+w5;_y0~+yuqM*L!vF=((D=g2(?C#aVwf>GhRJhjN+3a9L8N?Bf z4wFMzr%_L^V-R<=_jd40l376)e6qLY{A_M}@4)U=Ga`Hri3uG>O}Er+(yBNH`xwZk z{`0fF1B2PsWq`*qIRIW$26!Cr0^qgU2uB4&6Imh^xn?bz6H&XntGCyXzD2&cxlT{4 z8b0cjc6N0dz*X%XjP1ytUIurhbK`KYF9RPDqjB&X%D_kXF%EuX8P7W+BF4hNjci#F z8SKs>I5S=ORR~0f8hZ!$h15Kp$n&!;xsBN!_&n(O+0_HNGx42fI5B;jv{Nt*0EP8RE*p zjV10KZt|=Pvb>h>vwr*-_T6K0*p>zjYxvHB51HNitcfW31TkmrwT6T2Jn;R@U z&W#!>jW1-cpWo7-@7mFy?WF6tRb$gI`fp#?u;G#URQP$?|BJ%FlCIBgFTg-<<_3cP zC@iGE_-)R`^x~9!#HQ43}D2_gc#=xmH{l+^qgH~03!-n#F#4sSdPZI z`7(gzXq;Op16Yp6xkF_D%h5RZ{4#*$Xq>mZ3}87L=M9$uEJx$KJ!JsP(KzpdGJxf1 zoc~TO<67&+&urKu+_58@yRZzpay^-UQ5kd*K!fh$GU&?ncm7BjbP+&Mj#EsOO@8os4WsJVs_FtZeDQ8yABOA=dwe?%)MMio#zRx)|p)PiRHLLX_FnU zgnBzVXJbWTC_}7qpudnC=)F>Dn{8|i_iFRpEy6Y}5cTJ`XLIj1e2aj<0ImfnI-Bc| zJ&q0XG5GfwBF96n!d74xwm9%rch067{Jo~%5pZdnsDs9@Qe!sHf{hm0f{yI8H1`+x zS*}*6$P69!KB&~y-;vAqVK>B7l#j_bZ*R>Ou2ExF=s}g;}Isw^g1?8jfH^zvy;?T`V{2Cr9o(k+G6)>h#1H<;6mQi$lxs^M-lTr7pt zWk&SIkbaX9nS<1j>V`KrD?NE13Vg#r=TPs!Ew3B7=)$c=X-X%1J<}WNb>cPyXarY8 zMAS~t`9(FnUCkFkG=PUVHVNnbJCt^EB8ssyq7!$H*I7MSYq#~nE1>$^rSw@tL?R&S6IR?R*$NMUgpiAqcWeXoja z<>&YGcWBr6J|mR$vIhn`20HaN?5g%cJN?AA-2?X@9HON^`+(BE^B5d3eZh`vXMpd) zGN2{rTdg5w52>R<|9^XL`;I)Bv>Fj8?fWA%g=K5od$%{X=W=@p^Z}zHq)9`FM#KAt z6>2gkcqKJHsEX%zAuI-XTOitd1T}ZAi_BjR`Jw*>eLJ zZ`qCJ!T{IK#tU)2Yq*fj_M^+=PX9tN{-`l`QTC6iSLEs=MpcR(iSVU0Y>j=+V-G&q z#(C6CPSG}kapO5?u>m}hE8Uo=tFrj{cx3znsnh;;i^$+9!=D((PnhqJpPy8E`);B} z$j>(Hu@CLoDRuC)gb)>;H-(X|#lZsbF+(`J*wvpeRKr26GR35v*RQa5K+neTm(fqUe6u={2?Ib z4S(Sf5c7whJOspo;r)kzSUCJtWXw4VjW|Wbfej7{(c{7w4^e;7@YBX1vaV)UM79H+ z4`t{}6OA{Hy8K|u|FRkHaY8|$=r{)zzH$gE7Y{!(QM>t}ZDG65PSh@e%C-B|L$teO z_}?aK7wg=x-LFjqG>nakppRcaL|gvwH;lfGV_O8vHz$JW7z|r_?hq|C3_owi+|1#! z;4d0KnkG8J!HtP;8F!6z1-eiQT{L7bM5d}zdmv^zUAd&2;x4}Y}3cqLU!=C>P_SF z<<#bPW(^tLLBK4zaj0(_4lTBuJ=^Af*|%&M+K$!u@0C966@;b@!39<|^4gEUzHD6e zaZp=ue%srCP0F6Z0d(Y*z^syD&d)gUptGOdAPf4I?b{(S|7jGkl*7FA)i5y7n{Dr3 zg(KmPLhqiof#Mqc4-xMn7_xkT{Z(U^!i7N?304KOLfAhV-Hfn35-l>nSmRHIMP=7< zA>RKoP^MQV(ETpr`fmeOcEK6q`m+(?=s4<~pb+FQ#tdkX@mpvi;9tuDMmEPnz}LzF zMz*~|z`vCPjBICxfd8YW7UeX|{om5zmzj)z#tc5Ev*Pgoz0B~lk_gv74n6!K>_1=c z@P{=H9BlYQs8L(%QQ6@Sp)N5{Wrsh6y3`)O5h#}+B6|BSd;C>CEg~VB%k1bm%Xkq9 z0WU8H7!i>W@QQMP5fKRiuPg@`5s?t^-F8Go!rb@RM-~NVXM4U8wgDrZgL!_ht+zl* zm63a1dM~A6s8AT_7qOrO>11=~RpqO}8XdIS)%NSy_s|$Z%W;jZPu9m!IEd5Ee6+Fm z*?RwY3>;Qr+4g)k3VE%Ohf>IpcIoV11Jjw^Hnd~5{GCZV3C08tfq&hhVH&PKG)&_S zhlW{oqp5NMsrQ;G!hvi$1d@c$=*^>&pOw(LC9g>Ed=< zFObWCX*a|#l;XX^*1Mw73gI+`QCff2o#yg(SqNULDqiQpEvV?^c$cXe;yd_NxeKwI zgKK=eNOrfa_roV_lQ*iksTFPR9$R0?j#d(jMrm8se8xUo@BEc5Z)@J*-+M3wZ5#ai z4qEOv-ft)JGzSmZ4Pqyv4TU^7D90i!c+jrA7`oJ++tFdob1|Rd3z>% literal 41653 zcmeHwd7K?9$3CJUryGD#*RnV6Y?D3DBMI?1d(>F&wm zHp7lA5(L>42%9L%B5t@mi7W6FQQXkyfgt)EB)s3}_untj zbGLKPJ@?#m&OLXjDyuU;pe)N$?{v3J8VUYcTP$mf8c`!#?2!>95K#zYD7Us$Xef(i zD5x}*5REfxZK*XmIzT?_MIbE=h@7eb(uzG~KWOuxQZZHhXT|M!ysE0I8o#RQN%&J! zRa4_ks;#W7sE8#17>_6LV+}<3Pq5gk%8o1fpBUnHRb55Gwi5~D*>)^Z`cEbFe~Cm@ zA_0UIv6!-}n5X|$#VUXpNnnaqC0N~##VXJekO3_l;6FvoXvF+4dGe>KM&JMuj}ZyL ztD@ah=yv2^+>W8?dIARj5)OKaexm6Z#;f9Y)dw*mzUAQ0=;%k{46jrCtFx-4Ao|y3 z&cTB*DUihIs8kr;r-M;jiuP%UpiD52zI>7{(<%LTzYd<%wO>pKgb8l1lhkO91h*fj zQn>ey)7 zAM9@4k?HF5hr4^S)^F7D(ZWrGg`WPVT&A;cDBCkwuzsr?Q`}z23|YTYlk%OrGVO)V zLdN==n$(}|?AD2^?YbSE`Q~hng}Fke+q%ZC%V!E}vU`UDn0MPJZO;_e4-ah3 zdxziAQluaewxtUMx+1yCU)Mr{Ti18AY+UcJ9oJgr8zuq~3{_LkZ(Y&Swt1t!uGrS3 zx?-k4RZqU4ZR2^RKu&F#Conaqv~{d**|>S4=0aZ9HXIsIu+>dpwb9?Oy0y7|bK9nl z4VyZO)YVTLTO>8yX{(x=F$QZ}I--1=>_)Q%a?13kRhu_#Y;D`v+JT|=HxzMCoi?^e zYD}wJ2?j+*1OMulJpAeJtgTD>*kX5YU`Gg^jhn^CFzyct@dQJzaf|14r|q% z9UcS~)@^n@GGR)(`ZmxIA?tSgSY)*gb!EFV{#f`s>;wweUTEEES8YZwJ9FE+tOx89 zx^tbon}B3{4v4$gbq;l8$&GblF|GUU=>+KL>Cdd_EOeHX-DOt**@4)89rK&5d+mzhp>7()msM?MV7R}t(32fB=5h*ZiYu=Oz2~i&*dNs!n1fMjW$y<&`^C<#&2|a;*q_w&a^+I@Kh+7_^#})b zb$`Rk|D}#C3m~=stfubj>CR-^h6_W(g|Nk3KE;i|9Kskgk@eyyYr*hqg0tGW?;dGtTP)(kh;DV4NaYAqZ1eAQQ1i$xR{ zT(KBeah6k4;SlL-b9?I%af7IDfsR@6<=)wD%vU?vK8p6evlm!u3mO*A)N5x-R7&cd zu+khz5eK{?=ZDC^g5F)v}(_=Eawh|m05Z&e)I5~kKY3P7UH)E zzefBPd(Zxw#4@tc`c95!FA zZ?Gg1Tbr`LI5Hr;GJ%prP*M>oS;dn2pk!*KWHn2U4N6Xol+1MSkNs$I@Mi`ZpY1rp z%A{HhX3nyFxR?Gx$H>!&{2h@5l4BvSB*0ezAQT0V{xd<&vnJyBSc3W%fU*4a zQORkuq;WXJ{sAI^FRYRL29Yl?2TrnI%Vr59_)B0UhcJvdgJ&61# zBR3-=NN+Jk&RLfKUc?2d#@kJJ2f`&d_N-hFme|n zEV&yY!7*}MoEesXPXM_;h}>%+?=#{32uY~3$nxvco%n6VuM59!3{M8XZTM}+ZwDGr z_wY|I(D&ijkK6%gJC$n#es9EYBeL7^>%eale&^$N0e)}7??U|EjNe-TcM*OU<97*u zo84;HackUK{{ay5SN7vUM1*S}K;(}g&#iMdvYkQvviJ?*w-Z0i<>@?r1^k9(IIlpB z6ME!qblw(w_ zOn4_dMKzn1KpV3hH|{3fO1H|LC?+#wkt`Vxy~^%8XN;WIV_?jTxsoNdy|=bY`6HBrAf9GnjFPldKFf&Sb`!PO>V< zIExu)Iqqb~wY<3?ZU3`XFy`NUATHLKJ7PPXQ>4f{&%Z;h1PB54Rn|LUMjRQ>#GJV0 z9_1XxPMXO=?c{tx`(8`?uaZ^)60ypuV`{(ZPg=cxtY4}mm3yo|`eLFtY4;{$v|_Mm z0T5_QBIO?MkM56`;`2xHJDutPd(JsisS)rnwlft6=hRM+YbWFGiK#ejafl)rXA2M6 zDn>c7)-=RmvMs-AO)3V4BVOUXZDkO*ytfB&OmY~GRE3|wD5yR+=1%8m0+Kmlvcj=3 zEv4eIFxK_0lrp+xnj5;f=wXBw%F-c|w08yXVs35X}$>F!Awe!x{yauCKfd?Hzqej93e zZ(pye=uN*JIBdTv+fadN+k1Pm0$C1($5}+Ca#U>$KNvO&G&VY;*nLU&(OY5dxb_c_ ziI|ht70=z7vXR5l0LXFywt-HMrh+usjz6m0gJJEH^O=H|oPSyJgBY!gd6iUF!i6n4A);LM0FraqQNmje3 zG$c~>$wY&4Qk1E>WM#6-J+-&NP1Zv>k}i8fcLFh}WCAe|Bt%1CF!-RDykR|%2`Q^3 zRkaWUhL(}aTIWg}S&SrOkgF7igkxia)T#jtSRaJaucYYvRn!MsvHf5xw88O5Qnr}x z7{%5-ropCY7=4@M_!VF?m9G+9h5o_liE5w|5E4qqe#q&Iux?a}o)87Ke>z9fkOLex=z#hmPsR=w zfC*HPu>)1{;-JMaSP-Nn!wL))ZSSQM%_4g!*KfTo1eLTnu3 z0182gaIjaBXj4e;YoJxs#KGi=p#X907|kBrgSd)UXF*czkcJ?JF*G#9fcPZmM~W&D z^JBv)7{AzZ^lrbR*#cF)4VYzZni+9W(oHt#*$UZJ&{tS6U!|%Y$2${VKy^#PJJV^X8dvM|akZQTpkdgsP8id|85lm( zBpW;v?lom3w3W_TT%E0j#8}=sS|i;XhLk19o(*wsM8!VzgeYMsM@K11Dav($Lj%DFhex15sF?6(IhUXLW}S`x{aW5}S~K|(61^`IT5np%#L5pB1DS!+EA5kWeR zB%zdg#u&?wOK{bciurMJ7x=Jrq5$eTuzXOYQyQvG4Fy_*x`=@~`idAf<1#o9GNdMH zQ|)Z$Iu~<125=8hV_-qKFl<)B+v_waW5L|`$d&V#7S?C+k<-i8y0vqttbVyFfv7!sS~sF0>*r(r=oS388h z#c2wH--|ihI73lX)s{b!ej9#ohvz9y?yCuStgqQY@=q}&|E8Sdwc7!=9j@Go4Jv)P z;$i?D#M%+mr7uGx?t-A&qYBl&Zv~$7=qS^p2P|hM@OamVV`;(Qyi1uS3iDK7`WodR z#@WJ3U#lDqeq9KDeF%;`faBcSyUu{$5P-is1ivu^M;^f64e)mxa2#E0>^Ftr?+L+? z2k@H!ev<*e8Q=}1{Wj&@u7*>VcZY($+y++nB_!x|8Z4)Uf`TKAv}{%BA10oJL@A&uKut`n8lTvtL>jnH zr6mPq_p^ZqbOZOB29QJp51@hjO#{d&Ho)RO6c-zKP;wqr9wO4f2UJ>8Xy73>@Il?c zL#6>F(ZC1Mz(b}15IIJ+(t~+4EoX+*~^3fyh}JtHZ{=h ztE;fBm=#aJaZWhyVt0wV)Lm8+52LPM6AKe?r~?q>E5~heo81+TcL@o+1VI&DN^CV? zKMN{kIVV`&hcNuT=?^LIVTE`f2qy?im2)|X4XA>kDJ-p$7WN11m9z_fY-KH%8}XI3 zF;L`Xyblusf3aC2__1`|=6ysmKccXE5@c@o9+AvP6t+`>%pKmNlKH5@{))-eBt9l2 zKBm0KmG@XFiKkoMN2Txo^Flgvw z3&1YI^)T#&d!FR`7Ru0qwdQyM`Gg48CzOYX8M#k@8t+;P;fEn_Fly*4RVv}v*E=Z; z5oV1~vVyyoc5g(~JZbg&^}Ws%w*MhC2MOS)yX!Fi?DnU0x4~U@`*G>^<7h|-eq0Df z8S;hT$4PJ-lB6_3FhHIZf}fO#AsE+k9Pb7a{1Ffgvnm8b8zTgNniVD@_%Tf|Wx(BF z2>uKR#?WBEN$?Xw@Dph0DjT*AX|foFC=iODfLG*hWWEiG?LG!%F+e^m6n|DCNv#~8 z1tOo`)#uQ%w~wSh0@7jP#d>Z5Td~;)o17T->vuL->Cd4V>@iA@h|nJJAOEL#lY-XH z$|hROAwG4j`T-CJ_w_Fxa~6KdjF!l&#MA@1-7wOMB!ODkBL$GxUdbX@o~epj{||b zDJ?l;#u|A~fhNpJ5)LzJ>1g^X=7At94`S*HIc6N-yn`A~jqD7{{R%09blgl9KMEFO zS`_JkDHZ7e9jFBVYs4RcKZU}iDoXOlbpNQ-?)lCX?Qo2aj&hR>fz55QH{lODI0t|H zrEt)(Wy=#7e`%k;|AvZwqQe3i(E)!c7RJc(um7Vx;J(>;k~{(X`n-0q*8)LKD(-b4 z9#5)X`uxx+vW?y=|0*dH5qs+fSI1sf=AT1Sq%8?bDGGI7c2o}Ypsq&wktZB53~UCDU5dqP?< zGFVk$`F2r*<&p~2-*RMBc@RTDw?Na*03`}bsx!n8A@dRlh}#Jbvb+uMB3S^(mNSZe zxr^MbjP|8Bz+^a1Uhw!hM4%cVfB_p71?Fr5v#8t?VL%X^;2b9g+lLY}j{);&39&em zJO<38>S6^dc?^&TnRwO8K?g^iFNfvM0DsuA|= z65c8paOyjzC@f$QvHfZaqe?ep^2EU}4qHLS!Gkhs^L(Dr$oQ!hY%u_*uAiO(hGC8- z9kzcG_PxCs{!40SdPc$n1Ce*o(wPu)X3j)I7HUCTW+d$#vV6|*Gu$oEW=u5ndVvsT z49kBHfS{L~3qrtC*yDipLkbO!cqJ1(t9pHobxzS|Mu)$2rLYTVAzx!ktKC6-JSrp1uP* zfjy7(?NE0_B<~TWVJo;jpZ+8v&fS^*22S`a?;EgtSRo58UH)lP{=Aewk8&)DC!?+O zH?hZSd*4J3R=v~MI?#Mez`lh{tZmO=rg%5$7XpgzF%;d+5Gz=4IsM@h&~FEz_Z!gr zBA_2pJPyFo1AV6ScSmiKsrZ3N#YZ)bSPqx2gh_b%d&>L1ERVmZa_LVQ$QPCO z1Ic_5nV(V46|`K^q4ej2mJXPfeyHr_rT=+9RI~*)#~tS!m39obJ}RrQWW)A)Rr+73 z%&rcSIyhSg2P_?a(}XXX@KuIlfN+|Dp?#NWdhF7^7gR!hu2p861NbnaSWW0P_X{e$ zUtv*$CB9j=Ls-o6NN)n@MK(~}3YW{mUq|l_$bueA3@9M7xpx9)Xj-l}w0wUIA7@%X zbAvKFD4+zggJr^fDt)i=zOAsr#tJ~=b`EP>ivit(4IzaIj=N~r43KC**?p;Om z=e;F7h=NmEDp7|@C9MXVw<}-@fzRgsioUv|W0knB6tAjr?Zl+o$yP;m-IS@*j)Djt z1>58H=%BY|8dH5WQyKKvOkprkGnv6)jmscg0}HO)p_)1@KGItd-C2XPCgtYvybFSS z4aQEng_>#x!!?r_?4qDoBEo|gM&gEx2|}(R zJ;2rHzDw)6O8){r6846diay!P`Ck%qG1LM>#&tBx^~MzTr?@fYPlEmB&NDZoah(Fo zEVPoj6PfGVJMdEWnFBR zEO%k-D7`dq-k^IUfd?IIc4cKvpOwoz5O<)&G$oZ1UQT=xsS3K;7!X5%&?MWU%}ozE z$6E+?vZ9BkbJ)8jJ-Yojar-2Ptp(vqItR|OO!B@2MyJ1wi+Vctta8q@e2|6Q{|MCXvVaH-w>G!G z1gq1RM__*yz`h*7{yKpD4Pk$)oQD%eO3)MSzb7pW^9~vm$?lu zsG`=oK&O^N$K48yj4leG#D`~f@JW1l?BfW`{(pp+4${w;CO{m`S5R4ecwL!3JQ}!6 zJLKZVYcj-*4`A5%fnxoy(Z$zgx`0lxaxdro3S{U71P1s#Bp@?1td{>3?d+@czZtNv znhf^}W@x>lW?{1VQgO2RA}5<_+tUByG2Z8Z$xg3@El03Ur`C({PPYM(umQ$I({#0N z%$pP1g0lltKs&eGy9$oxD6V#rk%(ie)?K3jvTVQRnv^{y-R79l!M41g>3WF$JUo*W zc3#UHCg?NPJps>g`7Pj?yHAz$7Er;|iWO1u+6rf;n-s6|D)&7~&r~;alMd-y*e@d$ z0UzHhZQ@uf3aJm9&)ct@889~>FAcpy z2Id4zb5Jtapz|7dDHfX@KIXfGx5k~vxUJ*!8HbC27QrqXL#pwmV8V#YDsIBsF#ahV zn(G_fI4O<{x*r1}7#Wg*%^O_B!HD~D(kGcGnoJwhO9&Zc(*2OiC*oopCKg)ug%DVD z*nJ}5&5*%IKk(aKh z^ww~!*2EBTj{+|k^rhE;X$nk(2zsXj$85-wd$!}wapxk20*?FXpii>NI^0FX2D1+< z4|9uSN!&W7kU8#M%1K*Zt9vx6)H`SgQMBV8?cS{z?@PA|;Ki1=%eN?_h`=erQ0{WP zb4cAeUK5(~PQ|a4=~nk1MIZZaFys_uZeZpH=4{2f{WRnZGG`Df%gh@=hl^FGyI*|ed|3L4GcvFR)!b=x zs02-`bTKRs(D|duo$j=;-8X}VzHZk&Whd1xpsFmer_aRAJRVr;Lx*%eYz_=Gx!$bC zCsjK&wRQC_W-QmiI>^1B(+j(c9a#?ce6+qrVhaG_&G#0#o;S~ZKw+7rQ{eHKDp(qM z^D*2HDFzt-^n7nVI%l~&!%+AO%kF+i2||Cw!1a}dQ-p&DuSGRIpSbyu1=a-GD|SO> zf-D@e&cjkH=!Lh`eMDg~<~4eYU9Z8?1Vh!?MUe2Qj5o(8=x$@!T|DuDrg_^~*K!{d zWdZ)`u;YD^n)5N&dkb{05wO<_yanZYT}3$QHQ?Cm@o>`X%COf9hROg7K~5WK_b7_1J|T8gFhVneb;rezrDjS$}%IHQLa zUR{cIUG0Wg{^SXySl@Kw4SO?WdSZ|(_qd@2B4x^=^~NJVv@hH_H_;QZT7Yo-U$*LT z-l@_}5c5EqLLpfg3dtgL&hQxOu+Uo+D92=zq97EdYayj~p_UN@l#zwr!g4YKsavRJ z1aOp*@o*v|b)k$b#7+dJZ>v;0=&HZAs|S!d5A)-&m_0 zF;hhegn2f@Dnlby8ts-yV5B0fs)nBsLX1eG9y|mbyhg9F+~7g18};A;j)ONIP6n?g z9K1%#U@#z5p)wFMAdB^YAmD&3_7;~L5NO?EJs^PNfQ*Ne0l}3i zGqWy+!hoS8dFc=)8_s@o*^DAZm=bqhem$NCWbo`j_GeEd`%fHB_R~v?k`7xtPSPpP zONF<1NRzX66awsrk)svT{D(JKj%zjLYSAXK7PvUBmhccxxU{7WqGl%@B-&##k%ES{ zA7&1voR;d4l7@bWZ=$@V(b*%SyBcwsUh2W4B!L%@BEt&~CoC`m%FH}(Ub)_*62{-a zQD(-&Nq>tLc%E3`ppStDgE$&k_L%!1=6IF511$kxWdDW4g%fI|XJb8+AE+bpaUo*| zEC`wGcYeXbh9^8-<$uxYtED*S-~Y z?S%=t2HF-NR`;*ac&PNbke=Tv?{YXFC-KS-vba~I(!TR9`$(ns)v*76 z4Ez75iTW=B<;|xO1(QA2V@L(&&RfV7#92cwVv2J!mp@)3Q-O&?4pNYD+2V2!Kvlsg z4JgYyk@9((U-LA-=4pP-)BK|HL(;kSD3x@&UPXSjVg(%R2*CH}iWfErldTvC?gz*^ z88G2~0F)V!*mH=2IL-p_6f?XOVs@lGgF*Qs1Dr3FGgmafPLHY93;P5xtWN-+$1=Xm zzC?gt!%pLZUL1ocA=uCzZy2SepC75M!dx`UTfJhVE}dvOj)DG?4DKZ?a2!sV2!;+_cT>*3q}kZ<=Mf^W|nz9AI8Ar!tL6uu!8z9EeA4N2h}LgCxL8onVE zz9AI8Ar!tL6uu#h@(oGh8^VxpX9+v>MrL_62HOJO%{`>Bt6m6gbWiJb3*X}*6LCeq z{GJ@N_v?m<2!)9Vg^37-i3o*>2%}6yQkaNPnE0GwB0^yzLSZ68VIo3dBEl#WkrXB( z44JqbTddrW!9IxGdxI$h5K=L$%H)&`R$BGqd7N!{!e(R@?;)T}4nSeDJ=`iayRGi? z%2|Rvnesb&!1!Us6VwtmhfX!_FgLPpnSC+TeEiTgS7U5T+Xd~Y#tYOuk|;6xhazF6 zMpWE_5Hz2By=c~yr-$pzEw7WJUhaUGuvEH6KABw-aly?_oWU*?au_4oBZ-Q2k>5Cf zEM<$cko?E8JYGQfDjJA$4}Rhy6Ptu_GrcWRM5b}p$Nu)A>W?28=QKJPSjpq%4ya#F zR%i^dMVTZZjxzX$2EykOCL(WfXt14st5TJ?RG+FCzZD7M@MZ!$Et;&<=V4gijJeb1 z&BrMiG;09@DAqy*(5poVpjM3tpjC?zK%2zP!omP4?qXnc#_^ z>|Q>=D{=A&ZTl9E0ezK<;Vi>~BXPPtsZ6DMHq9gih7j-;F@d z(pldtLdsM43w8GQBapoR3W8oNLgMn2DNKx{G2=Mcgi*XBcK`oBnEIjiFJUH_! zmauEM4vSpeT8+ZvI+o@CN=o9962kvMa(U1fvhomfCQbx)i zlYDs6k@issR}U=zQ&NV5<476n;O;JH=5~0IX4Jv01&oK3!K_BgSm$}kr>>RMk&6@G zmon;Av5a+oD*3UJe6%C>=T}mOgXJ-G{vi2Kut+}Yh=us8lvR|Ju^rrqkp7g`8K+js zNihxL#2}zmI((!58(?Fc?j4xuAPFri#Y7Ug=B8C zz_nhgk0q9Zg~2&qutT}P$Fo4P*IY9-fpsK~{&0%Gz2}4^k@96YVZ%YnGN>kS;9Kf;haA> ztWM+fNa&Nfs-!9ON$;_NoQed{fpk3P39_(4f#n@bRu#z72V*5g!WxhrZmaVQjC*P2 zi1yjv;E=~8u#Cj18g_8xZ9_8WsPyl6=9_*6{?B7aI?^)2-wa0>cgE=h;;~j-lb%$K zyP7q%=ph*YgsQC*z8`9Y7h{8SYYrEl(u)k%56zkCT78ZqQe=v5rUZYfJXkp$Bv&-H*y8 zP4`ne_^b{-rvpCn0g%t@;3*w^K?h&a!81Denhw69gCFVOCp!444qj5Y$OMZE&r9CK z=_72yQ#jtaxWjvH!dvdZApodv=@)BYBGlJ++%4uNx?KFZgWSOA{a8T=^{Y2dz-_ML zt2boiwO%ZB{~c_=q)5flrt=qgKo@EE7eyC7dd&vkim>GEULb?l`wnoX#FS*EFH`(3FK^>vmt}ApkoYAJKw-A>481Qf4{#qDQ>txC4)w zhs!SSSIqbiko7B_fxe+(%&!UWWfol~5q(6e!lGZZh@JVhsbz;nzhTiYQS=*A6gNe< z?k3NK!-oWk(^8hO$Nf1je{iWEq%h<%3d86PI^uagPr31+C8jF(XUf&r)aY+4LtV%H zrD{N5(KpOz`@xa8Aa0=q;$j@uN^CBI0Bzy&3f7+KB^W~b?racpwjV?4tU{|XIr&PTd|%Qn`k z@m-n-Kf&dqL@D|@3%wbw;)Bq0`g@&YF{IcnV8?vEgpD3H-*V$PpHzrJq+Y=;Ix={X zlkxeCV>QG00>)!HzL4>_jxS=I`~84vWE`s!#uqb=l?dZY7_ZXtrAyFOwT>@i9PgVW z%sC5eT>jDVbKT!5e~OMTXMC!T`;1T1@g~IaFfhngtiFcT;r=szDLcoj;2s_$b>2W2 zoB6LO*2n#MCVt0+6SI^vNPsx=W{@6R$7eGh*YRf7!}5SID;TfP@fOA_b$lh`RXVzHy9!$@wh-HbjiJvn4}ZeNuo|C9+1RTo%n+xLJ&O3 zgtLIyClNc|6bu%D-%LDVuuJ0I2D>CaD@1KzwQ54%Y^q7(v>obZ^j8Vme}_N8p~=}X(mK{nZWzTCP{)s;q^43 z#gBwpQ;2on#oT2O+QkZFx27#@Pv8cT#vDF+(+Kgz{x#s8sPyoVXj{f*l0 zWwv{{?OtKKSK97XnDL;oHJ0avy1Kc{E)VB^S?fpL=ZeVV(0B&~=HsvO&(r)vFBorc zz#lrocsm3BJcmEN#fKorZzGuo?7%;_eZC?q(tu3o>926*sH0fW^N}4)@@Xuu`IHi) z&v36=N98C@N5979g^pq^ME{Gh&p`*Fgo^%Z98axu(>H<(4#(?Ve3Zk7%L%Us6YaIw zszusL(Z!B&pN>U*`33IjClDHEG=-hpvM@-5!V`LcvLy@N3A1976_YGDDa?vXR$Q`xlUWJLN=O!5 z7G_mQR)u82b75AcWK}YYzT!Oona@89_-7&iEaIO={#ndFOZaCQ|15?-?)+QWIJm17eplotCfpkKr@#@lQl*NYSEvI;U2i|f@ zZ|fMmf3^w*cxf!3j)kUX@e*9rm6v9cwRm%#erIM9d#rd}CYC3~SKZ=mja;FmV%TQa zufN5y0$zbhfxugcEASN3F)4U&80bpY$E&o_ByWt{lm))w7YRb+iBP@*2d`XC@EzQ# zO1|i^qyU*KJpoa@pJO5RM%&E1pHI=B8$W+VRS?R7Y1Ojcl`2RIwlF}yOElRqCb zd0HNwIwfTblN6YQR~PWHFS zvvUANB6!g-c}GCX_129tS|7VL23!bmW*V==ck`|H=Xu5USdjvx==!$??hYiFTr z2fm2Z1vP8li*MKEkI_RAf`$?51y$jEd`77WsyaO-$aiG=hsdrTejEzof=}~7Z`uZ% z@F}BXC&EP)-@bK2&z=mw3zaJzr&T9xD~#YfQv%gCxRPIQIzC<6p`lz)HrG?wOC2v_ zd&3!rfHF0<;p^&e0)m z8b)o|JT3fVhBG_Zg-?SG;>Q~K^jYOG>+zItW)Z7tzwm>HChxIpvN2#^@j3cS2 zzb!`T3x>C~`^=@Kyeivbkqbg}vG!R@j-Yna7*T8Q>KyEcq|KOhn98{fbURn9K2uL% zArD(_ampGsg0S zhC)8i87L*ZgSp!Nh7D@D5CcH161|%@hPxr~Dl@gtT-Ulju(rZfKk#eHjlr(78wKb317n?8@k=WN{Spct=8ic5rQG zaC>3Lk}{wXS0W0!vW|LOM zG1$jIwhZpd^k;`M&1HbcF*yKUQ3iM%?*iZ!ZG@wOp@}S!irh*qniEmGyQjb3kiJPi zNx4c-tQtP*<#qRT8^9HvU5stdtS*B)(z$WCTg$*l#AqD+nlkVaevE@ZuZ$}j5fNiy z;AyU178&gBVK_5A`4tF6hnoAd{Df#8%Zy!_w%q#6c6>i`S7v24cL6?R3@2t_opuT) z;wdCpf2nx=f=Dx67az;5lI04_1T_$#t3L=2sUKk3U;4ghPcwodblnq zLtHtyvBbUU4KmEpWk)kU-+SKX_6;p9D=v&GlUCO(XuF=H4AdbvKrZMh?2yKH=*CT*VDAQYrMo}FDhy203!-n#F#Au zSdPXyLuCNV(Ku&k8NhNh&dHSlEJx#O!UG|nxQ0W3%3+~G2SqMq{vChG#O`NV8ouC%=l zmqGnq-LtS9F_a~$6n*wJ(Yrn2D&%M1Hly-o|0L#|jiXMJ^Jr_(>D?9tK z!?3*tyWT4@g-jQAx8JSw+G$MfkO9#KZ&Z55Err!GEO7aK=4_x8B08;VxSI?YOW|~x z5xp^_zsHEoA!?pfyw@mA=}fPuc|*NU+^WtI`HGBp zBpMEP-c$-RHtIcuO!sX{??XjuMWP}6I0P+&+`aC;-4JRNM?_TAUOOB`GjNBRCxjZn z!yJNyPRE@}dsq?0+!4{q_l>t1T3A+Z?T1T3^?kq6CkK&UMWRMI&Tk@k*xS3*iKSXg zn?=vGs~fx5h2i|&MhZi<4kNnxRc4>)9wQ`SaTtk8YyiDqMUEQsdk4F;Uw*Gq3cC2& zp{{JV-UD9IS?Hvb+Oa!(-=QJe1~d07?YNJ@0n;07_jU*P9w-A^a$40MQud%aR`^7$ z+xk1V=gFj%h`?xkAVO1Ewz{)_TXSbFx0gT<85J$o7K;McA6Br%oX3^a_@FAD#)UZF zoXKU0?n7qKis(R0`|#F6uCq&sdRQGlp4yO_51T2VbiI(vV!UN5oU4+LD7{E45#oH$ zo>pFF$kj)UsuVjC;Y)ki8vC5b0YI>a^q83(qiqD^##7B= z19;q47%@>-W##qJ$oK_Pr=9&ak-@X~JTZ=+m_9;&eoX1T!-*OpKRd9&KfHa1)WM?= zLR5Gj7Djp&1*^|b7{b}bp22(}H{8W}oO{dITEjNUn&E+=Pb$4}Gf~6RyJ*XwI!sSz z?|E{Z+@Ys|+p6QqcNmDdd;aAx5cBqY{xA^p z_dInNhy{BNM8=$>(2P?~oEBj!K#vPwI86P8d%kE4BI{~qMPxhB`A~+wG|_nDoXrnh zjxU?>9w!t8ijH$o;VXxsa?zfzPSkFGcx%}1(-XBzpmOa#bC`A;_dGjMyI5q0?f&aT zKzp!D67=zFhiS{-^L3+d^2mQA59Y-@!2JJ_PJo3-%o~Kb&6}rz@!R{fNqyqTk&)w7zF6bT{8N z7(l-mnUqVRNsKhHHoLtC+h9SBA526(4*m3zc>wuC<1CIR-<+)nfOy6<TSK z>Di~*q zuHiyP_wnb(oh5_#Yo>MGgAGgAR=P!n?9jhQT&@75Cr^M(_b<$pd!+8ke;CP#a3vDm ztoa=>>6gZbiGW0+V#Y(*{IAqedIWL1X_o0@dm%IQvO0QPz8o3-+N@!tI~bTH*AEYD z&E(p)nGNICLD@8I8s3K8fZr&6(kuu~8-fe0YUZ^Rf&Hy<)yF|?!r^g$6Lv`ZhO+3$ zD}h-h#hjmU+(KtRvraY?+O}?ay=$uE2S8SD}AzN4B^J@cW4O z5DZy9!2Sngm%@cX7ztJdGeg){jc!KR9*Gv2U##&*!=ke5$Pn+J43z1W33R`Uxc<{X zm0j?Lxcd!j0Y>)RLcrI`0Y-MyLcqVN zsYN*rbN{<^_+=*JpD}~a>8v>X|5Il8SxJQJ?}s1$5cVHOI{aace;#W1L#Ts?8vYP! z)YjTocKAc6OYQNSjB*1bqPLgX<1glE5ed;;ZbuJ!#*0V@ctttDh=_!MSC#{eh)4){ zRXM0VAD*d489zw?Imjk$Y}>FQ;j^P{CS8&-abqI&Y+zHV*-c3-*qXZ@Gvd693E!%dk+t@ z_SVD0th~)gWEuY8A}8jH0kb7}yRFX($^e4VyjCF7#T~X@AeRBtZirtf#e1i%cV(j$ z!f6VlwD!XHnXA}kA$X&!c$W-Uu%eUW`%TRd-=Xj6y&bzbxI@TWY9j)v9{f9!(vChBukmY{!eRd*Gb8x@iBz7X& zP{@NraxB7v2kfeMLYF#o+q7&-6#(Ez{j3$4qD0qdCaz*HrC3o^8)pAp0^Ll7)Uja{snZ@>G>3ZCTB{@= zC`C?XDxw)mN{zI=G{~V*4K%t20h$JA>o^Juu9jrAkjIDt+t>hBLZYF85{^K|*u<6v zvTugA4{6T@jK0PGz1f+0GvChgNPz$I%^8WD|HQJ+b-~uw<1i0F=z@;$u9trep)2PS zSJ&1)SXf#b`$Zyj?cCaxh1ZwPeuIBOEQ4{2DjPku`wPz~Bmoj20TLhq5+DH*AOR8} z0TLhq5+DH*AOR8}0TLhq5+DH*AOR8}0TLhq61WEi4uv5*w5?aawY^LKJn2C8dIW|; z+npyP_uyn`$Rt1lBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQZrKmsH{0wh2JBtQc9 zjDYj*a&`Fr_p1l$ztcC|06nDIv;39faG)n364?N#bD()2 zmL)yv99Cy+fF(tBE~)eQ6XBn}E?!-B`j^G4w)nk$od=2y4#n;%NERF6Z*H3|b^}a> z+k)WpfLP7)1@ZSR9}{n7Yt?QsV~fAqI11O9bS}3?H+MzheBk{RaL=sx{3BWEQT;O& zG-R`j&61kyr^I{NlQMGu^L4lkc%zsp&KBp2^RA!2RF2Fy4(|QI-XHJ%(?G{+Z1sWF z9lN4EN0aNH9GYH#=g14|^FNtc*LUk54>bBF_dK^}qIAK=9QDqeW{dL<-g5o+wNqV7 z;;8*EpS6nb+Cyjbn>AOQvc;QfE=y`UzOd~(ZSc01_a%<)`bk#yr&-B=fvx#7>;pf= zF8L?f1wWs}YST9Rho67!`|MLcf8YsrO=z~i`fagl*RFQgJ7X<{ErqCa-tqG+=;yIu zYv|b7i@qJ|6uw=E;$U#p+P=0|qMNfvk{C|ArLy1OKUB$hCo8jFsxs%*+_Gq0W-SeT zmp8L6(#u8hkqsO4c!Fkx($auzJ`=f*ZWZm-Ff$_xXohP&2_{N+!mOe9hpIkae zV5`SL*`7g&hJ8`bJvOaH>%TKK%Ay_^wwY-hrTX-vt7TbY8*~HKRTHh ziR+`2ljD;p*FYHFSpnc}m3faZR$lV>hn2u0|8u2fk&jeb7dceg7I~%ui*DK9m`CK7 zys`fMa1!gMu=-bPCrYmPi{qTm_-;7q57}%`)YN4uv5I3^J{n)@QnMp*Gl#>)Gxm}%Z=CiD z9XJE7M_%)^?O$)#H~9k2t%P3{X2oh)9hV#=}%V6r_+V=Nz}Asu8v4aANv0<7iSwAhSMWa~XlDoWeEf|w|<$n7b1(_wvz50K0$5Y&G&Ypu#m!Lpu!4%G;`>#MDP?{`_JfFWlX-Ac`7Fa=fPG!AuVa6f zA%`xX%ONyfFyBtqY$puM*=sG3RB;k|V)4S=_W)4On$g>#p>gbA@#6eJN}F;%T;;{s zN@Ls`O(DB%gXLU96Xe4D3}To8-y`bdHi39?Iscdn4Xl4n0^qe-U-l>G-;7hH>JK}V zvGl-LE Date: Sat, 17 Nov 2018 21:18:41 -0800 Subject: [PATCH 09/18] Added screenshots for all new test ROMs --- dist/core/core.untouched.wast | 3554 ++++++++--------- .../blargg/halt_bug/halt_bug.golden.output | 1 + .../blargg/halt_bug/halt_bug.golden.png | Bin 0 -> 2693 bytes .../halt_ime0_ei/halt_ime0_ei.golden.output | 1 + .../halt/halt_ime0_ei/halt_ime0_ei.golden.png | Bin 0 -> 615 bytes .../halt_ime0_nointr_timing.golden.output | 1 + .../halt_ime0_nointr_timing.golden.png | Bin 0 -> 1769 bytes .../halt_ime1_timing.golden.output | 1 + .../halt_ime1_timing.golden.png | Bin 0 -> 1722 bytes .../rapid_toggle/rapid_toggle.golden.output | 2 +- .../rapid_toggle/rapid_toggle.golden.png | Bin 1755 -> 1750 bytes 11 files changed, 1782 insertions(+), 1778 deletions(-) create mode 100644 test/accuracy/testroms/blargg/halt_bug/halt_bug.golden.output create mode 100644 test/accuracy/testroms/blargg/halt_bug/halt_bug.golden.png create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.golden.output create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.golden.png create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.golden.output create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.golden.png create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.golden.output create mode 100644 test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.golden.png diff --git a/dist/core/core.untouched.wast b/dist/core/core.untouched.wast index 6fffa6b4..8068c852 100644 --- a/dist/core/core.untouched.wast +++ b/dist/core/core.untouched.wast @@ -599,185 +599,185 @@ ) ) (func $core/cpu/cpu/initializeCpu (; 4 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:159:2 + ;;@ core/cpu/cpu.ts:157:2 (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed - ;;@ core/cpu/cpu.ts:159:23 + ;;@ core/cpu/cpu.ts:157:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:160:2 + ;;@ core/cpu/cpu.ts:158:2 (set_global $core/cpu/cpu/Cpu.registerA + ;;@ core/cpu/cpu.ts:158:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:159:2 + (set_global $core/cpu/cpu/Cpu.registerB + ;;@ core/cpu/cpu.ts:159:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:160:2 + (set_global $core/cpu/cpu/Cpu.registerC ;;@ core/cpu/cpu.ts:160:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:161:2 - (set_global $core/cpu/cpu/Cpu.registerB + (set_global $core/cpu/cpu/Cpu.registerD ;;@ core/cpu/cpu.ts:161:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:162:2 - (set_global $core/cpu/cpu/Cpu.registerC + (set_global $core/cpu/cpu/Cpu.registerE ;;@ core/cpu/cpu.ts:162:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:163:2 - (set_global $core/cpu/cpu/Cpu.registerD + (set_global $core/cpu/cpu/Cpu.registerH ;;@ core/cpu/cpu.ts:163:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:164:2 - (set_global $core/cpu/cpu/Cpu.registerE + (set_global $core/cpu/cpu/Cpu.registerL ;;@ core/cpu/cpu.ts:164:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:165:2 - (set_global $core/cpu/cpu/Cpu.registerH + (set_global $core/cpu/cpu/Cpu.registerF ;;@ core/cpu/cpu.ts:165:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:166:2 - (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:166:18 - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:167:2 - (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:167:18 - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:168:2 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:168:21 + ;;@ core/cpu/cpu.ts:166:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:169:2 + ;;@ core/cpu/cpu.ts:167:2 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:169:23 + ;;@ core/cpu/cpu.ts:167:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:170:2 + ;;@ core/cpu/cpu.ts:168:2 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:170:22 + ;;@ core/cpu/cpu.ts:168:22 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:171:2 + ;;@ core/cpu/cpu.ts:169:2 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:171:21 + ;;@ core/cpu/cpu.ts:169:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:172:2 + ;;@ core/cpu/cpu.ts:170:2 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:172:21 + ;;@ core/cpu/cpu.ts:170:21 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:173:2 + ;;@ core/cpu/cpu.ts:171:2 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:173:18 + ;;@ core/cpu/cpu.ts:171:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:174:2 + ;;@ core/cpu/cpu.ts:172:2 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:174:18 + ;;@ core/cpu/cpu.ts:172:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:176:2 + ;;@ core/cpu/cpu.ts:174:2 (if - ;;@ core/cpu/cpu.ts:176:6 + ;;@ core/cpu/cpu.ts:174:6 (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/cpu/cpu.ts:176:22 + ;;@ core/cpu/cpu.ts:174:22 (block - ;;@ core/cpu/cpu.ts:178:4 + ;;@ core/cpu/cpu.ts:176:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:178:20 + ;;@ core/cpu/cpu.ts:176:20 (i32.const 17) ) - ;;@ core/cpu/cpu.ts:179:4 + ;;@ core/cpu/cpu.ts:177:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:179:20 + ;;@ core/cpu/cpu.ts:177:20 (i32.const 128) ) - ;;@ core/cpu/cpu.ts:180:4 + ;;@ core/cpu/cpu.ts:178:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:180:20 + ;;@ core/cpu/cpu.ts:178:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:181:4 + ;;@ core/cpu/cpu.ts:179:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:181:20 + ;;@ core/cpu/cpu.ts:179:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:182:4 + ;;@ core/cpu/cpu.ts:180:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:182:20 + ;;@ core/cpu/cpu.ts:180:20 (i32.const 255) ) - ;;@ core/cpu/cpu.ts:183:4 + ;;@ core/cpu/cpu.ts:181:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:183:20 + ;;@ core/cpu/cpu.ts:181:20 (i32.const 86) ) - ;;@ core/cpu/cpu.ts:184:4 + ;;@ core/cpu/cpu.ts:182:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:184:20 + ;;@ core/cpu/cpu.ts:182:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:185:4 + ;;@ core/cpu/cpu.ts:183:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:185:20 + ;;@ core/cpu/cpu.ts:183:20 (i32.const 13) ) ) - ;;@ core/cpu/cpu.ts:190:9 + ;;@ core/cpu/cpu.ts:188:9 (block - ;;@ core/cpu/cpu.ts:192:4 + ;;@ core/cpu/cpu.ts:190:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:192:20 + ;;@ core/cpu/cpu.ts:190:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:193:4 + ;;@ core/cpu/cpu.ts:191:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:193:20 + ;;@ core/cpu/cpu.ts:191:20 (i32.const 176) ) - ;;@ core/cpu/cpu.ts:194:4 + ;;@ core/cpu/cpu.ts:192:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:194:20 + ;;@ core/cpu/cpu.ts:192:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:195:4 + ;;@ core/cpu/cpu.ts:193:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:195:20 + ;;@ core/cpu/cpu.ts:193:20 (i32.const 19) ) - ;;@ core/cpu/cpu.ts:196:4 + ;;@ core/cpu/cpu.ts:194:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:196:20 + ;;@ core/cpu/cpu.ts:194:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:197:4 + ;;@ core/cpu/cpu.ts:195:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:197:20 + ;;@ core/cpu/cpu.ts:195:20 (i32.const 216) ) - ;;@ core/cpu/cpu.ts:198:4 + ;;@ core/cpu/cpu.ts:196:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:198:20 + ;;@ core/cpu/cpu.ts:196:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:199:4 + ;;@ core/cpu/cpu.ts:197:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:199:20 + ;;@ core/cpu/cpu.ts:197:20 (i32.const 77) ) ) ) - ;;@ core/cpu/cpu.ts:188:4 + ;;@ core/cpu/cpu.ts:186:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:188:25 + ;;@ core/cpu/cpu.ts:186:25 (i32.const 256) ) - ;;@ core/cpu/cpu.ts:189:4 + ;;@ core/cpu/cpu.ts:187:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:189:23 + ;;@ core/cpu/cpu.ts:187:23 (i32.const 65534) ) ) @@ -12383,45 +12383,45 @@ ) ) (func $core/cpu/opcodes/getDataByteTwo (; 162 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/opcodes.ts:165:2 + ;;@ core/cpu/opcodes.ts:164:2 (call $core/core/syncCycles - ;;@ core/cpu/opcodes.ts:165:13 + ;;@ core/cpu/opcodes.ts:164:13 (i32.const 4) ) - ;;@ core/cpu/opcodes.ts:166:73 + ;;@ core/cpu/opcodes.ts:165:73 (call $core/memory/load/eightBitLoadFromGBMemory - ;;@ core/cpu/opcodes.ts:166:38 + ;;@ core/cpu/opcodes.ts:165:38 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:166:50 + ;;@ core/cpu/opcodes.ts:165:50 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:166:71 + ;;@ core/cpu/opcodes.ts:165:71 (i32.const 1) ) ) ) ) (func $core/cpu/opcodes/getDataByteOne (; 163 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/opcodes.ts:160:2 + ;;@ core/cpu/opcodes.ts:159:2 (call $core/core/syncCycles - ;;@ core/cpu/opcodes.ts:160:13 + ;;@ core/cpu/opcodes.ts:159:13 (i32.const 4) ) - ;;@ core/cpu/opcodes.ts:161:56 + ;;@ core/cpu/opcodes.ts:160:56 (call $core/memory/load/eightBitLoadFromGBMemory - ;;@ core/cpu/opcodes.ts:161:38 + ;;@ core/cpu/opcodes.ts:160:38 (get_global $core/cpu/cpu/Cpu.programCounter) ) ) (func $core/cpu/opcodes/getConcatenatedDataByte (; 164 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/opcodes.ts:171:65 + ;;@ core/cpu/opcodes.ts:170:65 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:171:31 + ;;@ core/cpu/opcodes.ts:170:31 (i32.and (call $core/cpu/opcodes/getDataByteTwo) (i32.const 255) ) - ;;@ core/cpu/opcodes.ts:171:49 + ;;@ core/cpu/opcodes.ts:170:49 (i32.and (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) @@ -12429,12 +12429,12 @@ ) ) (func $core/cpu/opcodes/eightBitStoreSyncCycles (; 165 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - ;;@ core/cpu/opcodes.ts:143:2 + ;;@ core/cpu/opcodes.ts:142:2 (call $core/core/syncCycles - ;;@ core/cpu/opcodes.ts:143:13 + ;;@ core/cpu/opcodes.ts:142:13 (i32.const 4) ) - ;;@ core/cpu/opcodes.ts:144:2 + ;;@ core/cpu/opcodes.ts:143:2 (call $core/memory/store/eightBitStoreIntoGBMemoryWithTraps (get_local $0) (get_local $1) @@ -12686,12 +12686,12 @@ ) ) (func $core/cpu/opcodes/sixteenBitStoreSyncCycles (; 174 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) - ;;@ core/cpu/opcodes.ts:154:2 + ;;@ core/cpu/opcodes.ts:153:2 (call $core/core/syncCycles - ;;@ core/cpu/opcodes.ts:154:13 + ;;@ core/cpu/opcodes.ts:153:13 (i32.const 8) ) - ;;@ core/cpu/opcodes.ts:155:2 + ;;@ core/cpu/opcodes.ts:154:2 (call $core/memory/store/sixteenBitStoreIntoGBMemoryWithTraps (get_local $0) (get_local $1) @@ -12836,12 +12836,12 @@ ) ) (func $core/cpu/opcodes/eightBitLoadSyncCycles (; 176 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - ;;@ core/cpu/opcodes.ts:138:2 + ;;@ core/cpu/opcodes.ts:137:2 (call $core/core/syncCycles - ;;@ core/cpu/opcodes.ts:138:13 + ;;@ core/cpu/opcodes.ts:137:13 (i32.const 4) ) - ;;@ core/cpu/opcodes.ts:139:60 + ;;@ core/cpu/opcodes.ts:138:60 (call $core/memory/load/eightBitLoadFromGBMemoryWithTraps (get_local $0) ) @@ -12907,14 +12907,14 @@ ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:188:6 + ;;@ core/cpu/opcodes.ts:187:6 (set_global $core/cpu/cpu/Cpu.registerB (i32.and - ;;@ core/cpu/opcodes.ts:188:22 + ;;@ core/cpu/opcodes.ts:187:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:186:6 + ;;@ core/cpu/opcodes.ts:185:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:186:38 + ;;@ core/cpu/opcodes.ts:185:38 (i32.and (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) @@ -12924,10 +12924,10 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:189:6 + ;;@ core/cpu/opcodes.ts:188:6 (set_global $core/cpu/cpu/Cpu.registerC (i32.and - ;;@ core/cpu/opcodes.ts:189:22 + ;;@ core/cpu/opcodes.ts:188:22 (call $core/helpers/index/splitLowByte (get_local $0) ) @@ -12936,34 +12936,34 @@ ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:199:6 + ;;@ core/cpu/opcodes.ts:198:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:199:30 + ;;@ core/cpu/opcodes.ts:198:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:199:47 + ;;@ core/cpu/opcodes.ts:198:47 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:199:62 + ;;@ core/cpu/opcodes.ts:198:62 (get_global $core/cpu/cpu/Cpu.registerC) ) - ;;@ core/cpu/opcodes.ts:199:78 + ;;@ core/cpu/opcodes.ts:198:78 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:207:6 + ;;@ core/cpu/opcodes.ts:206:6 (set_global $core/cpu/cpu/Cpu.registerB (i32.and - ;;@ core/cpu/opcodes.ts:207:22 + ;;@ core/cpu/opcodes.ts:206:22 (call $core/helpers/index/splitHighByte (tee_local $0 - ;;@ core/cpu/opcodes.ts:207:40 + ;;@ core/cpu/opcodes.ts:206:40 (i32.and (i32.add - ;;@ core/cpu/opcodes.ts:205:29 + ;;@ core/cpu/opcodes.ts:204:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:205:51 + ;;@ core/cpu/opcodes.ts:204:51 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:205:66 + ;;@ core/cpu/opcodes.ts:204:66 (get_global $core/cpu/cpu/Cpu.registerC) ) (i32.const 1) @@ -12977,183 +12977,183 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:214:6 + ;;@ core/cpu/opcodes.ts:213:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:214:39 + ;;@ core/cpu/opcodes.ts:213:39 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:214:54 + ;;@ core/cpu/opcodes.ts:213:54 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:215:6 + ;;@ core/cpu/opcodes.ts:214:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:215:22 + ;;@ core/cpu/opcodes.ts:214:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:215:33 + ;;@ core/cpu/opcodes.ts:214:33 (i32.add (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:215:49 + ;;@ core/cpu/opcodes.ts:214:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:216:6 + ;;@ core/cpu/opcodes.ts:215:6 (if - ;;@ core/cpu/opcodes.ts:216:10 + ;;@ core/cpu/opcodes.ts:215:10 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:218:13 + ;;@ core/cpu/opcodes.ts:217:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:219:20 + ;;@ core/cpu/opcodes.ts:218:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:216:31 + ;;@ core/cpu/opcodes.ts:215:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:217:20 + ;;@ core/cpu/opcodes.ts:216:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:221:6 + ;;@ core/cpu/opcodes.ts:220:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:221:22 + ;;@ core/cpu/opcodes.ts:220:22 (i32.const 0) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:227:6 + ;;@ core/cpu/opcodes.ts:226:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:227:39 + ;;@ core/cpu/opcodes.ts:226:39 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:227:54 + ;;@ core/cpu/opcodes.ts:226:54 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:228:6 + ;;@ core/cpu/opcodes.ts:227:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:228:22 + ;;@ core/cpu/opcodes.ts:227:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:228:33 + ;;@ core/cpu/opcodes.ts:227:33 (i32.sub (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:228:49 + ;;@ core/cpu/opcodes.ts:227:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:229:6 + ;;@ core/cpu/opcodes.ts:228:6 (if - ;;@ core/cpu/opcodes.ts:229:10 + ;;@ core/cpu/opcodes.ts:228:10 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:231:13 + ;;@ core/cpu/opcodes.ts:230:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:232:20 + ;;@ core/cpu/opcodes.ts:231:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:229:31 + ;;@ core/cpu/opcodes.ts:228:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:230:20 + ;;@ core/cpu/opcodes.ts:229:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:234:6 + ;;@ core/cpu/opcodes.ts:233:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:234:22 + ;;@ core/cpu/opcodes.ts:233:22 (i32.const 1) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:241:6 + ;;@ core/cpu/opcodes.ts:240:6 (set_global $core/cpu/cpu/Cpu.registerB (i32.and - ;;@ core/cpu/opcodes.ts:241:22 + ;;@ core/cpu/opcodes.ts:240:22 (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:250:6 + ;;@ core/cpu/opcodes.ts:249:6 (if - ;;@ core/cpu/opcodes.ts:250:10 + ;;@ core/cpu/opcodes.ts:249:10 (i32.eq (i32.and - ;;@ core/cpu/opcodes.ts:250:11 + ;;@ core/cpu/opcodes.ts:249:11 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:250:27 + ;;@ core/cpu/opcodes.ts:249:27 (i32.const 128) ) - ;;@ core/cpu/opcodes.ts:250:37 + ;;@ core/cpu/opcodes.ts:249:37 (i32.const 128) ) - ;;@ core/cpu/opcodes.ts:250:43 + ;;@ core/cpu/opcodes.ts:249:43 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:251:21 + ;;@ core/cpu/opcodes.ts:250:21 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:252:13 + ;;@ core/cpu/opcodes.ts:251:13 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:253:21 + ;;@ core/cpu/opcodes.ts:252:21 (i32.const 0) ) ) - ;;@ core/cpu/opcodes.ts:255:6 + ;;@ core/cpu/opcodes.ts:254:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:255:22 + ;;@ core/cpu/opcodes.ts:254:22 (call $core/helpers/index/rotateByteLeft - ;;@ core/cpu/opcodes.ts:255:37 + ;;@ core/cpu/opcodes.ts:254:37 (get_global $core/cpu/cpu/Cpu.registerA) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:267:6 + ;;@ core/cpu/opcodes.ts:266:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:267:32 + ;;@ core/cpu/opcodes.ts:266:32 (i32.and (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:267:59 + ;;@ core/cpu/opcodes.ts:266:59 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:277:6 + ;;@ core/cpu/opcodes.ts:276:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:275:6 + ;;@ core/cpu/opcodes.ts:274:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:275:28 + ;;@ core/cpu/opcodes.ts:274:28 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:275:50 + ;;@ core/cpu/opcodes.ts:274:50 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:275:65 + ;;@ core/cpu/opcodes.ts:274:65 (get_global $core/cpu/cpu/Cpu.registerL) ) ) - ;;@ core/cpu/opcodes.ts:277:61 + ;;@ core/cpu/opcodes.ts:276:61 (i32.and - ;;@ core/cpu/opcodes.ts:276:6 + ;;@ core/cpu/opcodes.ts:275:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:276:29 + ;;@ core/cpu/opcodes.ts:275:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:276:51 + ;;@ core/cpu/opcodes.ts:275:51 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:276:66 + ;;@ core/cpu/opcodes.ts:275:66 (get_global $core/cpu/cpu/Cpu.registerC) ) ) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:277:79 + ;;@ core/cpu/opcodes.ts:276:79 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:279:6 + ;;@ core/cpu/opcodes.ts:278:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:279:22 + ;;@ core/cpu/opcodes.ts:278:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:278:6 + ;;@ core/cpu/opcodes.ts:277:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:278:24 + ;;@ core/cpu/opcodes.ts:277:24 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:278:36 + ;;@ core/cpu/opcodes.ts:277:36 (i32.add (get_local $0) (get_local $1) @@ -13164,36 +13164,36 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:280:6 + ;;@ core/cpu/opcodes.ts:279:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:280:22 + ;;@ core/cpu/opcodes.ts:279:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:281:6 + ;;@ core/cpu/opcodes.ts:280:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:281:22 + ;;@ core/cpu/opcodes.ts:280:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:282:13 + ;;@ core/cpu/opcodes.ts:281:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:288:6 + ;;@ core/cpu/opcodes.ts:287:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:288:22 + ;;@ core/cpu/opcodes.ts:287:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:288:49 + ;;@ core/cpu/opcodes.ts:287:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:288:66 + ;;@ core/cpu/opcodes.ts:287:66 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:288:81 + ;;@ core/cpu/opcodes.ts:287:81 (get_global $core/cpu/cpu/Cpu.registerC) ) ) @@ -13202,25 +13202,25 @@ ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:296:6 + ;;@ core/cpu/opcodes.ts:295:6 (set_global $core/cpu/cpu/Cpu.registerB (i32.and - ;;@ core/cpu/opcodes.ts:296:22 + ;;@ core/cpu/opcodes.ts:295:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:295:6 + ;;@ core/cpu/opcodes.ts:294:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:295:20 + ;;@ core/cpu/opcodes.ts:294:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:295:32 + ;;@ core/cpu/opcodes.ts:294:32 (i32.sub - ;;@ core/cpu/opcodes.ts:294:29 + ;;@ core/cpu/opcodes.ts:293:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:294:51 + ;;@ core/cpu/opcodes.ts:293:51 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:294:66 + ;;@ core/cpu/opcodes.ts:293:66 (get_global $core/cpu/cpu/Cpu.registerC) ) - ;;@ core/cpu/opcodes.ts:295:46 + ;;@ core/cpu/opcodes.ts:294:46 (i32.const 1) ) ) @@ -13231,127 +13231,127 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:303:6 + ;;@ core/cpu/opcodes.ts:302:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:303:39 + ;;@ core/cpu/opcodes.ts:302:39 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:303:54 + ;;@ core/cpu/opcodes.ts:302:54 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:304:6 + ;;@ core/cpu/opcodes.ts:303:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:304:22 + ;;@ core/cpu/opcodes.ts:303:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:304:33 + ;;@ core/cpu/opcodes.ts:303:33 (i32.add (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:304:49 + ;;@ core/cpu/opcodes.ts:303:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:305:6 + ;;@ core/cpu/opcodes.ts:304:6 (if - ;;@ core/cpu/opcodes.ts:305:10 + ;;@ core/cpu/opcodes.ts:304:10 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:307:13 + ;;@ core/cpu/opcodes.ts:306:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:308:20 + ;;@ core/cpu/opcodes.ts:307:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:305:31 + ;;@ core/cpu/opcodes.ts:304:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:306:20 + ;;@ core/cpu/opcodes.ts:305:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:310:6 + ;;@ core/cpu/opcodes.ts:309:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:310:22 + ;;@ core/cpu/opcodes.ts:309:22 (i32.const 0) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:316:6 + ;;@ core/cpu/opcodes.ts:315:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:316:39 + ;;@ core/cpu/opcodes.ts:315:39 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:316:54 + ;;@ core/cpu/opcodes.ts:315:54 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:317:6 + ;;@ core/cpu/opcodes.ts:316:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:317:22 + ;;@ core/cpu/opcodes.ts:316:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:317:33 + ;;@ core/cpu/opcodes.ts:316:33 (i32.sub (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:317:49 + ;;@ core/cpu/opcodes.ts:316:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:318:6 + ;;@ core/cpu/opcodes.ts:317:6 (if - ;;@ core/cpu/opcodes.ts:318:10 + ;;@ core/cpu/opcodes.ts:317:10 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:320:13 + ;;@ core/cpu/opcodes.ts:319:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:321:20 + ;;@ core/cpu/opcodes.ts:320:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:318:31 + ;;@ core/cpu/opcodes.ts:317:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:319:20 + ;;@ core/cpu/opcodes.ts:318:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:323:6 + ;;@ core/cpu/opcodes.ts:322:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:323:22 + ;;@ core/cpu/opcodes.ts:322:22 (i32.const 1) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:330:6 + ;;@ core/cpu/opcodes.ts:329:6 (set_global $core/cpu/cpu/Cpu.registerC (i32.and - ;;@ core/cpu/opcodes.ts:330:22 + ;;@ core/cpu/opcodes.ts:329:22 (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:339:6 + ;;@ core/cpu/opcodes.ts:338:6 (if - ;;@ core/cpu/opcodes.ts:339:10 + ;;@ core/cpu/opcodes.ts:338:10 (i32.gt_u (i32.and - ;;@ core/cpu/opcodes.ts:339:11 + ;;@ core/cpu/opcodes.ts:338:11 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:339:27 + ;;@ core/cpu/opcodes.ts:338:27 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:339:35 + ;;@ core/cpu/opcodes.ts:338:35 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:339:38 + ;;@ core/cpu/opcodes.ts:338:38 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:340:21 + ;;@ core/cpu/opcodes.ts:339:21 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:341:13 + ;;@ core/cpu/opcodes.ts:340:13 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:342:21 + ;;@ core/cpu/opcodes.ts:341:21 (i32.const 0) ) ) - ;;@ core/cpu/opcodes.ts:344:6 + ;;@ core/cpu/opcodes.ts:343:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:344:22 + ;;@ core/cpu/opcodes.ts:343:22 (call $core/helpers/index/rotateByteRight - ;;@ core/cpu/opcodes.ts:344:38 + ;;@ core/cpu/opcodes.ts:343:38 (get_global $core/cpu/cpu/Cpu.registerA) ) ) @@ -13361,66 +13361,66 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:208:6 + ;;@ core/cpu/opcodes.ts:207:6 (set_global $core/cpu/cpu/Cpu.registerC (i32.and - ;;@ core/cpu/opcodes.ts:208:22 + ;;@ core/cpu/opcodes.ts:207:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:209:13 + ;;@ core/cpu/opcodes.ts:208:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:257:6 + ;;@ core/cpu/opcodes.ts:256:6 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:257:18 + ;;@ core/cpu/opcodes.ts:256:18 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:258:6 + ;;@ core/cpu/opcodes.ts:257:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:258:22 + ;;@ core/cpu/opcodes.ts:257:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:259:6 + ;;@ core/cpu/opcodes.ts:258:6 (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:259:23 + ;;@ core/cpu/opcodes.ts:258:23 (i32.const 0) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:190:6 + ;;@ core/cpu/opcodes.ts:189:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:190:27 + ;;@ core/cpu/opcodes.ts:189:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:190:39 + ;;@ core/cpu/opcodes.ts:189:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:190:60 + ;;@ core/cpu/opcodes.ts:189:60 (i32.const 2) ) ) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:242:6 + ;;@ core/cpu/opcodes.ts:241:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:242:27 + ;;@ core/cpu/opcodes.ts:241:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:242:39 + ;;@ core/cpu/opcodes.ts:241:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:242:60 + ;;@ core/cpu/opcodes.ts:241:60 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:180:13 + ;;@ core/cpu/opcodes.ts:179:13 (i32.const 4) ) (func $core/cpu/flags/getCarryFlag (; 179 ;) (; has Stack IR ;) (type $i) (result i32) @@ -13582,7 +13582,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:356:9 + ;;@ core/cpu/opcodes.ts:355:9 (i32.const 16) ) (block @@ -13597,19 +13597,19 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:364:6 + ;;@ core/cpu/opcodes.ts:363:6 (if - ;;@ core/cpu/opcodes.ts:364:10 + ;;@ core/cpu/opcodes.ts:363:10 (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/cpu/opcodes.ts:367:8 + ;;@ core/cpu/opcodes.ts:366:8 (if - ;;@ core/cpu/opcodes.ts:367:12 + ;;@ core/cpu/opcodes.ts:366:12 (call $core/helpers/index/checkBitOnByte - ;;@ core/cpu/opcodes.ts:367:27 + ;;@ core/cpu/opcodes.ts:366:27 (i32.const 0) - ;;@ core/cpu/opcodes.ts:366:8 + ;;@ core/cpu/opcodes.ts:365:8 (tee_local $0 - ;;@ core/cpu/opcodes.ts:366:31 + ;;@ core/cpu/opcodes.ts:365:31 (i32.and (call $core/cpu/opcodes/eightBitLoadSyncCycles (i32.const 65357) @@ -13618,52 +13618,52 @@ ) ) ) - ;;@ core/cpu/opcodes.ts:367:44 + ;;@ core/cpu/opcodes.ts:366:44 (block - ;;@ core/cpu/opcodes.ts:382:10 + ;;@ core/cpu/opcodes.ts:381:10 (call $core/cpu/opcodes/eightBitStoreSyncCycles (i32.const 65357) (tee_local $0 - ;;@ core/cpu/opcodes.ts:372:10 + ;;@ core/cpu/opcodes.ts:371:10 (if (result i32) - ;;@ core/cpu/opcodes.ts:372:15 + ;;@ core/cpu/opcodes.ts:371:15 (call $core/helpers/index/checkBitOnByte - ;;@ core/cpu/opcodes.ts:372:30 + ;;@ core/cpu/opcodes.ts:371:30 (i32.const 7) - ;;@ core/cpu/opcodes.ts:369:10 + ;;@ core/cpu/opcodes.ts:368:10 (tee_local $0 - ;;@ core/cpu/opcodes.ts:369:24 + ;;@ core/cpu/opcodes.ts:368:24 (call $core/helpers/index/resetBitOnByte - ;;@ core/cpu/opcodes.ts:369:39 + ;;@ core/cpu/opcodes.ts:368:39 (i32.const 0) (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:375:17 + ;;@ core/cpu/opcodes.ts:374:17 (block (result i32) - ;;@ core/cpu/opcodes.ts:376:12 + ;;@ core/cpu/opcodes.ts:375:12 (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed - ;;@ core/cpu/opcodes.ts:376:33 + ;;@ core/cpu/opcodes.ts:375:33 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:377:26 + ;;@ core/cpu/opcodes.ts:376:26 (call $core/helpers/index/resetBitOnByte - ;;@ core/cpu/opcodes.ts:377:41 + ;;@ core/cpu/opcodes.ts:376:41 (i32.const 7) (get_local $0) ) ) - ;;@ core/cpu/opcodes.ts:372:47 + ;;@ core/cpu/opcodes.ts:371:47 (block (result i32) - ;;@ core/cpu/opcodes.ts:373:12 + ;;@ core/cpu/opcodes.ts:372:12 (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed - ;;@ core/cpu/opcodes.ts:373:33 + ;;@ core/cpu/opcodes.ts:372:33 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:374:26 + ;;@ core/cpu/opcodes.ts:373:26 (call $core/helpers/index/setBitOnByte - ;;@ core/cpu/opcodes.ts:374:39 + ;;@ core/cpu/opcodes.ts:373:39 (i32.const 7) (get_local $0) ) @@ -13671,28 +13671,28 @@ ) ) ) - ;;@ core/cpu/opcodes.ts:386:17 + ;;@ core/cpu/opcodes.ts:385:17 (return (i32.const 68) ) ) ) ) - ;;@ core/cpu/opcodes.ts:391:6 + ;;@ core/cpu/opcodes.ts:390:6 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/opcodes.ts:391:22 + ;;@ core/cpu/opcodes.ts:390:22 (i32.const 1) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:401:6 + ;;@ core/cpu/opcodes.ts:400:6 (set_global $core/cpu/cpu/Cpu.registerD (i32.and - ;;@ core/cpu/opcodes.ts:401:22 + ;;@ core/cpu/opcodes.ts:400:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:399:6 + ;;@ core/cpu/opcodes.ts:398:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:399:38 + ;;@ core/cpu/opcodes.ts:398:38 (i32.and (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) @@ -13702,63 +13702,63 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:402:6 + ;;@ core/cpu/opcodes.ts:401:6 (set_global $core/cpu/cpu/Cpu.registerE (i32.and - ;;@ core/cpu/opcodes.ts:402:22 + ;;@ core/cpu/opcodes.ts:401:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:403:6 + ;;@ core/cpu/opcodes.ts:402:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:403:27 + ;;@ core/cpu/opcodes.ts:402:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:403:39 + ;;@ core/cpu/opcodes.ts:402:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:403:60 + ;;@ core/cpu/opcodes.ts:402:60 (i32.const 2) ) ) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:410:6 + ;;@ core/cpu/opcodes.ts:409:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:410:30 + ;;@ core/cpu/opcodes.ts:409:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:410:47 + ;;@ core/cpu/opcodes.ts:409:47 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:410:62 + ;;@ core/cpu/opcodes.ts:409:62 (get_global $core/cpu/cpu/Cpu.registerE) ) - ;;@ core/cpu/opcodes.ts:410:78 + ;;@ core/cpu/opcodes.ts:409:78 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:417:6 + ;;@ core/cpu/opcodes.ts:416:6 (set_global $core/cpu/cpu/Cpu.registerD (i32.and - ;;@ core/cpu/opcodes.ts:417:22 + ;;@ core/cpu/opcodes.ts:416:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:416:6 + ;;@ core/cpu/opcodes.ts:415:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:416:20 + ;;@ core/cpu/opcodes.ts:415:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:416:32 + ;;@ core/cpu/opcodes.ts:415:32 (i32.add - ;;@ core/cpu/opcodes.ts:415:24 + ;;@ core/cpu/opcodes.ts:414:24 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:415:46 + ;;@ core/cpu/opcodes.ts:414:46 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:415:61 + ;;@ core/cpu/opcodes.ts:414:61 (get_global $core/cpu/cpu/Cpu.registerE) ) - ;;@ core/cpu/opcodes.ts:416:46 + ;;@ core/cpu/opcodes.ts:415:46 (i32.const 1) ) ) @@ -13769,181 +13769,181 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:424:6 + ;;@ core/cpu/opcodes.ts:423:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:424:39 + ;;@ core/cpu/opcodes.ts:423:39 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:424:54 + ;;@ core/cpu/opcodes.ts:423:54 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:425:6 + ;;@ core/cpu/opcodes.ts:424:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:425:22 + ;;@ core/cpu/opcodes.ts:424:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:425:33 + ;;@ core/cpu/opcodes.ts:424:33 (i32.add (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:425:49 + ;;@ core/cpu/opcodes.ts:424:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:426:6 + ;;@ core/cpu/opcodes.ts:425:6 (if - ;;@ core/cpu/opcodes.ts:426:10 + ;;@ core/cpu/opcodes.ts:425:10 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:428:13 + ;;@ core/cpu/opcodes.ts:427:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:429:20 + ;;@ core/cpu/opcodes.ts:428:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:426:31 + ;;@ core/cpu/opcodes.ts:425:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:427:20 + ;;@ core/cpu/opcodes.ts:426:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:431:6 + ;;@ core/cpu/opcodes.ts:430:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:431:22 + ;;@ core/cpu/opcodes.ts:430:22 (i32.const 0) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:437:6 + ;;@ core/cpu/opcodes.ts:436:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:437:39 + ;;@ core/cpu/opcodes.ts:436:39 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:437:54 + ;;@ core/cpu/opcodes.ts:436:54 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:438:6 + ;;@ core/cpu/opcodes.ts:437:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:438:22 + ;;@ core/cpu/opcodes.ts:437:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:438:33 + ;;@ core/cpu/opcodes.ts:437:33 (i32.sub (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:438:49 + ;;@ core/cpu/opcodes.ts:437:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:439:6 + ;;@ core/cpu/opcodes.ts:438:6 (if - ;;@ core/cpu/opcodes.ts:439:10 + ;;@ core/cpu/opcodes.ts:438:10 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:441:13 + ;;@ core/cpu/opcodes.ts:440:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:442:20 + ;;@ core/cpu/opcodes.ts:441:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:439:31 + ;;@ core/cpu/opcodes.ts:438:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:440:20 + ;;@ core/cpu/opcodes.ts:439:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:444:6 + ;;@ core/cpu/opcodes.ts:443:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:444:22 + ;;@ core/cpu/opcodes.ts:443:22 (i32.const 1) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:451:6 + ;;@ core/cpu/opcodes.ts:450:6 (set_global $core/cpu/cpu/Cpu.registerD (i32.and - ;;@ core/cpu/opcodes.ts:451:22 + ;;@ core/cpu/opcodes.ts:450:22 (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:460:6 + ;;@ core/cpu/opcodes.ts:459:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:460:23 + ;;@ core/cpu/opcodes.ts:459:23 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:461:6 + ;;@ core/cpu/opcodes.ts:460:6 (if - ;;@ core/cpu/opcodes.ts:461:10 + ;;@ core/cpu/opcodes.ts:460:10 (i32.eq (i32.and - ;;@ core/cpu/opcodes.ts:461:11 + ;;@ core/cpu/opcodes.ts:460:11 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:461:27 + ;;@ core/cpu/opcodes.ts:460:27 (i32.const 128) ) - ;;@ core/cpu/opcodes.ts:461:37 + ;;@ core/cpu/opcodes.ts:460:37 (i32.const 128) ) - ;;@ core/cpu/opcodes.ts:461:43 + ;;@ core/cpu/opcodes.ts:460:43 (set_local $0 - ;;@ core/cpu/opcodes.ts:462:21 + ;;@ core/cpu/opcodes.ts:461:21 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:464:6 + ;;@ core/cpu/opcodes.ts:463:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:464:22 + ;;@ core/cpu/opcodes.ts:463:22 (call $core/helpers/index/rotateByteLeftThroughCarry - ;;@ core/cpu/opcodes.ts:464:49 + ;;@ core/cpu/opcodes.ts:463:49 (get_global $core/cpu/cpu/Cpu.registerA) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:483:6 + ;;@ core/cpu/opcodes.ts:482:6 (call $core/cpu/instructions/relativeJump - ;;@ core/cpu/opcodes.ts:483:19 + ;;@ core/cpu/opcodes.ts:482:19 (call $core/cpu/opcodes/getDataByteOne) ) - ;;@ core/cpu/opcodes.ts:484:13 + ;;@ core/cpu/opcodes.ts:483:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:492:6 + ;;@ core/cpu/opcodes.ts:491:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:490:6 + ;;@ core/cpu/opcodes.ts:489:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:490:28 + ;;@ core/cpu/opcodes.ts:489:28 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:490:50 + ;;@ core/cpu/opcodes.ts:489:50 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:490:65 + ;;@ core/cpu/opcodes.ts:489:65 (get_global $core/cpu/cpu/Cpu.registerL) ) ) - ;;@ core/cpu/opcodes.ts:492:61 + ;;@ core/cpu/opcodes.ts:491:61 (i32.and - ;;@ core/cpu/opcodes.ts:491:6 + ;;@ core/cpu/opcodes.ts:490:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:491:29 + ;;@ core/cpu/opcodes.ts:490:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:491:51 + ;;@ core/cpu/opcodes.ts:490:51 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:491:66 + ;;@ core/cpu/opcodes.ts:490:66 (get_global $core/cpu/cpu/Cpu.registerE) ) ) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:492:79 + ;;@ core/cpu/opcodes.ts:491:79 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:494:6 + ;;@ core/cpu/opcodes.ts:493:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:494:22 + ;;@ core/cpu/opcodes.ts:493:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:493:6 + ;;@ core/cpu/opcodes.ts:492:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:493:24 + ;;@ core/cpu/opcodes.ts:492:24 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:493:36 + ;;@ core/cpu/opcodes.ts:492:36 (i32.add (get_local $0) (get_local $1) @@ -13954,38 +13954,38 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:495:6 + ;;@ core/cpu/opcodes.ts:494:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:495:22 + ;;@ core/cpu/opcodes.ts:494:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:496:6 + ;;@ core/cpu/opcodes.ts:495:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:496:22 + ;;@ core/cpu/opcodes.ts:495:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:497:13 + ;;@ core/cpu/opcodes.ts:496:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:503:6 + ;;@ core/cpu/opcodes.ts:502:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:503:22 + ;;@ core/cpu/opcodes.ts:502:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:503:49 + ;;@ core/cpu/opcodes.ts:502:49 (i32.and - ;;@ core/cpu/opcodes.ts:501:29 + ;;@ core/cpu/opcodes.ts:500:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:501:51 + ;;@ core/cpu/opcodes.ts:500:51 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:501:66 + ;;@ core/cpu/opcodes.ts:500:66 (get_global $core/cpu/cpu/Cpu.registerE) ) (i32.const 65535) @@ -13996,25 +13996,25 @@ ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:510:6 + ;;@ core/cpu/opcodes.ts:509:6 (set_global $core/cpu/cpu/Cpu.registerD (i32.and - ;;@ core/cpu/opcodes.ts:510:22 + ;;@ core/cpu/opcodes.ts:509:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:509:6 + ;;@ core/cpu/opcodes.ts:508:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:509:20 + ;;@ core/cpu/opcodes.ts:508:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:509:32 + ;;@ core/cpu/opcodes.ts:508:32 (i32.sub - ;;@ core/cpu/opcodes.ts:508:29 + ;;@ core/cpu/opcodes.ts:507:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:508:51 + ;;@ core/cpu/opcodes.ts:507:51 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:508:66 + ;;@ core/cpu/opcodes.ts:507:66 (get_global $core/cpu/cpu/Cpu.registerE) ) - ;;@ core/cpu/opcodes.ts:509:46 + ;;@ core/cpu/opcodes.ts:508:46 (i32.const 1) ) ) @@ -14025,127 +14025,127 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:517:6 + ;;@ core/cpu/opcodes.ts:516:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:517:39 + ;;@ core/cpu/opcodes.ts:516:39 (get_global $core/cpu/cpu/Cpu.registerE) - ;;@ core/cpu/opcodes.ts:517:54 + ;;@ core/cpu/opcodes.ts:516:54 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:518:6 + ;;@ core/cpu/opcodes.ts:517:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:518:22 + ;;@ core/cpu/opcodes.ts:517:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:518:33 + ;;@ core/cpu/opcodes.ts:517:33 (i32.add (get_global $core/cpu/cpu/Cpu.registerE) - ;;@ core/cpu/opcodes.ts:518:49 + ;;@ core/cpu/opcodes.ts:517:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:519:6 + ;;@ core/cpu/opcodes.ts:518:6 (if - ;;@ core/cpu/opcodes.ts:519:10 + ;;@ core/cpu/opcodes.ts:518:10 (get_global $core/cpu/cpu/Cpu.registerE) - ;;@ core/cpu/opcodes.ts:521:13 + ;;@ core/cpu/opcodes.ts:520:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:522:20 + ;;@ core/cpu/opcodes.ts:521:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:519:31 + ;;@ core/cpu/opcodes.ts:518:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:520:20 + ;;@ core/cpu/opcodes.ts:519:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:524:6 + ;;@ core/cpu/opcodes.ts:523:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:524:22 + ;;@ core/cpu/opcodes.ts:523:22 (i32.const 0) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:530:6 + ;;@ core/cpu/opcodes.ts:529:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:530:39 + ;;@ core/cpu/opcodes.ts:529:39 (get_global $core/cpu/cpu/Cpu.registerE) - ;;@ core/cpu/opcodes.ts:530:54 + ;;@ core/cpu/opcodes.ts:529:54 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:531:6 + ;;@ core/cpu/opcodes.ts:530:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:531:22 + ;;@ core/cpu/opcodes.ts:530:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:531:33 + ;;@ core/cpu/opcodes.ts:530:33 (i32.sub (get_global $core/cpu/cpu/Cpu.registerE) - ;;@ core/cpu/opcodes.ts:531:49 + ;;@ core/cpu/opcodes.ts:530:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:532:6 + ;;@ core/cpu/opcodes.ts:531:6 (if - ;;@ core/cpu/opcodes.ts:532:10 + ;;@ core/cpu/opcodes.ts:531:10 (get_global $core/cpu/cpu/Cpu.registerE) - ;;@ core/cpu/opcodes.ts:534:13 + ;;@ core/cpu/opcodes.ts:533:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:535:20 + ;;@ core/cpu/opcodes.ts:534:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:532:31 + ;;@ core/cpu/opcodes.ts:531:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:533:20 + ;;@ core/cpu/opcodes.ts:532:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:537:6 + ;;@ core/cpu/opcodes.ts:536:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:537:22 + ;;@ core/cpu/opcodes.ts:536:22 (i32.const 1) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:544:6 + ;;@ core/cpu/opcodes.ts:543:6 (set_global $core/cpu/cpu/Cpu.registerE (i32.and - ;;@ core/cpu/opcodes.ts:544:22 + ;;@ core/cpu/opcodes.ts:543:22 (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:553:6 + ;;@ core/cpu/opcodes.ts:552:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:553:22 + ;;@ core/cpu/opcodes.ts:552:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:554:6 + ;;@ core/cpu/opcodes.ts:553:6 (if - ;;@ core/cpu/opcodes.ts:554:10 + ;;@ core/cpu/opcodes.ts:553:10 (i32.eq (i32.and - ;;@ core/cpu/opcodes.ts:554:11 + ;;@ core/cpu/opcodes.ts:553:11 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:554:27 + ;;@ core/cpu/opcodes.ts:553:27 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:554:37 + ;;@ core/cpu/opcodes.ts:553:37 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:554:43 + ;;@ core/cpu/opcodes.ts:553:43 (set_local $0 - ;;@ core/cpu/opcodes.ts:555:20 + ;;@ core/cpu/opcodes.ts:554:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:557:6 + ;;@ core/cpu/opcodes.ts:556:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:557:22 + ;;@ core/cpu/opcodes.ts:556:22 (call $core/helpers/index/rotateByteRightThroughCarry - ;;@ core/cpu/opcodes.ts:557:50 + ;;@ core/cpu/opcodes.ts:556:50 (get_global $core/cpu/cpu/Cpu.registerA) ) ) @@ -14155,66 +14155,66 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:418:6 + ;;@ core/cpu/opcodes.ts:417:6 (set_global $core/cpu/cpu/Cpu.registerE (i32.and - ;;@ core/cpu/opcodes.ts:418:22 + ;;@ core/cpu/opcodes.ts:417:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:419:13 + ;;@ core/cpu/opcodes.ts:418:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:466:6 + ;;@ core/cpu/opcodes.ts:465:6 (if (get_local $0) - ;;@ core/cpu/opcodes.ts:466:22 + ;;@ core/cpu/opcodes.ts:465:22 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:467:21 + ;;@ core/cpu/opcodes.ts:466:21 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:468:13 + ;;@ core/cpu/opcodes.ts:467:13 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:469:21 + ;;@ core/cpu/opcodes.ts:468:21 (i32.const 0) ) ) - ;;@ core/cpu/opcodes.ts:472:6 + ;;@ core/cpu/opcodes.ts:471:6 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:472:18 + ;;@ core/cpu/opcodes.ts:471:18 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:473:6 + ;;@ core/cpu/opcodes.ts:472:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:473:22 + ;;@ core/cpu/opcodes.ts:472:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:474:6 + ;;@ core/cpu/opcodes.ts:473:6 (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:474:23 + ;;@ core/cpu/opcodes.ts:473:23 (i32.const 0) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:392:6 + ;;@ core/cpu/opcodes.ts:391:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:392:27 + ;;@ core/cpu/opcodes.ts:391:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:392:39 + ;;@ core/cpu/opcodes.ts:391:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:392:60 + ;;@ core/cpu/opcodes.ts:391:60 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:404:13 + ;;@ core/cpu/opcodes.ts:403:13 (i32.const 4) ) (func $core/cpu/flags/getZeroFlag (; 185 ;) (; has Stack IR ;) (type $i) (result i32) @@ -14282,7 +14282,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:576:9 + ;;@ core/cpu/opcodes.ts:575:9 (i32.const 32) ) (block @@ -14297,42 +14297,42 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:581:6 + ;;@ core/cpu/opcodes.ts:580:6 (if - ;;@ core/cpu/opcodes.ts:581:10 + ;;@ core/cpu/opcodes.ts:580:10 (call $core/cpu/flags/getZeroFlag) - ;;@ core/cpu/opcodes.ts:585:13 + ;;@ core/cpu/opcodes.ts:584:13 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:586:29 + ;;@ core/cpu/opcodes.ts:585:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:586:41 + ;;@ core/cpu/opcodes.ts:585:41 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:586:62 + ;;@ core/cpu/opcodes.ts:585:62 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:581:31 + ;;@ core/cpu/opcodes.ts:580:31 (call $core/cpu/instructions/relativeJump - ;;@ core/cpu/opcodes.ts:583:21 + ;;@ core/cpu/opcodes.ts:582:21 (call $core/cpu/opcodes/getDataByteOne) ) ) - ;;@ core/cpu/opcodes.ts:588:13 + ;;@ core/cpu/opcodes.ts:587:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:594:6 + ;;@ core/cpu/opcodes.ts:593:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:594:22 + ;;@ core/cpu/opcodes.ts:593:22 (call $core/helpers/index/splitHighByte (tee_local $0 - ;;@ core/cpu/opcodes.ts:594:40 + ;;@ core/cpu/opcodes.ts:593:40 (i32.and - ;;@ core/cpu/opcodes.ts:593:31 + ;;@ core/cpu/opcodes.ts:592:31 (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) ) @@ -14341,62 +14341,62 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:595:6 + ;;@ core/cpu/opcodes.ts:594:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:595:22 + ;;@ core/cpu/opcodes.ts:594:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:596:6 + ;;@ core/cpu/opcodes.ts:595:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:596:27 + ;;@ core/cpu/opcodes.ts:595:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:596:39 + ;;@ core/cpu/opcodes.ts:595:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:596:60 + ;;@ core/cpu/opcodes.ts:595:60 (i32.const 2) ) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:603:6 + ;;@ core/cpu/opcodes.ts:602:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:603:30 + ;;@ core/cpu/opcodes.ts:602:30 (i32.and - ;;@ core/cpu/opcodes.ts:601:6 + ;;@ core/cpu/opcodes.ts:600:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:601:29 + ;;@ core/cpu/opcodes.ts:600:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:601:51 + ;;@ core/cpu/opcodes.ts:600:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:601:66 + ;;@ core/cpu/opcodes.ts:600:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:603:43 + ;;@ core/cpu/opcodes.ts:602:43 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/opcodes.ts:605:6 + ;;@ core/cpu/opcodes.ts:604:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:605:22 + ;;@ core/cpu/opcodes.ts:604:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:604:6 + ;;@ core/cpu/opcodes.ts:603:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:604:20 + ;;@ core/cpu/opcodes.ts:603:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:604:32 + ;;@ core/cpu/opcodes.ts:603:32 (i32.add (get_local $0) - ;;@ core/cpu/opcodes.ts:604:46 + ;;@ core/cpu/opcodes.ts:603:46 (i32.const 1) ) ) @@ -14405,10 +14405,10 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:606:6 + ;;@ core/cpu/opcodes.ts:605:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:606:22 + ;;@ core/cpu/opcodes.ts:605:22 (call $core/helpers/index/splitLowByte (get_local $0) ) @@ -14417,25 +14417,25 @@ ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:613:6 + ;;@ core/cpu/opcodes.ts:612:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:613:22 + ;;@ core/cpu/opcodes.ts:612:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:612:6 + ;;@ core/cpu/opcodes.ts:611:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:612:20 + ;;@ core/cpu/opcodes.ts:611:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:612:32 + ;;@ core/cpu/opcodes.ts:611:32 (i32.add - ;;@ core/cpu/opcodes.ts:611:24 + ;;@ core/cpu/opcodes.ts:610:24 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:611:46 + ;;@ core/cpu/opcodes.ts:610:46 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:611:61 + ;;@ core/cpu/opcodes.ts:610:61 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:612:46 + ;;@ core/cpu/opcodes.ts:611:46 (i32.const 1) ) ) @@ -14444,209 +14444,209 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:614:6 + ;;@ core/cpu/opcodes.ts:613:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:614:22 + ;;@ core/cpu/opcodes.ts:613:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:615:13 + ;;@ core/cpu/opcodes.ts:614:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:620:6 + ;;@ core/cpu/opcodes.ts:619:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:620:39 + ;;@ core/cpu/opcodes.ts:619:39 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:620:54 + ;;@ core/cpu/opcodes.ts:619:54 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:621:6 + ;;@ core/cpu/opcodes.ts:620:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:621:22 + ;;@ core/cpu/opcodes.ts:620:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:621:33 + ;;@ core/cpu/opcodes.ts:620:33 (i32.add (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:621:49 + ;;@ core/cpu/opcodes.ts:620:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:622:6 + ;;@ core/cpu/opcodes.ts:621:6 (if - ;;@ core/cpu/opcodes.ts:622:10 + ;;@ core/cpu/opcodes.ts:621:10 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:624:13 + ;;@ core/cpu/opcodes.ts:623:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:625:20 + ;;@ core/cpu/opcodes.ts:624:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:622:31 + ;;@ core/cpu/opcodes.ts:621:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:623:20 + ;;@ core/cpu/opcodes.ts:622:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:627:6 + ;;@ core/cpu/opcodes.ts:626:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:627:22 + ;;@ core/cpu/opcodes.ts:626:22 (i32.const 0) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:633:6 + ;;@ core/cpu/opcodes.ts:632:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:633:39 + ;;@ core/cpu/opcodes.ts:632:39 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:633:54 + ;;@ core/cpu/opcodes.ts:632:54 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:634:6 + ;;@ core/cpu/opcodes.ts:633:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:634:22 + ;;@ core/cpu/opcodes.ts:633:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:634:33 + ;;@ core/cpu/opcodes.ts:633:33 (i32.sub (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:634:49 + ;;@ core/cpu/opcodes.ts:633:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:635:6 + ;;@ core/cpu/opcodes.ts:634:6 (if - ;;@ core/cpu/opcodes.ts:635:10 + ;;@ core/cpu/opcodes.ts:634:10 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:637:13 + ;;@ core/cpu/opcodes.ts:636:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:638:20 + ;;@ core/cpu/opcodes.ts:637:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:635:31 + ;;@ core/cpu/opcodes.ts:634:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:636:20 + ;;@ core/cpu/opcodes.ts:635:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:640:6 + ;;@ core/cpu/opcodes.ts:639:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:640:22 + ;;@ core/cpu/opcodes.ts:639:22 (i32.const 1) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:647:6 + ;;@ core/cpu/opcodes.ts:646:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:647:22 + ;;@ core/cpu/opcodes.ts:646:22 (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:657:6 + ;;@ core/cpu/opcodes.ts:656:6 (if - ;;@ core/cpu/opcodes.ts:657:10 + ;;@ core/cpu/opcodes.ts:656:10 (i32.gt_u (call $core/cpu/flags/getHalfCarryFlag) - ;;@ core/cpu/opcodes.ts:657:31 + ;;@ core/cpu/opcodes.ts:656:31 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:657:34 + ;;@ core/cpu/opcodes.ts:656:34 (set_local $1 (i32.const 6) ) ) - ;;@ core/cpu/opcodes.ts:660:6 + ;;@ core/cpu/opcodes.ts:659:6 (if - ;;@ core/cpu/opcodes.ts:660:10 + ;;@ core/cpu/opcodes.ts:659:10 (i32.gt_u (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:660:27 + ;;@ core/cpu/opcodes.ts:659:27 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:660:30 + ;;@ core/cpu/opcodes.ts:659:30 (set_local $1 - ;;@ core/cpu/opcodes.ts:661:21 + ;;@ core/cpu/opcodes.ts:660:21 (i32.or (get_local $1) - ;;@ core/cpu/opcodes.ts:661:34 + ;;@ core/cpu/opcodes.ts:660:34 (i32.const 96) ) ) ) - ;;@ core/cpu/opcodes.ts:677:6 + ;;@ core/cpu/opcodes.ts:676:6 (if (tee_local $0 - ;;@ core/cpu/opcodes.ts:664:6 + ;;@ core/cpu/opcodes.ts:663:6 (if (result i32) - ;;@ core/cpu/opcodes.ts:664:10 + ;;@ core/cpu/opcodes.ts:663:10 (i32.gt_u (call $core/cpu/flags/getSubtractFlag) - ;;@ core/cpu/opcodes.ts:664:30 + ;;@ core/cpu/opcodes.ts:663:30 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:665:27 + ;;@ core/cpu/opcodes.ts:664:27 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:665:38 + ;;@ core/cpu/opcodes.ts:664:38 (i32.sub (get_global $core/cpu/cpu/Cpu.registerA) (get_local $1) ) ) - ;;@ core/cpu/opcodes.ts:666:13 + ;;@ core/cpu/opcodes.ts:665:13 (block (result i32) - ;;@ core/cpu/opcodes.ts:667:8 + ;;@ core/cpu/opcodes.ts:666:8 (if - ;;@ core/cpu/opcodes.ts:667:12 + ;;@ core/cpu/opcodes.ts:666:12 (i32.gt_u (i32.and - ;;@ core/cpu/opcodes.ts:667:13 + ;;@ core/cpu/opcodes.ts:666:13 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:667:29 + ;;@ core/cpu/opcodes.ts:666:29 (i32.const 15) ) - ;;@ core/cpu/opcodes.ts:667:37 + ;;@ core/cpu/opcodes.ts:666:37 (i32.const 9) ) - ;;@ core/cpu/opcodes.ts:667:43 + ;;@ core/cpu/opcodes.ts:666:43 (set_local $1 - ;;@ core/cpu/opcodes.ts:668:23 + ;;@ core/cpu/opcodes.ts:667:23 (i32.or (get_local $1) - ;;@ core/cpu/opcodes.ts:668:36 + ;;@ core/cpu/opcodes.ts:667:36 (i32.const 6) ) ) ) - ;;@ core/cpu/opcodes.ts:670:8 + ;;@ core/cpu/opcodes.ts:669:8 (if - ;;@ core/cpu/opcodes.ts:670:12 + ;;@ core/cpu/opcodes.ts:669:12 (i32.gt_u (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:670:28 + ;;@ core/cpu/opcodes.ts:669:28 (i32.const 153) ) - ;;@ core/cpu/opcodes.ts:670:34 + ;;@ core/cpu/opcodes.ts:669:34 (set_local $1 - ;;@ core/cpu/opcodes.ts:671:23 + ;;@ core/cpu/opcodes.ts:670:23 (i32.or (get_local $1) - ;;@ core/cpu/opcodes.ts:671:36 + ;;@ core/cpu/opcodes.ts:670:36 (i32.const 96) ) ) ) - ;;@ core/cpu/opcodes.ts:673:27 + ;;@ core/cpu/opcodes.ts:672:27 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:673:38 + ;;@ core/cpu/opcodes.ts:672:38 (i32.add (get_global $core/cpu/cpu/Cpu.registerA) (get_local $1) @@ -14655,111 +14655,111 @@ ) ) ) - ;;@ core/cpu/opcodes.ts:679:13 + ;;@ core/cpu/opcodes.ts:678:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:680:20 + ;;@ core/cpu/opcodes.ts:679:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:677:34 + ;;@ core/cpu/opcodes.ts:676:34 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:678:20 + ;;@ core/cpu/opcodes.ts:677:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:682:6 + ;;@ core/cpu/opcodes.ts:681:6 (if - ;;@ core/cpu/opcodes.ts:682:10 + ;;@ core/cpu/opcodes.ts:681:10 (i32.and (get_local $1) - ;;@ core/cpu/opcodes.ts:682:24 + ;;@ core/cpu/opcodes.ts:681:24 (i32.const 96) ) - ;;@ core/cpu/opcodes.ts:682:37 + ;;@ core/cpu/opcodes.ts:681:37 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:683:21 + ;;@ core/cpu/opcodes.ts:682:21 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:684:13 + ;;@ core/cpu/opcodes.ts:683:13 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:685:21 + ;;@ core/cpu/opcodes.ts:684:21 (i32.const 0) ) ) - ;;@ core/cpu/opcodes.ts:687:6 + ;;@ core/cpu/opcodes.ts:686:6 (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:687:23 + ;;@ core/cpu/opcodes.ts:686:23 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:689:6 + ;;@ core/cpu/opcodes.ts:688:6 (set_global $core/cpu/cpu/Cpu.registerA (get_local $0) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:694:6 + ;;@ core/cpu/opcodes.ts:693:6 (if - ;;@ core/cpu/opcodes.ts:694:10 + ;;@ core/cpu/opcodes.ts:693:10 (i32.gt_u (call $core/cpu/flags/getZeroFlag) - ;;@ core/cpu/opcodes.ts:694:26 + ;;@ core/cpu/opcodes.ts:693:26 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:694:29 + ;;@ core/cpu/opcodes.ts:693:29 (call $core/cpu/instructions/relativeJump - ;;@ core/cpu/opcodes.ts:696:21 + ;;@ core/cpu/opcodes.ts:695:21 (call $core/cpu/opcodes/getDataByteOne) ) - ;;@ core/cpu/opcodes.ts:698:13 + ;;@ core/cpu/opcodes.ts:697:13 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:699:29 + ;;@ core/cpu/opcodes.ts:698:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:699:41 + ;;@ core/cpu/opcodes.ts:698:41 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:699:62 + ;;@ core/cpu/opcodes.ts:698:62 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:701:13 + ;;@ core/cpu/opcodes.ts:700:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:707:6 + ;;@ core/cpu/opcodes.ts:706:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:706:6 + ;;@ core/cpu/opcodes.ts:705:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:706:29 + ;;@ core/cpu/opcodes.ts:705:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:706:51 + ;;@ core/cpu/opcodes.ts:705:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:706:66 + ;;@ core/cpu/opcodes.ts:705:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) - ;;@ core/cpu/opcodes.ts:707:57 + ;;@ core/cpu/opcodes.ts:706:57 (i32.and (get_local $1) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:707:70 + ;;@ core/cpu/opcodes.ts:706:70 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:709:6 + ;;@ core/cpu/opcodes.ts:708:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:709:22 + ;;@ core/cpu/opcodes.ts:708:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:708:6 + ;;@ core/cpu/opcodes.ts:707:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:708:20 + ;;@ core/cpu/opcodes.ts:707:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:708:32 + ;;@ core/cpu/opcodes.ts:707:32 (i32.shl (get_local $1) - ;;@ core/cpu/opcodes.ts:708:46 + ;;@ core/cpu/opcodes.ts:707:46 (i32.const 1) ) ) @@ -14768,40 +14768,40 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:710:6 + ;;@ core/cpu/opcodes.ts:709:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:710:22 + ;;@ core/cpu/opcodes.ts:709:22 (call $core/helpers/index/splitLowByte (get_local $1) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:711:6 + ;;@ core/cpu/opcodes.ts:710:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:711:22 + ;;@ core/cpu/opcodes.ts:710:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:712:13 + ;;@ core/cpu/opcodes.ts:711:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:718:6 + ;;@ core/cpu/opcodes.ts:717:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:718:22 + ;;@ core/cpu/opcodes.ts:717:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:718:49 + ;;@ core/cpu/opcodes.ts:717:49 (i32.and - ;;@ core/cpu/opcodes.ts:716:6 + ;;@ core/cpu/opcodes.ts:715:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:716:29 + ;;@ core/cpu/opcodes.ts:715:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:716:51 + ;;@ core/cpu/opcodes.ts:715:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:716:66 + ;;@ core/cpu/opcodes.ts:715:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -14811,19 +14811,19 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:720:6 + ;;@ core/cpu/opcodes.ts:719:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:720:22 + ;;@ core/cpu/opcodes.ts:719:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:719:6 + ;;@ core/cpu/opcodes.ts:718:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:719:20 + ;;@ core/cpu/opcodes.ts:718:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:719:32 + ;;@ core/cpu/opcodes.ts:718:32 (i32.add (get_local $1) - ;;@ core/cpu/opcodes.ts:719:46 + ;;@ core/cpu/opcodes.ts:718:46 (i32.const 1) ) ) @@ -14832,10 +14832,10 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:721:6 + ;;@ core/cpu/opcodes.ts:720:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:721:22 + ;;@ core/cpu/opcodes.ts:720:22 (call $core/helpers/index/splitLowByte (get_local $1) ) @@ -14844,25 +14844,25 @@ ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:728:6 + ;;@ core/cpu/opcodes.ts:727:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:728:22 + ;;@ core/cpu/opcodes.ts:727:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:727:6 + ;;@ core/cpu/opcodes.ts:726:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:727:20 + ;;@ core/cpu/opcodes.ts:726:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:727:32 + ;;@ core/cpu/opcodes.ts:726:32 (i32.sub - ;;@ core/cpu/opcodes.ts:726:24 + ;;@ core/cpu/opcodes.ts:725:24 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:726:46 + ;;@ core/cpu/opcodes.ts:725:46 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:726:61 + ;;@ core/cpu/opcodes.ts:725:61 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:727:46 + ;;@ core/cpu/opcodes.ts:726:46 (i32.const 1) ) ) @@ -14871,133 +14871,133 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:729:6 + ;;@ core/cpu/opcodes.ts:728:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:729:22 + ;;@ core/cpu/opcodes.ts:728:22 (call $core/helpers/index/splitLowByte (get_local $1) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:730:13 + ;;@ core/cpu/opcodes.ts:729:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:735:6 + ;;@ core/cpu/opcodes.ts:734:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:735:39 + ;;@ core/cpu/opcodes.ts:734:39 (get_global $core/cpu/cpu/Cpu.registerL) - ;;@ core/cpu/opcodes.ts:735:54 + ;;@ core/cpu/opcodes.ts:734:54 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:736:6 + ;;@ core/cpu/opcodes.ts:735:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:736:22 + ;;@ core/cpu/opcodes.ts:735:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:736:33 + ;;@ core/cpu/opcodes.ts:735:33 (i32.add (get_global $core/cpu/cpu/Cpu.registerL) - ;;@ core/cpu/opcodes.ts:736:49 + ;;@ core/cpu/opcodes.ts:735:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:737:6 + ;;@ core/cpu/opcodes.ts:736:6 (if - ;;@ core/cpu/opcodes.ts:737:10 + ;;@ core/cpu/opcodes.ts:736:10 (get_global $core/cpu/cpu/Cpu.registerL) - ;;@ core/cpu/opcodes.ts:739:13 + ;;@ core/cpu/opcodes.ts:738:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:740:20 + ;;@ core/cpu/opcodes.ts:739:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:737:31 + ;;@ core/cpu/opcodes.ts:736:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:738:20 + ;;@ core/cpu/opcodes.ts:737:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:742:6 + ;;@ core/cpu/opcodes.ts:741:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:742:22 + ;;@ core/cpu/opcodes.ts:741:22 (i32.const 0) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:748:6 + ;;@ core/cpu/opcodes.ts:747:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:748:39 + ;;@ core/cpu/opcodes.ts:747:39 (get_global $core/cpu/cpu/Cpu.registerL) - ;;@ core/cpu/opcodes.ts:748:54 + ;;@ core/cpu/opcodes.ts:747:54 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:749:6 + ;;@ core/cpu/opcodes.ts:748:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:749:22 + ;;@ core/cpu/opcodes.ts:748:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:749:33 + ;;@ core/cpu/opcodes.ts:748:33 (i32.sub (get_global $core/cpu/cpu/Cpu.registerL) - ;;@ core/cpu/opcodes.ts:749:49 + ;;@ core/cpu/opcodes.ts:748:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:750:6 + ;;@ core/cpu/opcodes.ts:749:6 (if - ;;@ core/cpu/opcodes.ts:750:10 + ;;@ core/cpu/opcodes.ts:749:10 (get_global $core/cpu/cpu/Cpu.registerL) - ;;@ core/cpu/opcodes.ts:752:13 + ;;@ core/cpu/opcodes.ts:751:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:753:20 + ;;@ core/cpu/opcodes.ts:752:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:750:31 + ;;@ core/cpu/opcodes.ts:749:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:751:20 + ;;@ core/cpu/opcodes.ts:750:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:755:6 + ;;@ core/cpu/opcodes.ts:754:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:755:22 + ;;@ core/cpu/opcodes.ts:754:22 (i32.const 1) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:761:6 + ;;@ core/cpu/opcodes.ts:760:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:761:22 + ;;@ core/cpu/opcodes.ts:760:22 (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:768:6 + ;;@ core/cpu/opcodes.ts:767:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:768:22 + ;;@ core/cpu/opcodes.ts:767:22 (i32.xor - ;;@ core/cpu/opcodes.ts:768:23 + ;;@ core/cpu/opcodes.ts:767:23 (get_global $core/cpu/cpu/Cpu.registerA) (i32.const -1) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:769:6 + ;;@ core/cpu/opcodes.ts:768:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:769:22 + ;;@ core/cpu/opcodes.ts:768:22 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:770:6 + ;;@ core/cpu/opcodes.ts:769:6 (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:770:23 + ;;@ core/cpu/opcodes.ts:769:23 (i32.const 1) ) (br $folding-inner1) @@ -15006,20 +15006,20 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:648:6 + ;;@ core/cpu/opcodes.ts:647:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:648:27 + ;;@ core/cpu/opcodes.ts:647:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:648:39 + ;;@ core/cpu/opcodes.ts:647:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:648:60 + ;;@ core/cpu/opcodes.ts:647:60 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:597:13 + ;;@ core/cpu/opcodes.ts:596:13 (i32.const 4) ) (func $core/cpu/opcodes/handleOpcode3x (; 189 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -15047,7 +15047,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:778:9 + ;;@ core/cpu/opcodes.ts:777:9 (i32.const 48) ) (block @@ -15062,108 +15062,108 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:781:6 + ;;@ core/cpu/opcodes.ts:780:6 (if - ;;@ core/cpu/opcodes.ts:781:10 + ;;@ core/cpu/opcodes.ts:780:10 (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:785:13 + ;;@ core/cpu/opcodes.ts:784:13 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:786:29 + ;;@ core/cpu/opcodes.ts:785:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:786:41 + ;;@ core/cpu/opcodes.ts:785:41 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:786:62 + ;;@ core/cpu/opcodes.ts:785:62 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:781:32 + ;;@ core/cpu/opcodes.ts:780:32 (call $core/cpu/instructions/relativeJump - ;;@ core/cpu/opcodes.ts:783:21 + ;;@ core/cpu/opcodes.ts:782:21 (call $core/cpu/opcodes/getDataByteOne) ) ) - ;;@ core/cpu/opcodes.ts:788:13 + ;;@ core/cpu/opcodes.ts:787:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:793:6 + ;;@ core/cpu/opcodes.ts:792:6 (set_global $core/cpu/cpu/Cpu.stackPointer (i32.and - ;;@ core/cpu/opcodes.ts:793:25 + ;;@ core/cpu/opcodes.ts:792:25 (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:794:6 + ;;@ core/cpu/opcodes.ts:793:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:794:27 + ;;@ core/cpu/opcodes.ts:793:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:794:39 + ;;@ core/cpu/opcodes.ts:793:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:794:60 + ;;@ core/cpu/opcodes.ts:793:60 (i32.const 2) ) ) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:801:6 + ;;@ core/cpu/opcodes.ts:800:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:801:30 + ;;@ core/cpu/opcodes.ts:800:30 (i32.and - ;;@ core/cpu/opcodes.ts:799:6 + ;;@ core/cpu/opcodes.ts:798:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:799:29 + ;;@ core/cpu/opcodes.ts:798:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:799:51 + ;;@ core/cpu/opcodes.ts:798:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:799:66 + ;;@ core/cpu/opcodes.ts:798:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:801:43 + ;;@ core/cpu/opcodes.ts:800:43 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:809:6 + ;;@ core/cpu/opcodes.ts:808:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:809:25 + ;;@ core/cpu/opcodes.ts:808:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:809:37 + ;;@ core/cpu/opcodes.ts:808:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:809:56 + ;;@ core/cpu/opcodes.ts:808:56 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:810:13 + ;;@ core/cpu/opcodes.ts:809:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:822:6 + ;;@ core/cpu/opcodes.ts:821:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:817:6 + ;;@ core/cpu/opcodes.ts:816:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:817:27 + ;;@ core/cpu/opcodes.ts:816:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:817:54 + ;;@ core/cpu/opcodes.ts:816:54 (i32.and - ;;@ core/cpu/opcodes.ts:815:6 + ;;@ core/cpu/opcodes.ts:814:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:815:29 + ;;@ core/cpu/opcodes.ts:814:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:815:51 + ;;@ core/cpu/opcodes.ts:814:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:815:66 + ;;@ core/cpu/opcodes.ts:814:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -15173,52 +15173,52 @@ ) (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:825:6 + ;;@ core/cpu/opcodes.ts:824:6 (if - ;;@ core/cpu/opcodes.ts:823:6 + ;;@ core/cpu/opcodes.ts:822:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:823:19 + ;;@ core/cpu/opcodes.ts:822:19 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:823:30 + ;;@ core/cpu/opcodes.ts:822:30 (i32.add (get_local $1) (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:827:13 + ;;@ core/cpu/opcodes.ts:826:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:828:20 + ;;@ core/cpu/opcodes.ts:827:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:825:28 + ;;@ core/cpu/opcodes.ts:824:28 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:826:20 + ;;@ core/cpu/opcodes.ts:825:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:830:6 + ;;@ core/cpu/opcodes.ts:829:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:830:22 + ;;@ core/cpu/opcodes.ts:829:22 (i32.const 0) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:843:6 + ;;@ core/cpu/opcodes.ts:842:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:840:6 + ;;@ core/cpu/opcodes.ts:839:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:840:27 + ;;@ core/cpu/opcodes.ts:839:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:840:54 + ;;@ core/cpu/opcodes.ts:839:54 (i32.and - ;;@ core/cpu/opcodes.ts:838:6 + ;;@ core/cpu/opcodes.ts:837:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:838:29 + ;;@ core/cpu/opcodes.ts:837:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:838:51 + ;;@ core/cpu/opcodes.ts:837:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:838:66 + ;;@ core/cpu/opcodes.ts:837:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -15226,55 +15226,55 @@ ) ) ) - ;;@ core/cpu/opcodes.ts:843:55 + ;;@ core/cpu/opcodes.ts:842:55 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:845:6 + ;;@ core/cpu/opcodes.ts:844:6 (if - ;;@ core/cpu/opcodes.ts:844:6 + ;;@ core/cpu/opcodes.ts:843:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:844:19 + ;;@ core/cpu/opcodes.ts:843:19 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:844:30 + ;;@ core/cpu/opcodes.ts:843:30 (i32.sub (get_local $1) - ;;@ core/cpu/opcodes.ts:844:43 + ;;@ core/cpu/opcodes.ts:843:43 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:847:13 + ;;@ core/cpu/opcodes.ts:846:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:848:20 + ;;@ core/cpu/opcodes.ts:847:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:845:28 + ;;@ core/cpu/opcodes.ts:844:28 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:846:20 + ;;@ core/cpu/opcodes.ts:845:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:850:6 + ;;@ core/cpu/opcodes.ts:849:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:850:22 + ;;@ core/cpu/opcodes.ts:849:22 (i32.const 1) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:858:6 + ;;@ core/cpu/opcodes.ts:857:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:858:30 + ;;@ core/cpu/opcodes.ts:857:30 (i32.and - ;;@ core/cpu/opcodes.ts:858:35 + ;;@ core/cpu/opcodes.ts:857:35 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:858:52 + ;;@ core/cpu/opcodes.ts:857:52 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:858:67 + ;;@ core/cpu/opcodes.ts:857:67 (get_global $core/cpu/cpu/Cpu.registerL) ) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:858:83 + ;;@ core/cpu/opcodes.ts:857:83 (i32.and (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) @@ -15282,84 +15282,84 @@ ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:866:6 + ;;@ core/cpu/opcodes.ts:865:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:866:22 + ;;@ core/cpu/opcodes.ts:865:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:867:6 + ;;@ core/cpu/opcodes.ts:866:6 (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:867:23 + ;;@ core/cpu/opcodes.ts:866:23 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:868:6 + ;;@ core/cpu/opcodes.ts:867:6 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:868:19 + ;;@ core/cpu/opcodes.ts:867:19 (i32.const 1) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:873:6 + ;;@ core/cpu/opcodes.ts:872:6 (if - ;;@ core/cpu/opcodes.ts:873:10 + ;;@ core/cpu/opcodes.ts:872:10 (i32.eq (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:873:29 + ;;@ core/cpu/opcodes.ts:872:29 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:873:32 + ;;@ core/cpu/opcodes.ts:872:32 (call $core/cpu/instructions/relativeJump - ;;@ core/cpu/opcodes.ts:875:21 + ;;@ core/cpu/opcodes.ts:874:21 (call $core/cpu/opcodes/getDataByteOne) ) - ;;@ core/cpu/opcodes.ts:877:13 + ;;@ core/cpu/opcodes.ts:876:13 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:878:29 + ;;@ core/cpu/opcodes.ts:877:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:878:41 + ;;@ core/cpu/opcodes.ts:877:41 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:878:62 + ;;@ core/cpu/opcodes.ts:877:62 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:880:13 + ;;@ core/cpu/opcodes.ts:879:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:886:6 + ;;@ core/cpu/opcodes.ts:885:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:885:6 + ;;@ core/cpu/opcodes.ts:884:6 (tee_local $1 - ;;@ core/cpu/opcodes.ts:885:29 + ;;@ core/cpu/opcodes.ts:884:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:885:51 + ;;@ core/cpu/opcodes.ts:884:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:885:66 + ;;@ core/cpu/opcodes.ts:884:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) - ;;@ core/cpu/opcodes.ts:886:62 + ;;@ core/cpu/opcodes.ts:885:62 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:886:80 + ;;@ core/cpu/opcodes.ts:885:80 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:888:6 + ;;@ core/cpu/opcodes.ts:887:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:888:22 + ;;@ core/cpu/opcodes.ts:887:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:887:6 + ;;@ core/cpu/opcodes.ts:886:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:887:24 + ;;@ core/cpu/opcodes.ts:886:24 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:887:36 + ;;@ core/cpu/opcodes.ts:886:36 (i32.add (get_local $1) - ;;@ core/cpu/opcodes.ts:887:56 + ;;@ core/cpu/opcodes.ts:886:56 (get_global $core/cpu/cpu/Cpu.stackPointer) ) ) @@ -15368,40 +15368,40 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:889:6 + ;;@ core/cpu/opcodes.ts:888:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:889:22 + ;;@ core/cpu/opcodes.ts:888:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:890:6 + ;;@ core/cpu/opcodes.ts:889:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:890:22 + ;;@ core/cpu/opcodes.ts:889:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:891:13 + ;;@ core/cpu/opcodes.ts:890:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:897:6 + ;;@ core/cpu/opcodes.ts:896:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:897:22 + ;;@ core/cpu/opcodes.ts:896:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:897:49 + ;;@ core/cpu/opcodes.ts:896:49 (i32.and - ;;@ core/cpu/opcodes.ts:895:6 + ;;@ core/cpu/opcodes.ts:894:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:895:29 + ;;@ core/cpu/opcodes.ts:894:29 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:895:51 + ;;@ core/cpu/opcodes.ts:894:51 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:895:66 + ;;@ core/cpu/opcodes.ts:894:66 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -15413,141 +15413,141 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:905:6 + ;;@ core/cpu/opcodes.ts:904:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:905:25 + ;;@ core/cpu/opcodes.ts:904:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:905:37 + ;;@ core/cpu/opcodes.ts:904:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:905:56 + ;;@ core/cpu/opcodes.ts:904:56 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:906:13 + ;;@ core/cpu/opcodes.ts:905:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:911:6 + ;;@ core/cpu/opcodes.ts:910:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:911:39 + ;;@ core/cpu/opcodes.ts:910:39 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:911:54 + ;;@ core/cpu/opcodes.ts:910:54 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:912:6 + ;;@ core/cpu/opcodes.ts:911:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:912:22 + ;;@ core/cpu/opcodes.ts:911:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:912:33 + ;;@ core/cpu/opcodes.ts:911:33 (i32.add (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:912:49 + ;;@ core/cpu/opcodes.ts:911:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:913:6 + ;;@ core/cpu/opcodes.ts:912:6 (if - ;;@ core/cpu/opcodes.ts:913:10 + ;;@ core/cpu/opcodes.ts:912:10 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:915:13 + ;;@ core/cpu/opcodes.ts:914:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:916:20 + ;;@ core/cpu/opcodes.ts:915:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:913:31 + ;;@ core/cpu/opcodes.ts:912:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:914:20 + ;;@ core/cpu/opcodes.ts:913:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:918:6 + ;;@ core/cpu/opcodes.ts:917:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:918:22 + ;;@ core/cpu/opcodes.ts:917:22 (i32.const 0) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:924:6 + ;;@ core/cpu/opcodes.ts:923:6 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag - ;;@ core/cpu/opcodes.ts:924:39 + ;;@ core/cpu/opcodes.ts:923:39 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:924:54 + ;;@ core/cpu/opcodes.ts:923:54 (i32.const -1) ) - ;;@ core/cpu/opcodes.ts:925:6 + ;;@ core/cpu/opcodes.ts:924:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:925:22 + ;;@ core/cpu/opcodes.ts:924:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:925:33 + ;;@ core/cpu/opcodes.ts:924:33 (i32.sub (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:925:49 + ;;@ core/cpu/opcodes.ts:924:49 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:926:6 + ;;@ core/cpu/opcodes.ts:925:6 (if - ;;@ core/cpu/opcodes.ts:926:10 + ;;@ core/cpu/opcodes.ts:925:10 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:928:13 + ;;@ core/cpu/opcodes.ts:927:13 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:929:20 + ;;@ core/cpu/opcodes.ts:928:20 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:926:31 + ;;@ core/cpu/opcodes.ts:925:31 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:927:20 + ;;@ core/cpu/opcodes.ts:926:20 (i32.const 1) ) ) - ;;@ core/cpu/opcodes.ts:931:6 + ;;@ core/cpu/opcodes.ts:930:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:931:22 + ;;@ core/cpu/opcodes.ts:930:22 (i32.const 1) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:937:6 + ;;@ core/cpu/opcodes.ts:936:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:937:22 + ;;@ core/cpu/opcodes.ts:936:22 (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:944:6 + ;;@ core/cpu/opcodes.ts:943:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:944:22 + ;;@ core/cpu/opcodes.ts:943:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:945:6 + ;;@ core/cpu/opcodes.ts:944:6 (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:945:23 + ;;@ core/cpu/opcodes.ts:944:23 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:946:6 + ;;@ core/cpu/opcodes.ts:945:6 (if - ;;@ core/cpu/opcodes.ts:946:10 + ;;@ core/cpu/opcodes.ts:945:10 (i32.gt_u (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:946:27 + ;;@ core/cpu/opcodes.ts:945:27 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:946:30 + ;;@ core/cpu/opcodes.ts:945:30 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:947:21 + ;;@ core/cpu/opcodes.ts:946:21 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:948:13 + ;;@ core/cpu/opcodes.ts:947:13 (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:949:21 + ;;@ core/cpu/opcodes.ts:948:21 (i32.const 1) ) ) @@ -15557,19 +15557,19 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:803:6 + ;;@ core/cpu/opcodes.ts:802:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:803:22 + ;;@ core/cpu/opcodes.ts:802:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:802:6 + ;;@ core/cpu/opcodes.ts:801:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:802:20 + ;;@ core/cpu/opcodes.ts:801:20 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:802:32 + ;;@ core/cpu/opcodes.ts:801:32 (i32.sub (get_local $0) - ;;@ core/cpu/opcodes.ts:802:46 + ;;@ core/cpu/opcodes.ts:801:46 (i32.const 1) ) ) @@ -15578,10 +15578,10 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:804:6 + ;;@ core/cpu/opcodes.ts:803:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:804:22 + ;;@ core/cpu/opcodes.ts:803:22 (call $core/helpers/index/splitLowByte (get_local $0) ) @@ -15590,9 +15590,9 @@ ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:832:6 + ;;@ core/cpu/opcodes.ts:831:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:832:30 + ;;@ core/cpu/opcodes.ts:831:30 (i32.and (get_local $0) (i32.const 65535) @@ -15601,20 +15601,20 @@ ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:859:6 + ;;@ core/cpu/opcodes.ts:858:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:859:27 + ;;@ core/cpu/opcodes.ts:858:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:859:39 + ;;@ core/cpu/opcodes.ts:858:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:859:60 + ;;@ core/cpu/opcodes.ts:858:60 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:795:13 + ;;@ core/cpu/opcodes.ts:794:13 (i32.const 4) ) (func $core/cpu/opcodes/handleOpcode4x (; 190 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -15639,7 +15639,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:958:9 + ;;@ core/cpu/opcodes.ts:957:9 (i32.const 64) ) (block @@ -15648,7 +15648,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:963:9 + ;;@ core/cpu/opcodes.ts:962:9 (i32.const 65) ) ) @@ -15665,51 +15665,51 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:966:6 + ;;@ core/cpu/opcodes.ts:965:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:966:22 + ;;@ core/cpu/opcodes.ts:965:22 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:971:6 + ;;@ core/cpu/opcodes.ts:970:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:971:22 + ;;@ core/cpu/opcodes.ts:970:22 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:976:6 + ;;@ core/cpu/opcodes.ts:975:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:976:22 + ;;@ core/cpu/opcodes.ts:975:22 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:981:6 + ;;@ core/cpu/opcodes.ts:980:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:981:22 + ;;@ core/cpu/opcodes.ts:980:22 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:986:6 + ;;@ core/cpu/opcodes.ts:985:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:986:22 + ;;@ core/cpu/opcodes.ts:985:22 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:992:6 + ;;@ core/cpu/opcodes.ts:991:6 (set_global $core/cpu/cpu/Cpu.registerB (i32.and - ;;@ core/cpu/opcodes.ts:992:22 + ;;@ core/cpu/opcodes.ts:991:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:992:49 + ;;@ core/cpu/opcodes.ts:991:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:992:66 + ;;@ core/cpu/opcodes.ts:991:66 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:992:81 + ;;@ core/cpu/opcodes.ts:991:81 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -15718,60 +15718,60 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:997:6 + ;;@ core/cpu/opcodes.ts:996:6 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/opcodes.ts:997:22 + ;;@ core/cpu/opcodes.ts:996:22 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1002:6 + ;;@ core/cpu/opcodes.ts:1001:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:1002:22 + ;;@ core/cpu/opcodes.ts:1001:22 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1012:6 + ;;@ core/cpu/opcodes.ts:1011:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:1012:22 + ;;@ core/cpu/opcodes.ts:1011:22 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1017:6 + ;;@ core/cpu/opcodes.ts:1016:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:1017:22 + ;;@ core/cpu/opcodes.ts:1016:22 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1022:6 + ;;@ core/cpu/opcodes.ts:1021:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:1022:22 + ;;@ core/cpu/opcodes.ts:1021:22 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1027:6 + ;;@ core/cpu/opcodes.ts:1026:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:1027:22 + ;;@ core/cpu/opcodes.ts:1026:22 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1033:6 + ;;@ core/cpu/opcodes.ts:1032:6 (set_global $core/cpu/cpu/Cpu.registerC (i32.and - ;;@ core/cpu/opcodes.ts:1033:22 + ;;@ core/cpu/opcodes.ts:1032:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1033:49 + ;;@ core/cpu/opcodes.ts:1032:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1033:66 + ;;@ core/cpu/opcodes.ts:1032:66 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1033:81 + ;;@ core/cpu/opcodes.ts:1032:81 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -15780,9 +15780,9 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1038:6 + ;;@ core/cpu/opcodes.ts:1037:6 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/opcodes.ts:1038:22 + ;;@ core/cpu/opcodes.ts:1037:22 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) @@ -15791,7 +15791,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:962:13 + ;;@ core/cpu/opcodes.ts:961:13 (i32.const 4) ) (func $core/cpu/opcodes/handleOpcode5x (; 191 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -15816,7 +15816,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:1046:9 + ;;@ core/cpu/opcodes.ts:1045:9 (i32.const 80) ) (block @@ -15825,7 +15825,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1051:9 + ;;@ core/cpu/opcodes.ts:1050:9 (i32.const 81) ) ) @@ -15840,53 +15840,53 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:1049:6 + ;;@ core/cpu/opcodes.ts:1048:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:1049:22 + ;;@ core/cpu/opcodes.ts:1048:22 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1054:6 + ;;@ core/cpu/opcodes.ts:1053:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:1054:22 + ;;@ core/cpu/opcodes.ts:1053:22 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1064:6 + ;;@ core/cpu/opcodes.ts:1063:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:1064:22 + ;;@ core/cpu/opcodes.ts:1063:22 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1069:6 + ;;@ core/cpu/opcodes.ts:1068:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:1069:22 + ;;@ core/cpu/opcodes.ts:1068:22 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1074:6 + ;;@ core/cpu/opcodes.ts:1073:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:1074:22 + ;;@ core/cpu/opcodes.ts:1073:22 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1080:6 + ;;@ core/cpu/opcodes.ts:1079:6 (set_global $core/cpu/cpu/Cpu.registerD (i32.and - ;;@ core/cpu/opcodes.ts:1080:22 + ;;@ core/cpu/opcodes.ts:1079:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1080:49 + ;;@ core/cpu/opcodes.ts:1079:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1080:66 + ;;@ core/cpu/opcodes.ts:1079:66 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1080:81 + ;;@ core/cpu/opcodes.ts:1079:81 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -15895,60 +15895,60 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1085:6 + ;;@ core/cpu/opcodes.ts:1084:6 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/opcodes.ts:1085:22 + ;;@ core/cpu/opcodes.ts:1084:22 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1090:6 + ;;@ core/cpu/opcodes.ts:1089:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:1090:22 + ;;@ core/cpu/opcodes.ts:1089:22 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1095:6 + ;;@ core/cpu/opcodes.ts:1094:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:1095:22 + ;;@ core/cpu/opcodes.ts:1094:22 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1100:6 + ;;@ core/cpu/opcodes.ts:1099:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:1100:22 + ;;@ core/cpu/opcodes.ts:1099:22 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1110:6 + ;;@ core/cpu/opcodes.ts:1109:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:1110:22 + ;;@ core/cpu/opcodes.ts:1109:22 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1115:6 + ;;@ core/cpu/opcodes.ts:1114:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:1115:22 + ;;@ core/cpu/opcodes.ts:1114:22 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1121:6 + ;;@ core/cpu/opcodes.ts:1120:6 (set_global $core/cpu/cpu/Cpu.registerE (i32.and - ;;@ core/cpu/opcodes.ts:1121:22 + ;;@ core/cpu/opcodes.ts:1120:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1121:49 + ;;@ core/cpu/opcodes.ts:1120:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1121:66 + ;;@ core/cpu/opcodes.ts:1120:66 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1121:81 + ;;@ core/cpu/opcodes.ts:1120:81 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -15957,9 +15957,9 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1126:6 + ;;@ core/cpu/opcodes.ts:1125:6 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/opcodes.ts:1126:22 + ;;@ core/cpu/opcodes.ts:1125:22 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) @@ -15968,7 +15968,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1050:13 + ;;@ core/cpu/opcodes.ts:1049:13 (i32.const 4) ) (func $core/cpu/opcodes/handleOpcode6x (; 192 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -15993,7 +15993,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:1134:9 + ;;@ core/cpu/opcodes.ts:1133:9 (i32.const 96) ) (block @@ -16002,7 +16002,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1139:9 + ;;@ core/cpu/opcodes.ts:1138:9 (i32.const 97) ) ) @@ -16017,53 +16017,53 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:1137:6 + ;;@ core/cpu/opcodes.ts:1136:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:1137:22 + ;;@ core/cpu/opcodes.ts:1136:22 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1142:6 + ;;@ core/cpu/opcodes.ts:1141:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:1142:22 + ;;@ core/cpu/opcodes.ts:1141:22 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1147:6 + ;;@ core/cpu/opcodes.ts:1146:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:1147:22 + ;;@ core/cpu/opcodes.ts:1146:22 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1152:6 + ;;@ core/cpu/opcodes.ts:1151:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:1152:22 + ;;@ core/cpu/opcodes.ts:1151:22 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1162:6 + ;;@ core/cpu/opcodes.ts:1161:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:1162:22 + ;;@ core/cpu/opcodes.ts:1161:22 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1168:6 + ;;@ core/cpu/opcodes.ts:1167:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:1168:22 + ;;@ core/cpu/opcodes.ts:1167:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1168:49 + ;;@ core/cpu/opcodes.ts:1167:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1168:66 + ;;@ core/cpu/opcodes.ts:1167:66 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1168:81 + ;;@ core/cpu/opcodes.ts:1167:81 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -16072,60 +16072,60 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1173:6 + ;;@ core/cpu/opcodes.ts:1172:6 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/opcodes.ts:1173:22 + ;;@ core/cpu/opcodes.ts:1172:22 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1178:6 + ;;@ core/cpu/opcodes.ts:1177:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:1178:22 + ;;@ core/cpu/opcodes.ts:1177:22 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1183:6 + ;;@ core/cpu/opcodes.ts:1182:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:1183:22 + ;;@ core/cpu/opcodes.ts:1182:22 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1188:6 + ;;@ core/cpu/opcodes.ts:1187:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:1188:22 + ;;@ core/cpu/opcodes.ts:1187:22 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1193:6 + ;;@ core/cpu/opcodes.ts:1192:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:1193:22 + ;;@ core/cpu/opcodes.ts:1192:22 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1198:6 + ;;@ core/cpu/opcodes.ts:1197:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:1198:22 + ;;@ core/cpu/opcodes.ts:1197:22 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1209:6 + ;;@ core/cpu/opcodes.ts:1208:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:1209:22 + ;;@ core/cpu/opcodes.ts:1208:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1209:49 + ;;@ core/cpu/opcodes.ts:1208:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1209:66 + ;;@ core/cpu/opcodes.ts:1208:66 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1209:81 + ;;@ core/cpu/opcodes.ts:1208:81 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -16134,9 +16134,9 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1214:6 + ;;@ core/cpu/opcodes.ts:1213:6 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/opcodes.ts:1214:22 + ;;@ core/cpu/opcodes.ts:1213:22 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) @@ -16145,7 +16145,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1138:13 + ;;@ core/cpu/opcodes.ts:1137:13 (i32.const 4) ) (func $core/cpu/cpu/Cpu.enableHalt (; 193 ;) (; has Stack IR ;) (type $v) @@ -16164,34 +16164,34 @@ (return) ) ) - ;;@ core/cpu/cpu.ts:83:4 + ;;@ core/cpu/cpu.ts:81:4 (if (i32.eqz ;;@ core/cpu/cpu.ts:79:29 (i32.and (i32.and (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) - ;;@ core/cpu/cpu.ts:80:4 + ;;@ core/cpu/cpu.ts:79:65 (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) ) - ;;@ core/cpu/cpu.ts:81:4 + ;;@ core/cpu/cpu.ts:79:103 (i32.const 31) ) ) - ;;@ core/cpu/cpu.ts:83:29 + ;;@ core/cpu/cpu.ts:81:29 (block - ;;@ core/cpu/cpu.ts:84:6 + ;;@ core/cpu/cpu.ts:82:6 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:84:25 + ;;@ core/cpu/cpu.ts:82:25 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:85:6 + ;;@ core/cpu/cpu.ts:83:6 (return) ) ) - ;;@ core/cpu/cpu.ts:88:4 + ;;@ core/cpu/cpu.ts:86:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:88:20 + ;;@ core/cpu/cpu.ts:86:20 (i32.const 1) ) ) @@ -16217,7 +16217,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:1222:9 + ;;@ core/cpu/opcodes.ts:1221:9 (i32.const 112) ) (block @@ -16226,7 +16226,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1228:9 + ;;@ core/cpu/opcodes.ts:1227:9 (i32.const 113) ) ) @@ -16241,168 +16241,168 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:1226:6 + ;;@ core/cpu/opcodes.ts:1225:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1226:30 + ;;@ core/cpu/opcodes.ts:1225:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1226:47 + ;;@ core/cpu/opcodes.ts:1225:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1226:62 + ;;@ core/cpu/opcodes.ts:1225:62 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:1226:78 + ;;@ core/cpu/opcodes.ts:1225:78 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1232:6 + ;;@ core/cpu/opcodes.ts:1231:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1232:30 + ;;@ core/cpu/opcodes.ts:1231:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1232:47 + ;;@ core/cpu/opcodes.ts:1231:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1232:62 + ;;@ core/cpu/opcodes.ts:1231:62 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:1232:78 + ;;@ core/cpu/opcodes.ts:1231:78 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1238:6 + ;;@ core/cpu/opcodes.ts:1237:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1238:30 + ;;@ core/cpu/opcodes.ts:1237:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1238:47 + ;;@ core/cpu/opcodes.ts:1237:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1238:62 + ;;@ core/cpu/opcodes.ts:1237:62 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:1238:78 + ;;@ core/cpu/opcodes.ts:1237:78 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1244:6 + ;;@ core/cpu/opcodes.ts:1243:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1244:30 + ;;@ core/cpu/opcodes.ts:1243:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1244:47 + ;;@ core/cpu/opcodes.ts:1243:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1244:62 + ;;@ core/cpu/opcodes.ts:1243:62 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:1244:78 + ;;@ core/cpu/opcodes.ts:1243:78 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1250:6 + ;;@ core/cpu/opcodes.ts:1249:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1250:30 + ;;@ core/cpu/opcodes.ts:1249:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1250:47 + ;;@ core/cpu/opcodes.ts:1249:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1250:62 + ;;@ core/cpu/opcodes.ts:1249:62 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:1250:78 + ;;@ core/cpu/opcodes.ts:1249:78 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1256:6 + ;;@ core/cpu/opcodes.ts:1255:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1256:30 + ;;@ core/cpu/opcodes.ts:1255:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1256:47 + ;;@ core/cpu/opcodes.ts:1255:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1256:62 + ;;@ core/cpu/opcodes.ts:1255:62 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:1256:78 + ;;@ core/cpu/opcodes.ts:1255:78 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1267:6 + ;;@ core/cpu/opcodes.ts:1266:6 (if - ;;@ core/cpu/opcodes.ts:1267:10 + ;;@ core/cpu/opcodes.ts:1266:10 (i32.eqz - ;;@ core/cpu/opcodes.ts:1267:11 + ;;@ core/cpu/opcodes.ts:1266:11 (get_global $core/memory/memory/Memory.isHblankHdmaActive) ) - ;;@ core/cpu/opcodes.ts:1267:38 + ;;@ core/cpu/opcodes.ts:1266:38 (call $core/cpu/cpu/Cpu.enableHalt) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1275:6 + ;;@ core/cpu/opcodes.ts:1274:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1275:30 + ;;@ core/cpu/opcodes.ts:1274:30 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1275:47 + ;;@ core/cpu/opcodes.ts:1274:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1275:62 + ;;@ core/cpu/opcodes.ts:1274:62 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/opcodes.ts:1275:78 + ;;@ core/cpu/opcodes.ts:1274:78 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1280:6 + ;;@ core/cpu/opcodes.ts:1279:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:1280:22 + ;;@ core/cpu/opcodes.ts:1279:22 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1285:6 + ;;@ core/cpu/opcodes.ts:1284:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:1285:22 + ;;@ core/cpu/opcodes.ts:1284:22 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1290:6 + ;;@ core/cpu/opcodes.ts:1289:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:1290:22 + ;;@ core/cpu/opcodes.ts:1289:22 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1295:6 + ;;@ core/cpu/opcodes.ts:1294:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:1295:22 + ;;@ core/cpu/opcodes.ts:1294:22 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1300:6 + ;;@ core/cpu/opcodes.ts:1299:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:1300:22 + ;;@ core/cpu/opcodes.ts:1299:22 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1305:6 + ;;@ core/cpu/opcodes.ts:1304:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:1305:22 + ;;@ core/cpu/opcodes.ts:1304:22 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1312:6 + ;;@ core/cpu/opcodes.ts:1311:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:1312:22 + ;;@ core/cpu/opcodes.ts:1311:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1312:49 + ;;@ core/cpu/opcodes.ts:1311:49 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1312:66 + ;;@ core/cpu/opcodes.ts:1311:66 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1312:81 + ;;@ core/cpu/opcodes.ts:1311:81 (get_global $core/cpu/cpu/Cpu.registerL) ) ) @@ -16417,7 +16417,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1227:13 + ;;@ core/cpu/opcodes.ts:1226:13 (i32.const 4) ) (func $core/cpu/flags/checkAndSetEightBitCarryFlag (; 195 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) @@ -16676,7 +16676,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1325:9 + ;;@ core/cpu/opcodes.ts:1324:9 (i32.const 128) ) (block @@ -16691,130 +16691,130 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:1329:6 + ;;@ core/cpu/opcodes.ts:1328:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1329:19 + ;;@ core/cpu/opcodes.ts:1328:19 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1335:6 + ;;@ core/cpu/opcodes.ts:1334:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1335:19 + ;;@ core/cpu/opcodes.ts:1334:19 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1341:6 + ;;@ core/cpu/opcodes.ts:1340:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1341:19 + ;;@ core/cpu/opcodes.ts:1340:19 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1347:6 + ;;@ core/cpu/opcodes.ts:1346:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1347:19 + ;;@ core/cpu/opcodes.ts:1346:19 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1353:6 + ;;@ core/cpu/opcodes.ts:1352:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1353:19 + ;;@ core/cpu/opcodes.ts:1352:19 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1359:6 + ;;@ core/cpu/opcodes.ts:1358:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1359:19 + ;;@ core/cpu/opcodes.ts:1358:19 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1367:6 + ;;@ core/cpu/opcodes.ts:1366:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1366:27 + ;;@ core/cpu/opcodes.ts:1365:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1366:54 + ;;@ core/cpu/opcodes.ts:1365:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1366:71 + ;;@ core/cpu/opcodes.ts:1365:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1366:86 + ;;@ core/cpu/opcodes.ts:1365:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1373:6 + ;;@ core/cpu/opcodes.ts:1372:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1373:19 + ;;@ core/cpu/opcodes.ts:1372:19 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1379:6 + ;;@ core/cpu/opcodes.ts:1378:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1379:31 + ;;@ core/cpu/opcodes.ts:1378:31 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1385:6 + ;;@ core/cpu/opcodes.ts:1384:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1385:31 + ;;@ core/cpu/opcodes.ts:1384:31 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1391:6 + ;;@ core/cpu/opcodes.ts:1390:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1391:31 + ;;@ core/cpu/opcodes.ts:1390:31 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1397:6 + ;;@ core/cpu/opcodes.ts:1396:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1397:31 + ;;@ core/cpu/opcodes.ts:1396:31 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1403:6 + ;;@ core/cpu/opcodes.ts:1402:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1403:31 + ;;@ core/cpu/opcodes.ts:1402:31 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1409:6 + ;;@ core/cpu/opcodes.ts:1408:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1409:31 + ;;@ core/cpu/opcodes.ts:1408:31 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1417:6 + ;;@ core/cpu/opcodes.ts:1416:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1416:27 + ;;@ core/cpu/opcodes.ts:1415:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1416:54 + ;;@ core/cpu/opcodes.ts:1415:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1416:71 + ;;@ core/cpu/opcodes.ts:1415:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1416:86 + ;;@ core/cpu/opcodes.ts:1415:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1423:6 + ;;@ core/cpu/opcodes.ts:1422:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1423:31 + ;;@ core/cpu/opcodes.ts:1422:31 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) @@ -16823,7 +16823,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1330:13 + ;;@ core/cpu/opcodes.ts:1329:13 (i32.const 4) ) (func $core/cpu/instructions/subARegister (; 199 ;) (; has Stack IR ;) (type $iv) (param $0 i32) @@ -17017,7 +17017,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1431:9 + ;;@ core/cpu/opcodes.ts:1430:9 (i32.const 144) ) (block @@ -17032,130 +17032,130 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:1435:6 + ;;@ core/cpu/opcodes.ts:1434:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1435:19 + ;;@ core/cpu/opcodes.ts:1434:19 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1441:6 + ;;@ core/cpu/opcodes.ts:1440:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1441:19 + ;;@ core/cpu/opcodes.ts:1440:19 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1447:6 + ;;@ core/cpu/opcodes.ts:1446:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1447:19 + ;;@ core/cpu/opcodes.ts:1446:19 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1453:6 + ;;@ core/cpu/opcodes.ts:1452:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1453:19 + ;;@ core/cpu/opcodes.ts:1452:19 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1459:6 + ;;@ core/cpu/opcodes.ts:1458:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1459:19 + ;;@ core/cpu/opcodes.ts:1458:19 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1465:6 + ;;@ core/cpu/opcodes.ts:1464:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1465:19 + ;;@ core/cpu/opcodes.ts:1464:19 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1473:6 + ;;@ core/cpu/opcodes.ts:1472:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1472:27 + ;;@ core/cpu/opcodes.ts:1471:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1472:54 + ;;@ core/cpu/opcodes.ts:1471:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1472:71 + ;;@ core/cpu/opcodes.ts:1471:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1472:86 + ;;@ core/cpu/opcodes.ts:1471:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1479:6 + ;;@ core/cpu/opcodes.ts:1478:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1479:19 + ;;@ core/cpu/opcodes.ts:1478:19 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1485:6 + ;;@ core/cpu/opcodes.ts:1484:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1485:31 + ;;@ core/cpu/opcodes.ts:1484:31 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1491:6 + ;;@ core/cpu/opcodes.ts:1490:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1491:31 + ;;@ core/cpu/opcodes.ts:1490:31 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1497:6 + ;;@ core/cpu/opcodes.ts:1496:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1497:31 + ;;@ core/cpu/opcodes.ts:1496:31 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1503:6 + ;;@ core/cpu/opcodes.ts:1502:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1503:31 + ;;@ core/cpu/opcodes.ts:1502:31 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1509:6 + ;;@ core/cpu/opcodes.ts:1508:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1509:31 + ;;@ core/cpu/opcodes.ts:1508:31 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1515:6 + ;;@ core/cpu/opcodes.ts:1514:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1515:31 + ;;@ core/cpu/opcodes.ts:1514:31 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1523:6 + ;;@ core/cpu/opcodes.ts:1522:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1522:27 + ;;@ core/cpu/opcodes.ts:1521:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1522:54 + ;;@ core/cpu/opcodes.ts:1521:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1522:71 + ;;@ core/cpu/opcodes.ts:1521:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1522:86 + ;;@ core/cpu/opcodes.ts:1521:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1529:6 + ;;@ core/cpu/opcodes.ts:1528:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1529:31 + ;;@ core/cpu/opcodes.ts:1528:31 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) @@ -17164,7 +17164,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1436:13 + ;;@ core/cpu/opcodes.ts:1435:13 (i32.const 4) ) (func $core/cpu/instructions/andARegister (; 202 ;) (; has Stack IR ;) (type $iv) (param $0 i32) @@ -17274,7 +17274,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1537:9 + ;;@ core/cpu/opcodes.ts:1536:9 (i32.const 160) ) (block @@ -17289,130 +17289,130 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:1541:6 + ;;@ core/cpu/opcodes.ts:1540:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1541:19 + ;;@ core/cpu/opcodes.ts:1540:19 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1547:6 + ;;@ core/cpu/opcodes.ts:1546:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1547:19 + ;;@ core/cpu/opcodes.ts:1546:19 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1553:6 + ;;@ core/cpu/opcodes.ts:1552:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1553:19 + ;;@ core/cpu/opcodes.ts:1552:19 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1559:6 + ;;@ core/cpu/opcodes.ts:1558:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1559:19 + ;;@ core/cpu/opcodes.ts:1558:19 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1565:6 + ;;@ core/cpu/opcodes.ts:1564:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1565:19 + ;;@ core/cpu/opcodes.ts:1564:19 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1571:6 + ;;@ core/cpu/opcodes.ts:1570:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1571:19 + ;;@ core/cpu/opcodes.ts:1570:19 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1579:6 + ;;@ core/cpu/opcodes.ts:1578:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1578:27 + ;;@ core/cpu/opcodes.ts:1577:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1578:54 + ;;@ core/cpu/opcodes.ts:1577:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1578:71 + ;;@ core/cpu/opcodes.ts:1577:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1578:86 + ;;@ core/cpu/opcodes.ts:1577:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1586:6 + ;;@ core/cpu/opcodes.ts:1585:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:1586:19 + ;;@ core/cpu/opcodes.ts:1585:19 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1592:6 + ;;@ core/cpu/opcodes.ts:1591:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1592:19 + ;;@ core/cpu/opcodes.ts:1591:19 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1598:6 + ;;@ core/cpu/opcodes.ts:1597:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1598:19 + ;;@ core/cpu/opcodes.ts:1597:19 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1604:6 + ;;@ core/cpu/opcodes.ts:1603:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1604:19 + ;;@ core/cpu/opcodes.ts:1603:19 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1610:6 + ;;@ core/cpu/opcodes.ts:1609:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1610:19 + ;;@ core/cpu/opcodes.ts:1609:19 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1616:6 + ;;@ core/cpu/opcodes.ts:1615:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1616:19 + ;;@ core/cpu/opcodes.ts:1615:19 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1622:6 + ;;@ core/cpu/opcodes.ts:1621:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1622:19 + ;;@ core/cpu/opcodes.ts:1621:19 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1630:6 + ;;@ core/cpu/opcodes.ts:1629:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1629:27 + ;;@ core/cpu/opcodes.ts:1628:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1629:54 + ;;@ core/cpu/opcodes.ts:1628:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1629:71 + ;;@ core/cpu/opcodes.ts:1628:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1629:86 + ;;@ core/cpu/opcodes.ts:1628:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1636:6 + ;;@ core/cpu/opcodes.ts:1635:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:1636:19 + ;;@ core/cpu/opcodes.ts:1635:19 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) @@ -17421,7 +17421,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1542:13 + ;;@ core/cpu/opcodes.ts:1541:13 (i32.const 4) ) (func $core/cpu/instructions/orARegister (; 205 ;) (; has Stack IR ;) (type $iv) (param $0 i32) @@ -17541,7 +17541,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1644:9 + ;;@ core/cpu/opcodes.ts:1643:9 (i32.const 176) ) (block @@ -17556,130 +17556,130 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:1648:6 + ;;@ core/cpu/opcodes.ts:1647:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1648:18 + ;;@ core/cpu/opcodes.ts:1647:18 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1654:6 + ;;@ core/cpu/opcodes.ts:1653:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1654:18 + ;;@ core/cpu/opcodes.ts:1653:18 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1660:6 + ;;@ core/cpu/opcodes.ts:1659:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1660:18 + ;;@ core/cpu/opcodes.ts:1659:18 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1666:6 + ;;@ core/cpu/opcodes.ts:1665:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1666:18 + ;;@ core/cpu/opcodes.ts:1665:18 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1672:6 + ;;@ core/cpu/opcodes.ts:1671:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1672:18 + ;;@ core/cpu/opcodes.ts:1671:18 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1678:6 + ;;@ core/cpu/opcodes.ts:1677:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1678:18 + ;;@ core/cpu/opcodes.ts:1677:18 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1686:6 + ;;@ core/cpu/opcodes.ts:1685:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1685:27 + ;;@ core/cpu/opcodes.ts:1684:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1685:54 + ;;@ core/cpu/opcodes.ts:1684:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1685:71 + ;;@ core/cpu/opcodes.ts:1684:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1685:86 + ;;@ core/cpu/opcodes.ts:1684:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1692:6 + ;;@ core/cpu/opcodes.ts:1691:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:1692:18 + ;;@ core/cpu/opcodes.ts:1691:18 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1698:6 + ;;@ core/cpu/opcodes.ts:1697:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1698:18 + ;;@ core/cpu/opcodes.ts:1697:18 (get_global $core/cpu/cpu/Cpu.registerB) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1704:6 + ;;@ core/cpu/opcodes.ts:1703:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1704:18 + ;;@ core/cpu/opcodes.ts:1703:18 (get_global $core/cpu/cpu/Cpu.registerC) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1710:6 + ;;@ core/cpu/opcodes.ts:1709:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1710:18 + ;;@ core/cpu/opcodes.ts:1709:18 (get_global $core/cpu/cpu/Cpu.registerD) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1716:6 + ;;@ core/cpu/opcodes.ts:1715:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1716:18 + ;;@ core/cpu/opcodes.ts:1715:18 (get_global $core/cpu/cpu/Cpu.registerE) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1722:6 + ;;@ core/cpu/opcodes.ts:1721:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1722:18 + ;;@ core/cpu/opcodes.ts:1721:18 (get_global $core/cpu/cpu/Cpu.registerH) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1728:6 + ;;@ core/cpu/opcodes.ts:1727:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1728:18 + ;;@ core/cpu/opcodes.ts:1727:18 (get_global $core/cpu/cpu/Cpu.registerL) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1736:6 + ;;@ core/cpu/opcodes.ts:1735:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1735:27 + ;;@ core/cpu/opcodes.ts:1734:27 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1735:54 + ;;@ core/cpu/opcodes.ts:1734:54 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1735:71 + ;;@ core/cpu/opcodes.ts:1734:71 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:1735:86 + ;;@ core/cpu/opcodes.ts:1734:86 (get_global $core/cpu/cpu/Cpu.registerL) ) ) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1742:6 + ;;@ core/cpu/opcodes.ts:1741:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:1742:18 + ;;@ core/cpu/opcodes.ts:1741:18 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) @@ -17688,7 +17688,7 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1649:13 + ;;@ core/cpu/opcodes.ts:1648:13 (i32.const 4) ) (func $core/memory/load/sixteenBitLoadFromGBMemory (; 208 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -17760,12 +17760,12 @@ ) ) (func $core/cpu/opcodes/sixteenBitLoadSyncCycles (; 209 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) - ;;@ core/cpu/opcodes.ts:148:2 + ;;@ core/cpu/opcodes.ts:147:2 (call $core/core/syncCycles - ;;@ core/cpu/opcodes.ts:148:13 + ;;@ core/cpu/opcodes.ts:147:13 (i32.const 8) ) - ;;@ core/cpu/opcodes.ts:150:54 + ;;@ core/cpu/opcodes.ts:149:54 (call $core/memory/load/sixteenBitLoadFromGBMemory (get_local $0) ) @@ -19616,7 +19616,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1750:9 + ;;@ core/cpu/opcodes.ts:1749:9 (i32.const 192) ) (block @@ -19632,62 +19632,62 @@ ) ) (br_if $folding-inner2 - ;;@ core/cpu/opcodes.ts:1753:10 + ;;@ core/cpu/opcodes.ts:1752:10 (call $core/cpu/flags/getZeroFlag) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:1765:6 + ;;@ core/cpu/opcodes.ts:1764:6 (set_local $1 - ;;@ core/cpu/opcodes.ts:1765:29 + ;;@ core/cpu/opcodes.ts:1764:29 (i32.and (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1765:54 + ;;@ core/cpu/opcodes.ts:1764:54 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:1766:6 + ;;@ core/cpu/opcodes.ts:1765:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1766:25 + ;;@ core/cpu/opcodes.ts:1765:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1766:37 + ;;@ core/cpu/opcodes.ts:1765:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1766:56 + ;;@ core/cpu/opcodes.ts:1765:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1767:6 + ;;@ core/cpu/opcodes.ts:1766:6 (set_global $core/cpu/cpu/Cpu.registerB (i32.and - ;;@ core/cpu/opcodes.ts:1767:22 + ;;@ core/cpu/opcodes.ts:1766:22 (call $core/helpers/index/splitHighByte (get_local $1) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:1768:6 + ;;@ core/cpu/opcodes.ts:1767:6 (set_global $core/cpu/cpu/Cpu.registerC (i32.and - ;;@ core/cpu/opcodes.ts:1768:22 + ;;@ core/cpu/opcodes.ts:1767:22 (call $core/helpers/index/splitLowByte (get_local $1) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:1769:13 + ;;@ core/cpu/opcodes.ts:1768:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:1773:6 + ;;@ core/cpu/opcodes.ts:1772:6 (if - ;;@ core/cpu/opcodes.ts:1773:10 + ;;@ core/cpu/opcodes.ts:1772:10 (call $core/cpu/flags/getZeroFlag) (br $folding-inner4) (br $folding-inner1) @@ -19695,179 +19695,179 @@ ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:1790:6 + ;;@ core/cpu/opcodes.ts:1789:6 (if - ;;@ core/cpu/opcodes.ts:1790:10 + ;;@ core/cpu/opcodes.ts:1789:10 (call $core/cpu/flags/getZeroFlag) (br $folding-inner4) (br $folding-inner0) ) ) - ;;@ core/cpu/opcodes.ts:1804:6 + ;;@ core/cpu/opcodes.ts:1803:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1804:25 + ;;@ core/cpu/opcodes.ts:1803:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1804:37 + ;;@ core/cpu/opcodes.ts:1803:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1804:56 + ;;@ core/cpu/opcodes.ts:1803:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1806:6 + ;;@ core/cpu/opcodes.ts:1805:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1806:32 + ;;@ core/cpu/opcodes.ts:1805:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1806:50 + ;;@ core/cpu/opcodes.ts:1805:50 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1806:67 + ;;@ core/cpu/opcodes.ts:1805:67 (get_global $core/cpu/cpu/Cpu.registerB) - ;;@ core/cpu/opcodes.ts:1806:82 + ;;@ core/cpu/opcodes.ts:1805:82 (get_global $core/cpu/cpu/Cpu.registerC) ) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:1813:6 + ;;@ core/cpu/opcodes.ts:1812:6 (call $core/cpu/instructions/addARegister - ;;@ core/cpu/opcodes.ts:1813:19 + ;;@ core/cpu/opcodes.ts:1812:19 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner5) ) - ;;@ core/cpu/opcodes.ts:1819:6 + ;;@ core/cpu/opcodes.ts:1818:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1819:25 + ;;@ core/cpu/opcodes.ts:1818:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1819:37 + ;;@ core/cpu/opcodes.ts:1818:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1819:56 + ;;@ core/cpu/opcodes.ts:1818:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1821:6 + ;;@ core/cpu/opcodes.ts:1820:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1821:32 + ;;@ core/cpu/opcodes.ts:1820:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1821:50 + ;;@ core/cpu/opcodes.ts:1820:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:1822:6 + ;;@ core/cpu/opcodes.ts:1821:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1822:27 + ;;@ core/cpu/opcodes.ts:1821:27 (i32.const 0) ) (br $folding-inner2) ) (br_if $folding-inner2 - ;;@ core/cpu/opcodes.ts:1827:10 + ;;@ core/cpu/opcodes.ts:1826:10 (i32.ne (call $core/cpu/flags/getZeroFlag) - ;;@ core/cpu/opcodes.ts:1827:28 + ;;@ core/cpu/opcodes.ts:1826:28 (i32.const 1) ) ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:1839:6 + ;;@ core/cpu/opcodes.ts:1838:6 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:1839:27 + ;;@ core/cpu/opcodes.ts:1838:27 (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1839:57 + ;;@ core/cpu/opcodes.ts:1838:57 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:1840:6 + ;;@ core/cpu/opcodes.ts:1839:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1840:25 + ;;@ core/cpu/opcodes.ts:1839:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1840:37 + ;;@ core/cpu/opcodes.ts:1839:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1840:56 + ;;@ core/cpu/opcodes.ts:1839:56 (i32.const 2) ) ) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:1845:6 + ;;@ core/cpu/opcodes.ts:1844:6 (if - ;;@ core/cpu/opcodes.ts:1845:10 + ;;@ core/cpu/opcodes.ts:1844:10 (i32.eq (call $core/cpu/flags/getZeroFlag) - ;;@ core/cpu/opcodes.ts:1845:28 + ;;@ core/cpu/opcodes.ts:1844:28 (i32.const 1) ) (br $folding-inner1) (br $folding-inner4) ) ) - ;;@ core/cpu/opcodes.ts:1857:6 + ;;@ core/cpu/opcodes.ts:1856:6 (set_local $1 - ;;@ core/cpu/opcodes.ts:1857:26 + ;;@ core/cpu/opcodes.ts:1856:26 (call $core/cpu/cbOpcodes/handleCbOpcode - ;;@ core/cpu/opcodes.ts:1857:41 + ;;@ core/cpu/opcodes.ts:1856:41 (i32.and (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) ) ) - ;;@ core/cpu/opcodes.ts:1858:6 + ;;@ core/cpu/opcodes.ts:1857:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1858:27 + ;;@ core/cpu/opcodes.ts:1857:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1858:39 + ;;@ core/cpu/opcodes.ts:1857:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1858:60 + ;;@ core/cpu/opcodes.ts:1857:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:1859:13 + ;;@ core/cpu/opcodes.ts:1858:13 (return (get_local $1) ) ) - ;;@ core/cpu/opcodes.ts:1863:6 + ;;@ core/cpu/opcodes.ts:1862:6 (if - ;;@ core/cpu/opcodes.ts:1863:10 + ;;@ core/cpu/opcodes.ts:1862:10 (i32.eq (call $core/cpu/flags/getZeroFlag) - ;;@ core/cpu/opcodes.ts:1863:28 + ;;@ core/cpu/opcodes.ts:1862:28 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:1863:31 + ;;@ core/cpu/opcodes.ts:1862:31 (block - ;;@ core/cpu/opcodes.ts:1864:8 + ;;@ core/cpu/opcodes.ts:1863:8 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1864:27 + ;;@ core/cpu/opcodes.ts:1863:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1864:39 + ;;@ core/cpu/opcodes.ts:1863:39 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1864:58 + ;;@ core/cpu/opcodes.ts:1863:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1866:8 + ;;@ core/cpu/opcodes.ts:1865:8 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1866:34 + ;;@ core/cpu/opcodes.ts:1865:34 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1866:52 + ;;@ core/cpu/opcodes.ts:1865:52 (i32.and (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1866:73 + ;;@ core/cpu/opcodes.ts:1865:73 (i32.const 2) ) (i32.const 65535) @@ -19880,35 +19880,35 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:1888:6 + ;;@ core/cpu/opcodes.ts:1887:6 (call $core/cpu/instructions/addAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:1888:31 + ;;@ core/cpu/opcodes.ts:1887:31 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner5) ) - ;;@ core/cpu/opcodes.ts:1894:6 + ;;@ core/cpu/opcodes.ts:1893:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1894:25 + ;;@ core/cpu/opcodes.ts:1893:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1894:37 + ;;@ core/cpu/opcodes.ts:1893:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1894:56 + ;;@ core/cpu/opcodes.ts:1893:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1896:6 + ;;@ core/cpu/opcodes.ts:1895:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1896:32 + ;;@ core/cpu/opcodes.ts:1895:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1896:50 + ;;@ core/cpu/opcodes.ts:1895:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:1897:6 + ;;@ core/cpu/opcodes.ts:1896:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1897:27 + ;;@ core/cpu/opcodes.ts:1896:27 (i32.const 8) ) (br $folding-inner2) @@ -19917,37 +19917,37 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1791:8 + ;;@ core/cpu/opcodes.ts:1790:8 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1791:27 + ;;@ core/cpu/opcodes.ts:1790:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1791:39 + ;;@ core/cpu/opcodes.ts:1790:39 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1791:58 + ;;@ core/cpu/opcodes.ts:1790:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1793:8 + ;;@ core/cpu/opcodes.ts:1792:8 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1793:34 + ;;@ core/cpu/opcodes.ts:1792:34 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1793:52 + ;;@ core/cpu/opcodes.ts:1792:52 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1793:64 + ;;@ core/cpu/opcodes.ts:1792:64 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1793:85 + ;;@ core/cpu/opcodes.ts:1792:85 (i32.const 2) ) ) ) ) - ;;@ core/cpu/opcodes.ts:1775:8 + ;;@ core/cpu/opcodes.ts:1774:8 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:1775:29 + ;;@ core/cpu/opcodes.ts:1774:29 (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) ) @@ -19957,64 +19957,64 @@ (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:1755:8 + ;;@ core/cpu/opcodes.ts:1754:8 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:1755:29 + ;;@ core/cpu/opcodes.ts:1754:29 (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1755:59 + ;;@ core/cpu/opcodes.ts:1754:59 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:1756:8 + ;;@ core/cpu/opcodes.ts:1755:8 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1756:27 + ;;@ core/cpu/opcodes.ts:1755:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1756:39 + ;;@ core/cpu/opcodes.ts:1755:39 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1756:58 + ;;@ core/cpu/opcodes.ts:1755:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1757:15 + ;;@ core/cpu/opcodes.ts:1756:15 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:1778:8 + ;;@ core/cpu/opcodes.ts:1777:8 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1778:29 + ;;@ core/cpu/opcodes.ts:1777:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1778:41 + ;;@ core/cpu/opcodes.ts:1777:41 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1778:62 + ;;@ core/cpu/opcodes.ts:1777:62 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1779:15 + ;;@ core/cpu/opcodes.ts:1778:15 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:1814:6 + ;;@ core/cpu/opcodes.ts:1813:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1814:27 + ;;@ core/cpu/opcodes.ts:1813:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1814:39 + ;;@ core/cpu/opcodes.ts:1813:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1814:60 + ;;@ core/cpu/opcodes.ts:1813:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:1815:13 + ;;@ core/cpu/opcodes.ts:1814:13 (i32.const 4) ) (func $core/interrupts/interrupts/setInterrupts (; 222 ;) (; has Stack IR ;) (type $iv) (param $0 i32) @@ -20061,7 +20061,7 @@ (tee_local $1 (get_local $0) ) - ;;@ core/cpu/opcodes.ts:1905:9 + ;;@ core/cpu/opcodes.ts:1904:9 (i32.const 208) ) (block @@ -20077,95 +20077,95 @@ ) ) (br_if $folding-inner1 - ;;@ core/cpu/opcodes.ts:1908:10 + ;;@ core/cpu/opcodes.ts:1907:10 (call $core/cpu/flags/getCarryFlag) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:1920:6 + ;;@ core/cpu/opcodes.ts:1919:6 (set_local $1 - ;;@ core/cpu/opcodes.ts:1920:29 + ;;@ core/cpu/opcodes.ts:1919:29 (i32.and (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1920:54 + ;;@ core/cpu/opcodes.ts:1919:54 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:1921:6 + ;;@ core/cpu/opcodes.ts:1920:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1921:25 + ;;@ core/cpu/opcodes.ts:1920:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1921:37 + ;;@ core/cpu/opcodes.ts:1920:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1921:56 + ;;@ core/cpu/opcodes.ts:1920:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1922:6 + ;;@ core/cpu/opcodes.ts:1921:6 (set_global $core/cpu/cpu/Cpu.registerD (i32.and - ;;@ core/cpu/opcodes.ts:1922:22 + ;;@ core/cpu/opcodes.ts:1921:22 (call $core/helpers/index/splitHighByte (get_local $1) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:1923:6 + ;;@ core/cpu/opcodes.ts:1922:6 (set_global $core/cpu/cpu/Cpu.registerE (i32.and - ;;@ core/cpu/opcodes.ts:1923:22 + ;;@ core/cpu/opcodes.ts:1922:22 (call $core/helpers/index/splitLowByte (get_local $1) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:1924:13 + ;;@ core/cpu/opcodes.ts:1923:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:1928:6 + ;;@ core/cpu/opcodes.ts:1927:6 (if - ;;@ core/cpu/opcodes.ts:1928:10 + ;;@ core/cpu/opcodes.ts:1927:10 (call $core/cpu/flags/getCarryFlag) (br $folding-inner3) (br $folding-inner0) ) ) - ;;@ core/cpu/opcodes.ts:1940:6 + ;;@ core/cpu/opcodes.ts:1939:6 (if - ;;@ core/cpu/opcodes.ts:1940:10 + ;;@ core/cpu/opcodes.ts:1939:10 (call $core/cpu/flags/getCarryFlag) (br $folding-inner3) - ;;@ core/cpu/opcodes.ts:1940:32 + ;;@ core/cpu/opcodes.ts:1939:32 (block - ;;@ core/cpu/opcodes.ts:1941:8 + ;;@ core/cpu/opcodes.ts:1940:8 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1941:27 + ;;@ core/cpu/opcodes.ts:1940:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1941:39 + ;;@ core/cpu/opcodes.ts:1940:39 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1941:58 + ;;@ core/cpu/opcodes.ts:1940:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1943:8 + ;;@ core/cpu/opcodes.ts:1942:8 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1943:34 + ;;@ core/cpu/opcodes.ts:1942:34 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1943:52 + ;;@ core/cpu/opcodes.ts:1942:52 (i32.and (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1943:73 + ;;@ core/cpu/opcodes.ts:1942:73 (i32.const 2) ) (i32.const 65535) @@ -20175,149 +20175,149 @@ ) ) ) - ;;@ core/cpu/opcodes.ts:1954:6 + ;;@ core/cpu/opcodes.ts:1953:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1954:25 + ;;@ core/cpu/opcodes.ts:1953:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1954:37 + ;;@ core/cpu/opcodes.ts:1953:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1954:56 + ;;@ core/cpu/opcodes.ts:1953:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1956:6 + ;;@ core/cpu/opcodes.ts:1955:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1956:32 + ;;@ core/cpu/opcodes.ts:1955:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1956:50 + ;;@ core/cpu/opcodes.ts:1955:50 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:1956:67 + ;;@ core/cpu/opcodes.ts:1955:67 (get_global $core/cpu/cpu/Cpu.registerD) - ;;@ core/cpu/opcodes.ts:1956:82 + ;;@ core/cpu/opcodes.ts:1955:82 (get_global $core/cpu/cpu/Cpu.registerE) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:1963:6 + ;;@ core/cpu/opcodes.ts:1962:6 (call $core/cpu/instructions/subARegister - ;;@ core/cpu/opcodes.ts:1963:19 + ;;@ core/cpu/opcodes.ts:1962:19 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:1969:6 + ;;@ core/cpu/opcodes.ts:1968:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1969:25 + ;;@ core/cpu/opcodes.ts:1968:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1969:37 + ;;@ core/cpu/opcodes.ts:1968:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1969:56 + ;;@ core/cpu/opcodes.ts:1968:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1971:6 + ;;@ core/cpu/opcodes.ts:1970:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:1971:32 + ;;@ core/cpu/opcodes.ts:1970:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1971:50 + ;;@ core/cpu/opcodes.ts:1970:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:1972:6 + ;;@ core/cpu/opcodes.ts:1971:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1972:27 + ;;@ core/cpu/opcodes.ts:1971:27 (i32.const 16) ) (br $folding-inner1) ) (br_if $folding-inner1 - ;;@ core/cpu/opcodes.ts:1977:10 + ;;@ core/cpu/opcodes.ts:1976:10 (i32.ne (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:1977:29 + ;;@ core/cpu/opcodes.ts:1976:29 (i32.const 1) ) ) (br $folding-inner2) ) - ;;@ core/cpu/opcodes.ts:1990:6 + ;;@ core/cpu/opcodes.ts:1989:6 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:1990:27 + ;;@ core/cpu/opcodes.ts:1989:27 (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1990:57 + ;;@ core/cpu/opcodes.ts:1989:57 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:1992:6 + ;;@ core/cpu/opcodes.ts:1991:6 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/cpu/opcodes.ts:1992:20 + ;;@ core/cpu/opcodes.ts:1991:20 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:1993:6 + ;;@ core/cpu/opcodes.ts:1992:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1993:25 + ;;@ core/cpu/opcodes.ts:1992:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1993:37 + ;;@ core/cpu/opcodes.ts:1992:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1993:56 + ;;@ core/cpu/opcodes.ts:1992:56 (i32.const 2) ) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:1998:6 + ;;@ core/cpu/opcodes.ts:1997:6 (if - ;;@ core/cpu/opcodes.ts:1998:10 + ;;@ core/cpu/opcodes.ts:1997:10 (i32.eq (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:1998:29 + ;;@ core/cpu/opcodes.ts:1997:29 (i32.const 1) ) (br $folding-inner0) (br $folding-inner3) ) ) - ;;@ core/cpu/opcodes.ts:2010:6 + ;;@ core/cpu/opcodes.ts:2009:6 (if - ;;@ core/cpu/opcodes.ts:2010:10 + ;;@ core/cpu/opcodes.ts:2009:10 (i32.eq (call $core/cpu/flags/getCarryFlag) - ;;@ core/cpu/opcodes.ts:2010:29 + ;;@ core/cpu/opcodes.ts:2009:29 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:2010:32 + ;;@ core/cpu/opcodes.ts:2009:32 (block - ;;@ core/cpu/opcodes.ts:2011:8 + ;;@ core/cpu/opcodes.ts:2010:8 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2011:27 + ;;@ core/cpu/opcodes.ts:2010:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2011:39 + ;;@ core/cpu/opcodes.ts:2010:39 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2011:58 + ;;@ core/cpu/opcodes.ts:2010:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2013:8 + ;;@ core/cpu/opcodes.ts:2012:8 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2013:34 + ;;@ core/cpu/opcodes.ts:2012:34 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2013:52 + ;;@ core/cpu/opcodes.ts:2012:52 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2013:64 + ;;@ core/cpu/opcodes.ts:2012:64 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2013:85 + ;;@ core/cpu/opcodes.ts:2012:85 (i32.const 2) ) ) @@ -20327,35 +20327,35 @@ (br $folding-inner3) ) ) - ;;@ core/cpu/opcodes.ts:2027:6 + ;;@ core/cpu/opcodes.ts:2026:6 (call $core/cpu/instructions/subAThroughCarryRegister - ;;@ core/cpu/opcodes.ts:2027:31 + ;;@ core/cpu/opcodes.ts:2026:31 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:2033:6 + ;;@ core/cpu/opcodes.ts:2032:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2033:25 + ;;@ core/cpu/opcodes.ts:2032:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2033:37 + ;;@ core/cpu/opcodes.ts:2032:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2033:56 + ;;@ core/cpu/opcodes.ts:2032:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2035:6 + ;;@ core/cpu/opcodes.ts:2034:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2035:32 + ;;@ core/cpu/opcodes.ts:2034:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2035:50 + ;;@ core/cpu/opcodes.ts:2034:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2036:6 + ;;@ core/cpu/opcodes.ts:2035:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2036:27 + ;;@ core/cpu/opcodes.ts:2035:27 (i32.const 24) ) (br $folding-inner1) @@ -20364,10 +20364,10 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:1930:8 + ;;@ core/cpu/opcodes.ts:1929:8 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:1930:29 + ;;@ core/cpu/opcodes.ts:1929:29 (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) ) @@ -20377,64 +20377,64 @@ (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:1910:8 + ;;@ core/cpu/opcodes.ts:1909:8 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:1910:29 + ;;@ core/cpu/opcodes.ts:1909:29 (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1910:59 + ;;@ core/cpu/opcodes.ts:1909:59 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:1911:8 + ;;@ core/cpu/opcodes.ts:1910:8 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1911:27 + ;;@ core/cpu/opcodes.ts:1910:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1911:39 + ;;@ core/cpu/opcodes.ts:1910:39 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1911:58 + ;;@ core/cpu/opcodes.ts:1910:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1912:15 + ;;@ core/cpu/opcodes.ts:1911:15 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:1933:8 + ;;@ core/cpu/opcodes.ts:1932:8 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1933:29 + ;;@ core/cpu/opcodes.ts:1932:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1933:41 + ;;@ core/cpu/opcodes.ts:1932:41 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1933:62 + ;;@ core/cpu/opcodes.ts:1932:62 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1934:15 + ;;@ core/cpu/opcodes.ts:1933:15 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:1964:6 + ;;@ core/cpu/opcodes.ts:1963:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1964:27 + ;;@ core/cpu/opcodes.ts:1963:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1964:39 + ;;@ core/cpu/opcodes.ts:1963:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1964:60 + ;;@ core/cpu/opcodes.ts:1963:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:1965:13 + ;;@ core/cpu/opcodes.ts:1964:13 (i32.const 4) ) (func $core/cpu/opcodes/handleOpcodeEx (; 224 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -20453,7 +20453,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:2044:9 + ;;@ core/cpu/opcodes.ts:2043:9 (i32.const 224) ) (block @@ -20468,167 +20468,167 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:2052:6 + ;;@ core/cpu/opcodes.ts:2051:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2052:30 + ;;@ core/cpu/opcodes.ts:2051:30 (i32.add - ;;@ core/cpu/opcodes.ts:2050:34 + ;;@ core/cpu/opcodes.ts:2049:34 (i32.and (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) - ;;@ core/cpu/opcodes.ts:2052:30 + ;;@ core/cpu/opcodes.ts:2051:30 (i32.const 65280) ) - ;;@ core/cpu/opcodes.ts:2052:57 + ;;@ core/cpu/opcodes.ts:2051:57 (get_global $core/cpu/cpu/Cpu.registerA) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2059:6 + ;;@ core/cpu/opcodes.ts:2058:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2059:29 + ;;@ core/cpu/opcodes.ts:2058:29 (i32.and (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2059:54 + ;;@ core/cpu/opcodes.ts:2058:54 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2060:6 + ;;@ core/cpu/opcodes.ts:2059:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2060:25 + ;;@ core/cpu/opcodes.ts:2059:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2060:37 + ;;@ core/cpu/opcodes.ts:2059:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2060:56 + ;;@ core/cpu/opcodes.ts:2059:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2061:6 + ;;@ core/cpu/opcodes.ts:2060:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:2061:22 + ;;@ core/cpu/opcodes.ts:2060:22 (call $core/helpers/index/splitHighByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2062:6 + ;;@ core/cpu/opcodes.ts:2061:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:2062:22 + ;;@ core/cpu/opcodes.ts:2061:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2063:13 + ;;@ core/cpu/opcodes.ts:2062:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2073:6 + ;;@ core/cpu/opcodes.ts:2072:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2073:30 + ;;@ core/cpu/opcodes.ts:2072:30 (i32.add - ;;@ core/cpu/opcodes.ts:2073:39 + ;;@ core/cpu/opcodes.ts:2072:39 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:2073:30 + ;;@ core/cpu/opcodes.ts:2072:30 (i32.const 65280) ) - ;;@ core/cpu/opcodes.ts:2073:59 + ;;@ core/cpu/opcodes.ts:2072:59 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/opcodes.ts:2074:13 + ;;@ core/cpu/opcodes.ts:2073:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2079:6 + ;;@ core/cpu/opcodes.ts:2078:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2079:25 + ;;@ core/cpu/opcodes.ts:2078:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2079:37 + ;;@ core/cpu/opcodes.ts:2078:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2079:56 + ;;@ core/cpu/opcodes.ts:2078:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2081:6 + ;;@ core/cpu/opcodes.ts:2080:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2081:32 + ;;@ core/cpu/opcodes.ts:2080:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2081:50 + ;;@ core/cpu/opcodes.ts:2080:50 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2081:67 + ;;@ core/cpu/opcodes.ts:2080:67 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:2081:82 + ;;@ core/cpu/opcodes.ts:2080:82 (get_global $core/cpu/cpu/Cpu.registerL) ) ) - ;;@ core/cpu/opcodes.ts:2082:13 + ;;@ core/cpu/opcodes.ts:2081:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2088:6 + ;;@ core/cpu/opcodes.ts:2087:6 (call $core/cpu/instructions/andARegister - ;;@ core/cpu/opcodes.ts:2088:19 + ;;@ core/cpu/opcodes.ts:2087:19 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2094:6 + ;;@ core/cpu/opcodes.ts:2093:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2094:25 + ;;@ core/cpu/opcodes.ts:2093:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2094:37 + ;;@ core/cpu/opcodes.ts:2093:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2094:56 + ;;@ core/cpu/opcodes.ts:2093:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2096:6 + ;;@ core/cpu/opcodes.ts:2095:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2096:32 + ;;@ core/cpu/opcodes.ts:2095:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2096:50 + ;;@ core/cpu/opcodes.ts:2095:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2097:6 + ;;@ core/cpu/opcodes.ts:2096:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2097:27 + ;;@ core/cpu/opcodes.ts:2096:27 (i32.const 32) ) - ;;@ core/cpu/opcodes.ts:2098:13 + ;;@ core/cpu/opcodes.ts:2097:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2105:6 + ;;@ core/cpu/opcodes.ts:2104:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2105:34 + ;;@ core/cpu/opcodes.ts:2104:34 (call $core/portable/portable/i8Portable - ;;@ core/cpu/opcodes.ts:2105:45 + ;;@ core/cpu/opcodes.ts:2104:45 (call $core/cpu/opcodes/getDataByteOne) ) ) - ;;@ core/cpu/opcodes.ts:2107:6 + ;;@ core/cpu/opcodes.ts:2106:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:2107:44 + ;;@ core/cpu/opcodes.ts:2106:44 (get_global $core/cpu/cpu/Cpu.stackPointer) (tee_local $0 - ;;@ core/cpu/opcodes.ts:2107:62 + ;;@ core/cpu/opcodes.ts:2106:62 (i32.shr_s (i32.shl (get_local $0) @@ -20637,124 +20637,124 @@ (i32.const 24) ) ) - ;;@ core/cpu/opcodes.ts:2107:81 + ;;@ core/cpu/opcodes.ts:2106:81 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:2108:6 + ;;@ core/cpu/opcodes.ts:2107:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2108:25 + ;;@ core/cpu/opcodes.ts:2107:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2108:37 + ;;@ core/cpu/opcodes.ts:2107:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:2109:6 + ;;@ core/cpu/opcodes.ts:2108:6 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:2109:18 + ;;@ core/cpu/opcodes.ts:2108:18 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2110:6 + ;;@ core/cpu/opcodes.ts:2109:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:2110:22 + ;;@ core/cpu/opcodes.ts:2109:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2111:6 + ;;@ core/cpu/opcodes.ts:2110:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2111:27 + ;;@ core/cpu/opcodes.ts:2110:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2111:39 + ;;@ core/cpu/opcodes.ts:2110:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2111:60 + ;;@ core/cpu/opcodes.ts:2110:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:2112:13 + ;;@ core/cpu/opcodes.ts:2111:13 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:2116:6 + ;;@ core/cpu/opcodes.ts:2115:6 (set_global $core/cpu/cpu/Cpu.programCounter (i32.and - ;;@ core/cpu/opcodes.ts:2116:27 + ;;@ core/cpu/opcodes.ts:2115:27 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2116:49 + ;;@ core/cpu/opcodes.ts:2115:49 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:2116:64 + ;;@ core/cpu/opcodes.ts:2115:64 (get_global $core/cpu/cpu/Cpu.registerL) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2117:13 + ;;@ core/cpu/opcodes.ts:2116:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2122:6 + ;;@ core/cpu/opcodes.ts:2121:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2122:30 + ;;@ core/cpu/opcodes.ts:2121:30 (i32.and (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) ) - ;;@ core/cpu/opcodes.ts:2122:57 + ;;@ core/cpu/opcodes.ts:2121:57 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/opcodes.ts:2123:6 + ;;@ core/cpu/opcodes.ts:2122:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2123:27 + ;;@ core/cpu/opcodes.ts:2122:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2123:39 + ;;@ core/cpu/opcodes.ts:2122:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2123:60 + ;;@ core/cpu/opcodes.ts:2122:60 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2124:13 + ;;@ core/cpu/opcodes.ts:2123:13 (return (i32.const 4) ) ) - ;;@ core/cpu/opcodes.ts:2131:6 + ;;@ core/cpu/opcodes.ts:2130:6 (call $core/cpu/instructions/xorARegister - ;;@ core/cpu/opcodes.ts:2131:19 + ;;@ core/cpu/opcodes.ts:2130:19 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2137:6 + ;;@ core/cpu/opcodes.ts:2136:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2137:25 + ;;@ core/cpu/opcodes.ts:2136:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2137:37 + ;;@ core/cpu/opcodes.ts:2136:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2137:56 + ;;@ core/cpu/opcodes.ts:2136:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2139:6 + ;;@ core/cpu/opcodes.ts:2138:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2139:32 + ;;@ core/cpu/opcodes.ts:2138:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2139:50 + ;;@ core/cpu/opcodes.ts:2138:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2140:6 + ;;@ core/cpu/opcodes.ts:2139:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2140:27 + ;;@ core/cpu/opcodes.ts:2139:27 (i32.const 40) ) - ;;@ core/cpu/opcodes.ts:2141:13 + ;;@ core/cpu/opcodes.ts:2140:13 (return (i32.const 8) ) @@ -20763,19 +20763,19 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:2053:6 + ;;@ core/cpu/opcodes.ts:2052:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2053:27 + ;;@ core/cpu/opcodes.ts:2052:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2053:39 + ;;@ core/cpu/opcodes.ts:2052:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2053:60 + ;;@ core/cpu/opcodes.ts:2052:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:2054:13 + ;;@ core/cpu/opcodes.ts:2053:13 (i32.const 4) ) (func $core/cpu/opcodes/handleOpcodeFx (; 225 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -20797,7 +20797,7 @@ (if (i32.ne (get_local $0) - ;;@ core/cpu/opcodes.ts:2148:9 + ;;@ core/cpu/opcodes.ts:2147:9 (i32.const 240) ) (block @@ -20812,20 +20812,20 @@ (br $break|0) ) ) - ;;@ core/cpu/opcodes.ts:2154:6 + ;;@ core/cpu/opcodes.ts:2153:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:2154:22 + ;;@ core/cpu/opcodes.ts:2153:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:2154:33 + ;;@ core/cpu/opcodes.ts:2153:33 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2154:60 + ;;@ core/cpu/opcodes.ts:2153:60 (i32.add - ;;@ core/cpu/opcodes.ts:2152:34 + ;;@ core/cpu/opcodes.ts:2151:34 (i32.and (call $core/cpu/opcodes/getDataByteOne) (i32.const 255) ) - ;;@ core/cpu/opcodes.ts:2154:60 + ;;@ core/cpu/opcodes.ts:2153:60 (i32.const 65280) ) ) @@ -20833,44 +20833,44 @@ ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2162:6 + ;;@ core/cpu/opcodes.ts:2161:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2162:29 + ;;@ core/cpu/opcodes.ts:2161:29 (i32.and - ;;@ core/cpu/opcodes.ts:2162:34 + ;;@ core/cpu/opcodes.ts:2161:34 (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2162:59 + ;;@ core/cpu/opcodes.ts:2161:59 (get_global $core/cpu/cpu/Cpu.stackPointer) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2163:6 + ;;@ core/cpu/opcodes.ts:2162:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2163:25 + ;;@ core/cpu/opcodes.ts:2162:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2163:37 + ;;@ core/cpu/opcodes.ts:2162:37 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2163:56 + ;;@ core/cpu/opcodes.ts:2162:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2164:6 + ;;@ core/cpu/opcodes.ts:2163:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:2164:22 + ;;@ core/cpu/opcodes.ts:2163:22 (call $core/helpers/index/splitHighByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2165:6 + ;;@ core/cpu/opcodes.ts:2164:6 (set_global $core/cpu/cpu/Cpu.registerF (i32.and - ;;@ core/cpu/opcodes.ts:2165:22 + ;;@ core/cpu/opcodes.ts:2164:22 (call $core/helpers/index/splitLowByte (get_local $0) ) @@ -20879,17 +20879,17 @@ ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2171:6 + ;;@ core/cpu/opcodes.ts:2170:6 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/opcodes.ts:2171:22 + ;;@ core/cpu/opcodes.ts:2170:22 (call $core/helpers/index/splitLowByte - ;;@ core/cpu/opcodes.ts:2171:33 + ;;@ core/cpu/opcodes.ts:2170:33 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2171:60 + ;;@ core/cpu/opcodes.ts:2170:60 (i32.add - ;;@ core/cpu/opcodes.ts:2171:69 + ;;@ core/cpu/opcodes.ts:2170:69 (get_global $core/cpu/cpu/Cpu.registerC) - ;;@ core/cpu/opcodes.ts:2171:60 + ;;@ core/cpu/opcodes.ts:2170:60 (i32.const 65280) ) ) @@ -20897,102 +20897,102 @@ ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2176:6 + ;;@ core/cpu/opcodes.ts:2175:6 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/cpu/opcodes.ts:2176:20 + ;;@ core/cpu/opcodes.ts:2175:20 (i32.const 0) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2182:6 + ;;@ core/cpu/opcodes.ts:2181:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2182:25 + ;;@ core/cpu/opcodes.ts:2181:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2182:37 + ;;@ core/cpu/opcodes.ts:2181:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2182:56 + ;;@ core/cpu/opcodes.ts:2181:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2184:6 + ;;@ core/cpu/opcodes.ts:2183:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2184:32 + ;;@ core/cpu/opcodes.ts:2183:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2184:50 + ;;@ core/cpu/opcodes.ts:2183:50 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2184:67 + ;;@ core/cpu/opcodes.ts:2183:67 (get_global $core/cpu/cpu/Cpu.registerA) - ;;@ core/cpu/opcodes.ts:2184:82 + ;;@ core/cpu/opcodes.ts:2183:82 (get_global $core/cpu/cpu/Cpu.registerF) ) ) - ;;@ core/cpu/opcodes.ts:2185:13 + ;;@ core/cpu/opcodes.ts:2184:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2191:6 + ;;@ core/cpu/opcodes.ts:2190:6 (call $core/cpu/instructions/orARegister - ;;@ core/cpu/opcodes.ts:2191:18 + ;;@ core/cpu/opcodes.ts:2190:18 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2197:6 + ;;@ core/cpu/opcodes.ts:2196:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2197:25 + ;;@ core/cpu/opcodes.ts:2196:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2197:37 + ;;@ core/cpu/opcodes.ts:2196:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2197:56 + ;;@ core/cpu/opcodes.ts:2196:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2199:6 + ;;@ core/cpu/opcodes.ts:2198:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2199:32 + ;;@ core/cpu/opcodes.ts:2198:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2199:50 + ;;@ core/cpu/opcodes.ts:2198:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2200:6 + ;;@ core/cpu/opcodes.ts:2199:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2200:27 + ;;@ core/cpu/opcodes.ts:2199:27 (i32.const 48) ) - ;;@ core/cpu/opcodes.ts:2201:13 + ;;@ core/cpu/opcodes.ts:2200:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2208:6 + ;;@ core/cpu/opcodes.ts:2207:6 (set_local $0 - ;;@ core/cpu/opcodes.ts:2208:34 + ;;@ core/cpu/opcodes.ts:2207:34 (call $core/portable/portable/i8Portable - ;;@ core/cpu/opcodes.ts:2208:45 + ;;@ core/cpu/opcodes.ts:2207:45 (call $core/cpu/opcodes/getDataByteOne) ) ) - ;;@ core/cpu/opcodes.ts:2211:6 + ;;@ core/cpu/opcodes.ts:2210:6 (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:2211:18 + ;;@ core/cpu/opcodes.ts:2210:18 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2212:6 + ;;@ core/cpu/opcodes.ts:2211:6 (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:2212:22 + ;;@ core/cpu/opcodes.ts:2211:22 (i32.const 0) ) - ;;@ core/cpu/opcodes.ts:2213:6 + ;;@ core/cpu/opcodes.ts:2212:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow - ;;@ core/cpu/opcodes.ts:2213:44 + ;;@ core/cpu/opcodes.ts:2212:44 (get_global $core/cpu/cpu/Cpu.stackPointer) (tee_local $0 - ;;@ core/cpu/opcodes.ts:2213:62 + ;;@ core/cpu/opcodes.ts:2212:62 (i32.shr_s (i32.shl (get_local $0) @@ -21001,19 +21001,19 @@ (i32.const 24) ) ) - ;;@ core/cpu/opcodes.ts:2213:81 + ;;@ core/cpu/opcodes.ts:2212:81 (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:2215:6 + ;;@ core/cpu/opcodes.ts:2214:6 (set_global $core/cpu/cpu/Cpu.registerH (i32.and - ;;@ core/cpu/opcodes.ts:2215:22 + ;;@ core/cpu/opcodes.ts:2214:22 (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:2214:6 + ;;@ core/cpu/opcodes.ts:2213:6 (tee_local $0 - ;;@ core/cpu/opcodes.ts:2214:23 + ;;@ core/cpu/opcodes.ts:2213:23 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2214:35 + ;;@ core/cpu/opcodes.ts:2213:35 (i32.add (get_global $core/cpu/cpu/Cpu.stackPointer) (get_local $0) @@ -21024,57 +21024,57 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2216:6 + ;;@ core/cpu/opcodes.ts:2215:6 (set_global $core/cpu/cpu/Cpu.registerL (i32.and - ;;@ core/cpu/opcodes.ts:2216:22 + ;;@ core/cpu/opcodes.ts:2215:22 (call $core/helpers/index/splitLowByte (get_local $0) ) (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2217:6 + ;;@ core/cpu/opcodes.ts:2216:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2217:27 + ;;@ core/cpu/opcodes.ts:2216:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2217:39 + ;;@ core/cpu/opcodes.ts:2216:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2217:60 + ;;@ core/cpu/opcodes.ts:2216:60 (i32.const 1) ) ) ) - ;;@ core/cpu/opcodes.ts:2218:13 + ;;@ core/cpu/opcodes.ts:2217:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2222:6 + ;;@ core/cpu/opcodes.ts:2221:6 (set_global $core/cpu/cpu/Cpu.stackPointer (i32.and - ;;@ core/cpu/opcodes.ts:2222:25 + ;;@ core/cpu/opcodes.ts:2221:25 (call $core/helpers/index/concatenateBytes - ;;@ core/cpu/opcodes.ts:2222:47 + ;;@ core/cpu/opcodes.ts:2221:47 (get_global $core/cpu/cpu/Cpu.registerH) - ;;@ core/cpu/opcodes.ts:2222:62 + ;;@ core/cpu/opcodes.ts:2221:62 (get_global $core/cpu/cpu/Cpu.registerL) ) (i32.const 65535) ) ) - ;;@ core/cpu/opcodes.ts:2223:13 + ;;@ core/cpu/opcodes.ts:2222:13 (return (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:2228:6 + ;;@ core/cpu/opcodes.ts:2227:6 (set_global $core/cpu/cpu/Cpu.registerA (i32.and - ;;@ core/cpu/opcodes.ts:2228:22 + ;;@ core/cpu/opcodes.ts:2227:22 (call $core/cpu/opcodes/eightBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:2228:49 + ;;@ core/cpu/opcodes.ts:2227:49 (i32.and (call $core/cpu/opcodes/getConcatenatedDataByte) (i32.const 65535) @@ -21083,59 +21083,59 @@ (i32.const 255) ) ) - ;;@ core/cpu/opcodes.ts:2229:6 + ;;@ core/cpu/opcodes.ts:2228:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2229:27 + ;;@ core/cpu/opcodes.ts:2228:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2229:39 + ;;@ core/cpu/opcodes.ts:2228:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2229:60 + ;;@ core/cpu/opcodes.ts:2228:60 (i32.const 2) ) ) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2234:6 + ;;@ core/cpu/opcodes.ts:2233:6 (call $core/interrupts/interrupts/setInterrupts - ;;@ core/cpu/opcodes.ts:2234:20 + ;;@ core/cpu/opcodes.ts:2233:20 (i32.const 1) ) (br $folding-inner1) ) - ;;@ core/cpu/opcodes.ts:2242:6 + ;;@ core/cpu/opcodes.ts:2241:6 (call $core/cpu/instructions/cpARegister - ;;@ core/cpu/opcodes.ts:2242:18 + ;;@ core/cpu/opcodes.ts:2241:18 (call $core/cpu/opcodes/getDataByteOne) ) (br $folding-inner0) ) - ;;@ core/cpu/opcodes.ts:2248:6 + ;;@ core/cpu/opcodes.ts:2247:6 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:2248:25 + ;;@ core/cpu/opcodes.ts:2247:25 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2248:37 + ;;@ core/cpu/opcodes.ts:2247:37 (i32.sub (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2248:56 + ;;@ core/cpu/opcodes.ts:2247:56 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:2250:6 + ;;@ core/cpu/opcodes.ts:2249:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles - ;;@ core/cpu/opcodes.ts:2250:32 + ;;@ core/cpu/opcodes.ts:2249:32 (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:2250:50 + ;;@ core/cpu/opcodes.ts:2249:50 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/opcodes.ts:2251:6 + ;;@ core/cpu/opcodes.ts:2250:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2251:27 + ;;@ core/cpu/opcodes.ts:2250:27 (i32.const 56) ) - ;;@ core/cpu/opcodes.ts:2252:13 + ;;@ core/cpu/opcodes.ts:2251:13 (return (i32.const 8) ) @@ -21144,20 +21144,20 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:2155:6 + ;;@ core/cpu/opcodes.ts:2154:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:2155:27 + ;;@ core/cpu/opcodes.ts:2154:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:2155:39 + ;;@ core/cpu/opcodes.ts:2154:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:2155:60 + ;;@ core/cpu/opcodes.ts:2154:60 (i32.const 1) ) ) ) ) - ;;@ core/cpu/opcodes.ts:2166:13 + ;;@ core/cpu/opcodes.ts:2165:13 (i32.const 4) ) (func $core/cpu/opcodes/executeOpcode (; 226 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) @@ -21207,17 +21207,17 @@ (block $case2|0 (block $case1|0 (if - ;;@ core/cpu/opcodes.ts:91:2 + ;;@ core/cpu/opcodes.ts:90:2 (tee_local $1 - ;;@ core/cpu/opcodes.ts:91:21 + ;;@ core/cpu/opcodes.ts:90:21 (i32.shr_s - ;;@ core/cpu/opcodes.ts:90:30 + ;;@ core/cpu/opcodes.ts:89:30 (i32.and (get_local $0) - ;;@ core/cpu/opcodes.ts:90:39 + ;;@ core/cpu/opcodes.ts:89:39 (i32.const 240) ) - ;;@ core/cpu/opcodes.ts:91:41 + ;;@ core/cpu/opcodes.ts:90:41 (i32.const 4) ) ) @@ -21225,7 +21225,7 @@ (br_if $case1|0 (i32.eq (get_local $1) - ;;@ core/cpu/opcodes.ts:103:9 + ;;@ core/cpu/opcodes.ts:102:9 (i32.const 1) ) ) @@ -21240,161 +21240,161 @@ (br $case15|0) ) ) - ;;@ core/cpu/opcodes.ts:102:34 + ;;@ core/cpu/opcodes.ts:101:34 (return - ;;@ core/cpu/opcodes.ts:102:13 + ;;@ core/cpu/opcodes.ts:101:13 (call $core/cpu/opcodes/handleOpcode0x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:104:34 + ;;@ core/cpu/opcodes.ts:103:34 (return - ;;@ core/cpu/opcodes.ts:104:13 + ;;@ core/cpu/opcodes.ts:103:13 (call $core/cpu/opcodes/handleOpcode1x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:106:34 + ;;@ core/cpu/opcodes.ts:105:34 (return - ;;@ core/cpu/opcodes.ts:106:13 + ;;@ core/cpu/opcodes.ts:105:13 (call $core/cpu/opcodes/handleOpcode2x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:108:34 + ;;@ core/cpu/opcodes.ts:107:34 (return - ;;@ core/cpu/opcodes.ts:108:13 + ;;@ core/cpu/opcodes.ts:107:13 (call $core/cpu/opcodes/handleOpcode3x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:110:34 + ;;@ core/cpu/opcodes.ts:109:34 (return - ;;@ core/cpu/opcodes.ts:110:13 + ;;@ core/cpu/opcodes.ts:109:13 (call $core/cpu/opcodes/handleOpcode4x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:112:34 + ;;@ core/cpu/opcodes.ts:111:34 (return - ;;@ core/cpu/opcodes.ts:112:13 + ;;@ core/cpu/opcodes.ts:111:13 (call $core/cpu/opcodes/handleOpcode5x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:114:34 + ;;@ core/cpu/opcodes.ts:113:34 (return - ;;@ core/cpu/opcodes.ts:114:13 + ;;@ core/cpu/opcodes.ts:113:13 (call $core/cpu/opcodes/handleOpcode6x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:116:34 + ;;@ core/cpu/opcodes.ts:115:34 (return - ;;@ core/cpu/opcodes.ts:116:13 + ;;@ core/cpu/opcodes.ts:115:13 (call $core/cpu/opcodes/handleOpcode7x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:118:34 + ;;@ core/cpu/opcodes.ts:117:34 (return - ;;@ core/cpu/opcodes.ts:118:13 + ;;@ core/cpu/opcodes.ts:117:13 (call $core/cpu/opcodes/handleOpcode8x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:120:34 + ;;@ core/cpu/opcodes.ts:119:34 (return - ;;@ core/cpu/opcodes.ts:120:13 + ;;@ core/cpu/opcodes.ts:119:13 (call $core/cpu/opcodes/handleOpcode9x (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:122:34 + ;;@ core/cpu/opcodes.ts:121:34 (return - ;;@ core/cpu/opcodes.ts:122:13 + ;;@ core/cpu/opcodes.ts:121:13 (call $core/cpu/opcodes/handleOpcodeAx (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:124:34 + ;;@ core/cpu/opcodes.ts:123:34 (return - ;;@ core/cpu/opcodes.ts:124:13 + ;;@ core/cpu/opcodes.ts:123:13 (call $core/cpu/opcodes/handleOpcodeBx (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:126:34 + ;;@ core/cpu/opcodes.ts:125:34 (return - ;;@ core/cpu/opcodes.ts:126:13 + ;;@ core/cpu/opcodes.ts:125:13 (call $core/cpu/opcodes/handleOpcodeCx (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:128:34 + ;;@ core/cpu/opcodes.ts:127:34 (return - ;;@ core/cpu/opcodes.ts:128:13 + ;;@ core/cpu/opcodes.ts:127:13 (call $core/cpu/opcodes/handleOpcodeDx (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:130:34 + ;;@ core/cpu/opcodes.ts:129:34 (return - ;;@ core/cpu/opcodes.ts:130:13 + ;;@ core/cpu/opcodes.ts:129:13 (call $core/cpu/opcodes/handleOpcodeEx (get_local $0) ) ) ) - ;;@ core/cpu/opcodes.ts:132:13 + ;;@ core/cpu/opcodes.ts:131:13 (call $core/cpu/opcodes/handleOpcodeFx (get_local $0) ) ) (func $core/cpu/cpu/Cpu.exitHaltAndStop (; 227 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:92:4 + ;;@ core/cpu/cpu.ts:90:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:92:23 + ;;@ core/cpu/cpu.ts:90:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:93:4 + ;;@ core/cpu/cpu.ts:91:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:93:23 + ;;@ core/cpu/cpu.ts:91:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:94:4 + ;;@ core/cpu/cpu.ts:92:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:94:20 + ;;@ core/cpu/cpu.ts:92:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:95:4 + ;;@ core/cpu/cpu.ts:93:4 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:95:20 + ;;@ core/cpu/cpu.ts:93:20 (i32.const 0) ) ) (func $core/cpu/cpu/Cpu.isHalted (; 228 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/cpu.ts:99:4 + ;;@ core/cpu/cpu.ts:97:4 (if - ;;@ core/cpu/cpu.ts:99:8 + ;;@ core/cpu/cpu.ts:97:8 (if (result i32) (get_global $core/cpu/cpu/Cpu.isHaltNormal) (get_global $core/cpu/cpu/Cpu.isHaltNormal) - ;;@ core/cpu/cpu.ts:99:28 + ;;@ core/cpu/cpu.ts:97:28 (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) (return @@ -22228,169 +22228,169 @@ ) ) (func $core/cpu/cpu/Cpu.saveState (; 239 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:112:4 + ;;@ core/cpu/cpu.ts:110:4 (i32.store8 - ;;@ core/cpu/cpu.ts:112:14 + ;;@ core/cpu/cpu.ts:110:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:112:39 + ;;@ core/cpu/cpu.ts:110:39 (i32.const 0) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:112:65 + ;;@ core/cpu/cpu.ts:110:65 (get_global $core/cpu/cpu/Cpu.registerA) ) - ;;@ core/cpu/cpu.ts:113:4 + ;;@ core/cpu/cpu.ts:111:4 (i32.store8 - ;;@ core/cpu/cpu.ts:113:14 + ;;@ core/cpu/cpu.ts:111:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:113:39 + ;;@ core/cpu/cpu.ts:111:39 (i32.const 1) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:113:65 + ;;@ core/cpu/cpu.ts:111:65 (get_global $core/cpu/cpu/Cpu.registerB) ) - ;;@ core/cpu/cpu.ts:114:4 + ;;@ core/cpu/cpu.ts:112:4 (i32.store8 - ;;@ core/cpu/cpu.ts:114:14 + ;;@ core/cpu/cpu.ts:112:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:114:39 + ;;@ core/cpu/cpu.ts:112:39 (i32.const 2) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:114:65 + ;;@ core/cpu/cpu.ts:112:65 (get_global $core/cpu/cpu/Cpu.registerC) ) - ;;@ core/cpu/cpu.ts:115:4 + ;;@ core/cpu/cpu.ts:113:4 (i32.store8 - ;;@ core/cpu/cpu.ts:115:14 + ;;@ core/cpu/cpu.ts:113:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:115:39 + ;;@ core/cpu/cpu.ts:113:39 (i32.const 3) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:115:65 + ;;@ core/cpu/cpu.ts:113:65 (get_global $core/cpu/cpu/Cpu.registerD) ) - ;;@ core/cpu/cpu.ts:116:4 + ;;@ core/cpu/cpu.ts:114:4 (i32.store8 - ;;@ core/cpu/cpu.ts:116:14 + ;;@ core/cpu/cpu.ts:114:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:116:39 + ;;@ core/cpu/cpu.ts:114:39 (i32.const 4) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:116:65 + ;;@ core/cpu/cpu.ts:114:65 (get_global $core/cpu/cpu/Cpu.registerE) ) - ;;@ core/cpu/cpu.ts:117:4 + ;;@ core/cpu/cpu.ts:115:4 (i32.store8 - ;;@ core/cpu/cpu.ts:117:14 + ;;@ core/cpu/cpu.ts:115:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:117:39 + ;;@ core/cpu/cpu.ts:115:39 (i32.const 5) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:117:65 + ;;@ core/cpu/cpu.ts:115:65 (get_global $core/cpu/cpu/Cpu.registerH) ) - ;;@ core/cpu/cpu.ts:118:4 + ;;@ core/cpu/cpu.ts:116:4 (i32.store8 - ;;@ core/cpu/cpu.ts:118:14 + ;;@ core/cpu/cpu.ts:116:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:118:39 + ;;@ core/cpu/cpu.ts:116:39 (i32.const 6) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:118:65 + ;;@ core/cpu/cpu.ts:116:65 (get_global $core/cpu/cpu/Cpu.registerL) ) - ;;@ core/cpu/cpu.ts:119:4 + ;;@ core/cpu/cpu.ts:117:4 (i32.store8 - ;;@ core/cpu/cpu.ts:119:14 + ;;@ core/cpu/cpu.ts:117:14 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:119:39 + ;;@ core/cpu/cpu.ts:117:39 (i32.const 7) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:119:65 + ;;@ core/cpu/cpu.ts:117:65 (get_global $core/cpu/cpu/Cpu.registerF) ) - ;;@ core/cpu/cpu.ts:121:4 + ;;@ core/cpu/cpu.ts:119:4 (i32.store16 - ;;@ core/cpu/cpu.ts:121:15 + ;;@ core/cpu/cpu.ts:119:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:121:40 + ;;@ core/cpu/cpu.ts:119:40 (i32.const 8) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:121:66 + ;;@ core/cpu/cpu.ts:119:66 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - ;;@ core/cpu/cpu.ts:122:4 + ;;@ core/cpu/cpu.ts:120:4 (i32.store16 - ;;@ core/cpu/cpu.ts:122:15 + ;;@ core/cpu/cpu.ts:120:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:122:40 + ;;@ core/cpu/cpu.ts:120:40 (i32.const 10) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:122:66 + ;;@ core/cpu/cpu.ts:120:66 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/cpu.ts:124:4 + ;;@ core/cpu/cpu.ts:122:4 (i32.store - ;;@ core/cpu/cpu.ts:124:15 + ;;@ core/cpu/cpu.ts:122:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:124:40 + ;;@ core/cpu/cpu.ts:122:40 (i32.const 12) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:124:66 + ;;@ core/cpu/cpu.ts:122:66 (get_global $core/cpu/cpu/Cpu.currentCycles) ) - ;;@ core/cpu/cpu.ts:126:4 + ;;@ core/cpu/cpu.ts:124:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:126:37 + ;;@ core/cpu/cpu.ts:124:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:126:62 + ;;@ core/cpu/cpu.ts:124:62 (i32.const 17) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:126:88 + ;;@ core/cpu/cpu.ts:124:88 (get_global $core/cpu/cpu/Cpu.isHaltNormal) ) - ;;@ core/cpu/cpu.ts:127:4 + ;;@ core/cpu/cpu.ts:125:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:127:37 + ;;@ core/cpu/cpu.ts:125:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:127:62 + ;;@ core/cpu/cpu.ts:125:62 (i32.const 18) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:127:88 + ;;@ core/cpu/cpu.ts:125:88 (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) - ;;@ core/cpu/cpu.ts:128:4 + ;;@ core/cpu/cpu.ts:126:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:128:37 + ;;@ core/cpu/cpu.ts:126:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:128:62 + ;;@ core/cpu/cpu.ts:126:62 (i32.const 19) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:128:88 + ;;@ core/cpu/cpu.ts:126:88 (get_global $core/cpu/cpu/Cpu.isHaltBug) ) - ;;@ core/cpu/cpu.ts:129:4 + ;;@ core/cpu/cpu.ts:127:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:129:37 + ;;@ core/cpu/cpu.ts:127:37 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:129:62 + ;;@ core/cpu/cpu.ts:127:62 (i32.const 20) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:129:88 + ;;@ core/cpu/cpu.ts:127:88 (get_global $core/cpu/cpu/Cpu.isStopped) ) ) @@ -22992,181 +22992,181 @@ (i32.const 0) ) (func $core/cpu/cpu/Cpu.loadState (; 252 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:135:4 + ;;@ core/cpu/cpu.ts:133:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:135:20 + ;;@ core/cpu/cpu.ts:133:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:135:29 + ;;@ core/cpu/cpu.ts:133:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:135:54 + ;;@ core/cpu/cpu.ts:133:54 (i32.const 0) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:136:4 + ;;@ core/cpu/cpu.ts:134:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:136:20 + ;;@ core/cpu/cpu.ts:134:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:136:29 + ;;@ core/cpu/cpu.ts:134:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:136:54 + ;;@ core/cpu/cpu.ts:134:54 (i32.const 1) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:137:4 + ;;@ core/cpu/cpu.ts:135:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:137:20 + ;;@ core/cpu/cpu.ts:135:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:137:29 + ;;@ core/cpu/cpu.ts:135:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:137:54 + ;;@ core/cpu/cpu.ts:135:54 (i32.const 2) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:138:4 + ;;@ core/cpu/cpu.ts:136:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:138:20 + ;;@ core/cpu/cpu.ts:136:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:138:29 + ;;@ core/cpu/cpu.ts:136:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:138:54 + ;;@ core/cpu/cpu.ts:136:54 (i32.const 3) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:139:4 + ;;@ core/cpu/cpu.ts:137:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:139:20 + ;;@ core/cpu/cpu.ts:137:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:139:29 + ;;@ core/cpu/cpu.ts:137:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:139:54 + ;;@ core/cpu/cpu.ts:137:54 (i32.const 4) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:140:4 + ;;@ core/cpu/cpu.ts:138:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:140:20 + ;;@ core/cpu/cpu.ts:138:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:140:29 + ;;@ core/cpu/cpu.ts:138:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:140:54 + ;;@ core/cpu/cpu.ts:138:54 (i32.const 5) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:141:4 + ;;@ core/cpu/cpu.ts:139:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:141:20 + ;;@ core/cpu/cpu.ts:139:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:141:29 + ;;@ core/cpu/cpu.ts:139:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:141:54 + ;;@ core/cpu/cpu.ts:139:54 (i32.const 6) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:142:4 + ;;@ core/cpu/cpu.ts:140:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:142:20 + ;;@ core/cpu/cpu.ts:140:20 (i32.load8_u - ;;@ core/cpu/cpu.ts:142:29 + ;;@ core/cpu/cpu.ts:140:29 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:142:54 + ;;@ core/cpu/cpu.ts:140:54 (i32.const 7) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:144:4 + ;;@ core/cpu/cpu.ts:142:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:144:23 + ;;@ core/cpu/cpu.ts:142:23 (i32.load16_u - ;;@ core/cpu/cpu.ts:144:33 + ;;@ core/cpu/cpu.ts:142:33 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:144:58 + ;;@ core/cpu/cpu.ts:142:58 (i32.const 8) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:145:4 + ;;@ core/cpu/cpu.ts:143:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:145:25 + ;;@ core/cpu/cpu.ts:143:25 (i32.load16_u - ;;@ core/cpu/cpu.ts:145:35 + ;;@ core/cpu/cpu.ts:143:35 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:145:60 + ;;@ core/cpu/cpu.ts:143:60 (i32.const 10) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:147:4 + ;;@ core/cpu/cpu.ts:145:4 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:147:24 + ;;@ core/cpu/cpu.ts:145:24 (i32.load - ;;@ core/cpu/cpu.ts:147:34 + ;;@ core/cpu/cpu.ts:145:34 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:147:59 + ;;@ core/cpu/cpu.ts:145:59 (i32.const 12) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:149:4 + ;;@ core/cpu/cpu.ts:147:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:149:23 + ;;@ core/cpu/cpu.ts:147:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:149:57 + ;;@ core/cpu/cpu.ts:147:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:149:82 + ;;@ core/cpu/cpu.ts:147:82 (i32.const 17) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:150:4 + ;;@ core/cpu/cpu.ts:148:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:150:23 + ;;@ core/cpu/cpu.ts:148:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:150:57 + ;;@ core/cpu/cpu.ts:148:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:150:82 + ;;@ core/cpu/cpu.ts:148:82 (i32.const 18) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:151:4 + ;;@ core/cpu/cpu.ts:149:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:151:20 + ;;@ core/cpu/cpu.ts:149:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:151:54 + ;;@ core/cpu/cpu.ts:149:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:151:79 + ;;@ core/cpu/cpu.ts:149:79 (i32.const 19) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:152:4 + ;;@ core/cpu/cpu.ts:150:4 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:152:20 + ;;@ core/cpu/cpu.ts:150:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:152:54 + ;;@ core/cpu/cpu.ts:150:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:152:79 + ;;@ core/cpu/cpu.ts:150:79 (i32.const 20) (i32.const 0) ) diff --git a/test/accuracy/testroms/blargg/halt_bug/halt_bug.golden.output b/test/accuracy/testroms/blargg/halt_bug/halt_bug.golden.output new file mode 100644 index 00000000..9c19c193 --- /dev/null +++ b/test/accuracy/testroms/blargg/halt_bug/halt_bug.golden.output @@ -0,0 +1 @@ +[248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255,248,248,248,255] \ No newline at end of file diff --git a/test/accuracy/testroms/blargg/halt_bug/halt_bug.golden.png b/test/accuracy/testroms/blargg/halt_bug/halt_bug.golden.png new file mode 100644 index 0000000000000000000000000000000000000000..194fd4c33c3c8942f1bad5a1659eb5dcab0db77a GIT binary patch literal 2693 zcmb_e3rtg27{+a~Me7_f*KYH%B{*3Q_$Y2{#K)%4R8VVgIlu@gT36=cYcv@`K;0xb zxklK=ZYOgp6sx!BB!x}sM2RNV>=xr5S&+$O!n*8%)OK;8Y3#mpTj$tA%`%dndvEDI z=l}liaZaT{uNyP!@ljDxQDf2;rW$dr!{_aXqA^x~vf>R~?n_IZPm4$NKfd|PsHjo% z*wd9$r`BIgzc1=kQhiD&)cM=F-6IyPc=B^$O0K7Eb>qCorB?5h2_B1Wr#bnHGtD2a zUX`Q&*qIRb%}dsC>k>SbNmg&_fB*ONpe>QkS!B-k*U)W(x2M^kLT;vN%{fKtspPm& zDAGX;{23NM$eZ~czs3evfG}dPJ(<<7%$eiWONH!LZ6?5E+y$juzixoWt)x>h=8x4<< zDmv%T0<-kI(LaeJgu^Ol*Cvd0JW8#;<5#1^W$vXJU75jWA~y+JiY|}fny5b=gL6*7 zs*>%p!CBUWWsC4K)*du=IcRW-xF;QNVtT2ASTBazQg6d+QTv9`3srp`OKN zsrWtlu<1bJpm5T?LUtpDTt-yr)6t%4tT@0sF+L4j zmD7QBP=3AXdQ0`sHTfuam<>|UxjM^!*tSK8MQMyy_MAT$#xs*=)T+2@_=aH}G$tE0 zXwGDNSeL9P?7i6+hL(8850~NOOrGa886{TPz-y#_MX%D-wO+%Xz_K+L7f z>wDv*V44<cEDk^1zqP=anE`bhbASGCYF|9IWOt)~efBN*` z0m}|~qg19f!()_8<{>QRyK*5N5fV?1F<_Ej2E}O!)vl}R zu=-lH=7UCOchSo0M_Fb%gI&674$FR%K}n}r@Rj3cIT;Hj4WR9;dKO_SJl}l%iLc{4 zmUl;wi&UwKTpzj{if&tA8JEv9ax{_zbDgvS-Ry6MKI*j!KB?7?Cc{fHVlDs`>n4OA z8D9KYN3lKZ8qYelb;BVR4xW9R=sr{x&4L!?Ygi_{#rg|XorpL^Npn264@AO2{ijmH zJIHOv3=0Qn`*y)9P*aDVZWo#)>_`eD(U7@;hd;Mrzp$GQ1lA`FQ2#i(p8s3=34$Ci z(K4;QHwT_;sslNq;?3i(nF_N1TW0xStOJGV(31-YlL0#@M&!;(H)jnClGj$U!16UR znz0XZ)zXk4w?rUeXNpFe%@5-(Aijb=Jr^2Fnhbz>bH5ErjS)9~tby@LMuM=|e{xY8 z(!HDQ3fQnFamV0H=tymS0@mzqFkxig$cO~NWbj#ZFTuA1DOn4j+*01Z24CJT^c`7u z@?R9#nt}R;Mct35Q*q?@iWYG%EKzO<#qLodTiQq0Aig2Q?8dvfsGNm3dVedtnddJ= z!aVrPJ)N7>n|W83{}|HQ8alcYaaGrx&{Tw@3)|E_fp^&l0n;2T#e6vSHlTQt?=bLPnf-(UTPL*+S}s4#bZz;_bkJsW!c=f3u?`0KO^qr{=gQJZ vdH6O@ITIAH!%ygFILGdM)~meXf8nV&cMtt!dGRpLl~HM0ed>_~E4Ka)@L}#a literal 0 HcmV?d00001 diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.golden.output b/test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.golden.output new file mode 100644 index 00000000..c9f8adbb --- /dev/null +++ b/test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.golden.output @@ -0,0 +1 @@ +[242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255] \ No newline at end of file diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.golden.png b/test/accuracy/testroms/mooneye/halt/halt_ime0_ei/halt_ime0_ei.golden.png new file mode 100644 index 0000000000000000000000000000000000000000..681f6b42485280941e78116ec46d43f4f4166168 GIT binary patch literal 615 zcmeAS@N?(olHy`uVBq!ia0vp^3xIe62OE&=-q?kNi978G?-$>P60&)~UytfA( zvt-yrTn;XG%hvt>_x$zKI~$Vq*?Kkzv-aF-3jg}4!e*ahFH5F|hqI#;*QJ07ZA~U3 zOBROj+ihL9T(|sqb#CSRcNJNuFW>!Wo%?ge?#C;2{mb2>=e_IO_Tv5bQ{}mpyR2`0 zii`et_U^@L%Xcr(kA5WpgiH z|9Fah>(l*Pp1%9BPAMTpKb{KISa)sO{H;$xu9$yi z8ps9vFHHm5^y~Lt8@c{`4`pPBEAXdIEm0OU|Vj%=fISihz KelF{r5}E)K^!ZZ& literal 0 HcmV?d00001 diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.golden.output b/test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.golden.output new file mode 100644 index 00000000..35675632 --- /dev/null +++ b/test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.golden.output @@ -0,0 +1 @@ +[242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255] \ No newline at end of file diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.golden.png b/test/accuracy/testroms/mooneye/halt/halt_ime0_nointr_timing/halt_ime0_nointr_timing.golden.png new file mode 100644 index 0000000000000000000000000000000000000000..d127d55eb4bb92bdc07c3037a3b74a36441fb1ba GIT binary patch literal 1769 zcmb_d4QLZ*7|sNL)?&sOm-*9Lw!#WuwNeFJu~OP5##XDB0bWV;EEVW6S_O7iK*@i9s*%YqBz*;sLDr8o#W^Qvco=g@;*X+4#tB#F2$i4l zzceEE$lIu%`CUB;CADPYZgtY^tB|spRBJROj}Tf*#=B$(CdaKIk1gN%zS|mlkjan& zhWVl_-V-j3Ung{(Wmpv0)q~z!d$2ed-6w@gy~IQW=f8>RY-#ZEeaq52g=w5^ng{5Rk>2ly~?M0Wjl)OI4e&J z$vh1#ulLsTK!}n#1H#de6|gG$yxD_9EqMp<^>lfvlnWwlF#8a7pD$V|jUwsBa-XQYW;2Nat%Mtryc}2y3rnWhkf-NC z0l=a$VYI3B?!!MWXIZx*M1_=KfvYjzBVPye`>|CfQrygcx&Yqlnp4nWHMayKNL*d9 z8Cv9)&NGp?dFhm@p^nP9gE}Mfci>+vw28@|42?nLm*la^VtK^y({^R26s(Z84c%|E z&l;K34yhlgfV~+rD{=*z42rvf3rL<0c?4i2a0b4f0Ti=(XuKqT(tqaOQ*HsY+j*DG zQfD-oOz|LfR;u@0lDK{81&t{PU(IEn!AW}KYq^}_7!NMV_GO0g(ckTqaz7X@G$NN+?4uN`BsD2xhijX|T#v?b)J za;ugc4QP0;I=z14+Ear5r_YZ=I@tif9%mDxG(kAQr~~4-2mfafa1V*QFst0jo83iJ zKZA5Ah@Ce#Ad1LN=|qLJeQ_pN`$};cQY>6K>;SHX{V*Z27mC8+uvNKW*IEgiKNs`8 z#P1g&har4sb5|iKVMZwYqS<{eCO1-ogHFOEi&wOcgS}~dz1jrG%v5!<4I-VlwkjgC z+AYeScppt`0PO&qef99jpKrHR{;k*j2RzR*br_zVB+e4F9SA`4`+UyPYc% R)A)Dk%1wKW=SmM8`wJX7LsI|% literal 0 HcmV?d00001 diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.golden.output b/test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.golden.output new file mode 100644 index 00000000..beae951f --- /dev/null +++ b/test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.golden.output @@ -0,0 +1 @@ +[242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255] \ No newline at end of file diff --git a/test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.golden.png b/test/accuracy/testroms/mooneye/halt/halt_ime1_timing/halt_ime1_timing.golden.png new file mode 100644 index 0000000000000000000000000000000000000000..56c06153ab8b49311c169be92e852332b6e43b1f GIT binary patch literal 1722 zcmcgte@Gi=7*4yXBU@XfJAYJb!Ld0$buI{1(dtaKiCOEC%XegML5mLTMp0tvuo#@w zO4rliq&*6owQ4-QOFG4|(MmIej0-f3h5e!(tEM{%6t*s$Fmk~k+51IT7-fw8vp?>> zyYIX2{hs%EpXa?x=0?LF?E$SuquJA7tfOHZhwGzfQsF-Q#mPPxb~n`3;_h9)9q9c| zqe(qO-X1O0cH}f=XqJ9RyZhzW>(@)J`uf_n4|i*yj=cNRm4tCKf93bs`o6%ucXWYc zgSx|S4b6YsI^@b|JNxq#4QLq6;zp`~i(#S4Q!d(>DtDJB z>v}X0MvaKFQBjLnE@C^Ai&374M={z9AF~Fk#_FKOTQpf53Y}f;Oa_}_FPkJrGB5(p zMb-KUR*Y~7dR{i`s>3cn%vV_zzc7lbJ^F}QNrx~Kv@)jUj!LR?a8Sz)3+4)pH(;WE zAn0WTKqCm|Y{1j6*E z!tvR7FR&28zVkshYoixD-BVqH`bvj09Z_i<>t#b&X~IAdp#mnN4<7aU6Aw~=1Vn`d z?7U!-IFnQxu}EIQ&iD+x?8dW6-VoKY?8>C$EvWfZdBh}n@y34Y5KlXJT3Ie`evO}; zoYY4cgduVP7rmj6Owr20`|4MCn;Hi*(Z$U7n(s*EhHNb%&dvrmjr$ zf=7K0U1ZxKiMi=6k6MJNVK{xUKc|F-+H}9jv9O=u<7Fn9!rb)QP;$n0vpb!lI5s9Y zub3o}91dijOCdSOgbfedPLh5cXGF>$nj8a!mzy08h@E1l4#&%Jh5g%2-UdP-lJedRCvi% zb3-ols0FC`1TUL-+55J0R}y)0N9#tS=XN++qn=M3bq@EunP$b6gz?1k2IZ%6>B@=f1|EXxLaa5bC_@PyVft_Aeo zd1kd92p$vFZxC4upW2~yaX-cN2mO+(<~T?R0kI*0q}>1tdjaqW;I=9nM4#CiTi;A; zJN?EK2p@&X z&IkQ(XzrK5AmqB@rlEVFz+DGa64V&Nuub`+Xz>!O<&?AcyVD^^&$gGba(uufsfpP8 t{_qE{244E_z(~jXpLfN7o%643Jyq^lOB;9Phu~+VX{c|ko7JB@|0iz4A|n6* literal 0 HcmV?d00001 diff --git a/test/accuracy/testroms/mooneye/timer/rapid_toggle/rapid_toggle.golden.output b/test/accuracy/testroms/mooneye/timer/rapid_toggle/rapid_toggle.golden.output index 68c9048a..23dcd876 100644 --- a/test/accuracy/testroms/mooneye/timer/rapid_toggle/rapid_toggle.golden.output +++ b/test/accuracy/testroms/mooneye/timer/rapid_toggle/rapid_toggle.golden.output @@ -1 +1 @@ -[242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255] \ No newline at end of file +[242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,8,8,8,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,8,8,8,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255,242,242,242,255] \ No newline at end of file diff --git a/test/accuracy/testroms/mooneye/timer/rapid_toggle/rapid_toggle.golden.png b/test/accuracy/testroms/mooneye/timer/rapid_toggle/rapid_toggle.golden.png index bdb2febba6a68f51c981673c01aaae904db6c070..e4617fa82c7f76c1802713c4b123059d44f2e755 100644 GIT binary patch delta 1160 zcmZ8ge`p(39Jj(ciEjPFo$2Uw=qQet&RWA(gt*wWx7w_;$@N`ANoht!i%>T6hmx?6 zLu;7awR9|df5hQpv{&zvrJ*adn=K9gabcd!>L1F+td%Qa{xd@Y(i2nT_b%=qA9wE^ z@B7~OK0m(S`}=<0cj=X;*+o0s#Py3B!PnTePt{%}fS*I_d>i)!;r9}L0;NRFE@Ov; zN6k69N3eQj$rG7X`(->yAwQy0G)+ug&mE?LM$KFhpU;$l|N7?9}?yN&<^cqA9 z0U)aQL)$c7=657q8$gYZ=oLsaSjuQN{e!|*!Crh`=-U5v<#FVvQaz=#b_}&p`MK(K zjr~8!c0*;3x0z!5Gy0$bcb*A}Oy#RU?HzPjWENQoAO+&84dknRq5>iq7CCj{Jc6?`U&G$AIvc;nLsdt-_AHcb}LhE#ZH__^#VFU`25+*3r4K${p%>< zbFR{e@-C{wsluHZt9+A*oL2n4iWgD!Q-bsLxC*5}B*`Jw0>9{YFglrWHKaj@8sa1Y zlA-{#@5buiw_fZ>^fW)q{a%clrMV0R8Bpe{*T(@j{9#C$QkQ^x4h+A^z;h23 z^Q)BvHt?MhVfQZhXfCiZLA4m!8!_!Qvn2H6LP5q@azN#x1;bApMUfRl;o3P0m1Wp2 za{1Lzx_X2H8#fU2#{wjEiP{wl;aA`)o(`_)orLFk3$a1*KANF;UzJ^@q}ofzRsH?$ z7!y~0AvS%39W^`=A;l4V0xslSZ)d|pag~L5S8Q|T@7;es>)Jmu9s0pAa*W3k^dq$br;-aT8qv7xO`e#>M6iT{(#%Oc0F|$OgJ*@1&j--1`?sQ4|DgsE$WGY7G|E%m> z&UU`rkv(%d@J2CV;vPX;DA4;}GTJI6`C;UzNM7X;Mgc|dLCzUkU1JQI`kZ`6CC2#b zp3#B^)p3lRG@RnrQf!*1RhG{giK3s+`++A1Zkes=22%K`Z$@9*@EP z8f_46>aPR*h5G%UW+}xwymu4T`pw6sN@;fV`_SxEIQ_B4s>4u7bOyL>Qyj@C^?#6D zucV)mblQvpa(V&ghJuF_T>IUYS<-q;E&-BHEYk>~u6P*`!60?!Z|DQqu%ke~dBear z)u*uxw3@1P?CxE;moMeFT|i37qf}o8CUfz!+n|B6T%0i)V1e7h>%e@Zvh(+A7mufo z6;?nehj;80B{X}+P6>Heaft_Q{g(<>kug>nqpvuyR$k^IW!qcnt7L5)J87cfm~ZsD z)&;vF9~4|@9p@NBV2LF%4|J=W*do@7kQMFOPEXhcem()zya3!x(fj0pPz{8AJCK^J zew4{)?AaF=IZG4w?WhR2Z7{#2`8I&aM}Qg9L60Dc0!H9$lE_KBT*Y=ma0X}`C({P^Bs?V7-kb&% zzpfWP;gfKwTj`X#CB2J}f)~MLVYm z0T@KS^<|2US%jPWbwcx;AjU~An1=6@pgGX10`F%?`O82(HFFf)t3>CuVTi2)R8f&* zHi5tOTXu$A7*VRvp*<@};lEvNfgTSiq@c@5*}YA_5>8*$d`6S08^C2iXG9%zQlcAL z>HIXU`u{orzZkakFRoY`|MS*0mLCSWD?8Tjo^Oihew>_p3P!K%!nyVCcP9S Date: Sat, 17 Nov 2018 21:46:27 -0800 Subject: [PATCH 10/18] Added better speed switch support --- core/cpu/cpu.ts | 7 +- core/memory/readTraps.ts | 20 +- core/memory/writeTraps.ts | 10 + dist/core/core.untouched.wasm | Bin 41752 -> 41830 bytes dist/core/core.untouched.wast | 859 +++++++++++++++++++--------------- 5 files changed, 504 insertions(+), 392 deletions(-) diff --git a/core/cpu/cpu.ts b/core/cpu/cpu.ts index 42bedd80..fb1db406 100644 --- a/core/cpu/cpu.ts +++ b/core/cpu/cpu.ts @@ -18,6 +18,10 @@ import { log, hexLog } from '../helpers/index'; export class Cpu { // Status to track if we are in Gameboy Color Mode, and GBC State static GBCEnabled: boolean = false; + + // Memory Location for the GBC Speed switch + // And the current status + static readonly memoryLocationSpeedSwitch: u16 = 0xff4d; static GBCDoubleSpeed: boolean = false; // 8-bit Cpu.registers @@ -56,9 +60,6 @@ export class Cpu { return 70224; } - // Memory Location for the GBC Speed switch - static readonly memoryLocationSpeedSwitch: u16 = 0xff4d; - // HALT and STOP instructions need to stop running opcodes, but simply check timers // https://github.com/nakardo/node-gameboy/blob/master/lib/cpu/opcodes.js // Matt said is should work to, so it must work! diff --git a/core/memory/readTraps.ts b/core/memory/readTraps.ts index 194e5ccd..cf15cccb 100644 --- a/core/memory/readTraps.ts +++ b/core/memory/readTraps.ts @@ -1,4 +1,5 @@ import { Memory } from './memory'; +import { Cpu } from '../cpu/index'; import { Graphics, batchProcessGraphics } from '../graphics/graphics'; import { Palette, Lcd } from '../graphics/index'; import { batchProcessAudio, SoundRegisterReadTraps } from '../sound/index'; @@ -7,7 +8,7 @@ import { eightBitLoadFromGBMemory } from './load'; import { Joypad, getJoypadState } from '../joypad/index'; import { Timers } from '../timers/index'; import { Interrupts } from '../interrupts/index'; -import { splitHighByte, hexLog } from '../helpers/index'; +import { checkBitOnByte, resetBitOnByte, splitHighByte, hexLog } from '../helpers/index'; // Returns -1 if no trap found, otherwise returns a value that should be fed for the address export function checkReadTraps(offset: i32): i32 { @@ -56,6 +57,23 @@ export function checkReadTraps(offset: i32): i32 { return -1; } + // CPU + if (offset === Cpu.memoryLocationSpeedSwitch) { + // TCAGBD, only Bit 7 and 0 are readable, all others are 1 + let response: i32 = 0xff; + + let currentSpeedSwitchRegister: i32 = eightBitLoadFromGBMemory(Cpu.memoryLocationSpeedSwitch); + if (!checkBitOnByte(0, currentSpeedSwitchRegister)) { + response = resetBitOnByte(0, response); + } + + if (!Cpu.GBCDoubleSpeed) { + response = resetBitOnByte(7, response); + } + + return response; + } + // Graphics // Not batch processing here for performance // batchProcessGraphics(); diff --git a/core/memory/writeTraps.ts b/core/memory/writeTraps.ts index 9696801a..bda120fe 100644 --- a/core/memory/writeTraps.ts +++ b/core/memory/writeTraps.ts @@ -1,4 +1,5 @@ import { Memory } from './memory'; +import { Cpu } from '../cpu/index'; import { Graphics, batchProcessGraphics } from '../graphics/graphics'; import { Palette, writeColorPaletteToMemory, Lcd } from '../graphics/index'; import { batchProcessAudio, SoundRegisterWriteTraps } from '../sound/index'; @@ -14,6 +15,15 @@ import { checkBitOnByte, hexLog } from '../helpers/index'; // Internal function to trap any modify data trying to be written to Gameboy memory // Follows the Gameboy memory map export function checkWriteTraps(offset: i32, value: i32): boolean { + // Cpu + if (offset === Cpu.memoryLocationSpeedSwitch) { + // TCAGBD, only Bit 0 is writable + eightBitStoreIntoGBMemory(Cpu.memoryLocationSpeedSwitch, value & 0x01); + // We did the write, dont need to + return false; + } + + // Graphics // Cache globals used multiple times for performance let videoRamLocation: i32 = Memory.videoRamLocation; let spriteInformationTableLocation: i32 = Memory.spriteInformationTableLocation; diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index 9abe094516c0bdb15b9842a84186f4b0388556a3..e03ca330c53650dba6b4e677b2597c9f6cb75257 100644 GIT binary patch delta 117 zcmbPnjOp1irVXilOdC#ZPUl-M$9R6SxNe=%*?-J#EDnzU85J2F861H;0cHUKSD*+3 zP)tBUk&#>37{p~)fbbL;H&4)I#1pxtn0zd*lv+Ou}YIMvG A-v9sr diff --git a/dist/core/core.untouched.wast b/dist/core/core.untouched.wast index 8068c852..a3929933 100644 --- a/dist/core/core.untouched.wast +++ b/dist/core/core.untouched.wast @@ -599,185 +599,185 @@ ) ) (func $core/cpu/cpu/initializeCpu (; 4 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:157:2 - (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed - ;;@ core/cpu/cpu.ts:157:23 - (i32.const 0) - ) ;;@ core/cpu/cpu.ts:158:2 - (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:158:18 + (set_global $core/cpu/cpu/Cpu.GBCDoubleSpeed + ;;@ core/cpu/cpu.ts:158:23 (i32.const 0) ) ;;@ core/cpu/cpu.ts:159:2 - (set_global $core/cpu/cpu/Cpu.registerB + (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/cpu.ts:159:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:160:2 - (set_global $core/cpu/cpu/Cpu.registerC + (set_global $core/cpu/cpu/Cpu.registerB ;;@ core/cpu/cpu.ts:160:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:161:2 - (set_global $core/cpu/cpu/Cpu.registerD + (set_global $core/cpu/cpu/Cpu.registerC ;;@ core/cpu/cpu.ts:161:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:162:2 - (set_global $core/cpu/cpu/Cpu.registerE + (set_global $core/cpu/cpu/Cpu.registerD ;;@ core/cpu/cpu.ts:162:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:163:2 - (set_global $core/cpu/cpu/Cpu.registerH + (set_global $core/cpu/cpu/Cpu.registerE ;;@ core/cpu/cpu.ts:163:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:164:2 - (set_global $core/cpu/cpu/Cpu.registerL + (set_global $core/cpu/cpu/Cpu.registerH ;;@ core/cpu/cpu.ts:164:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:165:2 - (set_global $core/cpu/cpu/Cpu.registerF + (set_global $core/cpu/cpu/Cpu.registerL ;;@ core/cpu/cpu.ts:165:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:166:2 - (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:166:21 + (set_global $core/cpu/cpu/Cpu.registerF + ;;@ core/cpu/cpu.ts:166:18 (i32.const 0) ) ;;@ core/cpu/cpu.ts:167:2 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:167:23 + (set_global $core/cpu/cpu/Cpu.stackPointer + ;;@ core/cpu/cpu.ts:167:21 (i32.const 0) ) ;;@ core/cpu/cpu.ts:168:2 - (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:168:22 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/cpu/cpu.ts:168:23 (i32.const 0) ) ;;@ core/cpu/cpu.ts:169:2 - (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:169:21 + (set_global $core/cpu/cpu/Cpu.currentCycles + ;;@ core/cpu/cpu.ts:169:22 (i32.const 0) ) ;;@ core/cpu/cpu.ts:170:2 - (set_global $core/cpu/cpu/Cpu.isHaltNoJump + (set_global $core/cpu/cpu/Cpu.isHaltNormal ;;@ core/cpu/cpu.ts:170:21 (i32.const 0) ) ;;@ core/cpu/cpu.ts:171:2 - (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:171:18 + (set_global $core/cpu/cpu/Cpu.isHaltNoJump + ;;@ core/cpu/cpu.ts:171:21 (i32.const 0) ) ;;@ core/cpu/cpu.ts:172:2 - (set_global $core/cpu/cpu/Cpu.isStopped + (set_global $core/cpu/cpu/Cpu.isHaltBug ;;@ core/cpu/cpu.ts:172:18 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:174:2 + ;;@ core/cpu/cpu.ts:173:2 + (set_global $core/cpu/cpu/Cpu.isStopped + ;;@ core/cpu/cpu.ts:173:18 + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:175:2 (if - ;;@ core/cpu/cpu.ts:174:6 + ;;@ core/cpu/cpu.ts:175:6 (get_global $core/cpu/cpu/Cpu.GBCEnabled) - ;;@ core/cpu/cpu.ts:174:22 + ;;@ core/cpu/cpu.ts:175:22 (block - ;;@ core/cpu/cpu.ts:176:4 + ;;@ core/cpu/cpu.ts:177:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:176:20 + ;;@ core/cpu/cpu.ts:177:20 (i32.const 17) ) - ;;@ core/cpu/cpu.ts:177:4 + ;;@ core/cpu/cpu.ts:178:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:177:20 + ;;@ core/cpu/cpu.ts:178:20 (i32.const 128) ) - ;;@ core/cpu/cpu.ts:178:4 + ;;@ core/cpu/cpu.ts:179:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:178:20 + ;;@ core/cpu/cpu.ts:179:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:179:4 + ;;@ core/cpu/cpu.ts:180:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:179:20 + ;;@ core/cpu/cpu.ts:180:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:180:4 + ;;@ core/cpu/cpu.ts:181:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:180:20 + ;;@ core/cpu/cpu.ts:181:20 (i32.const 255) ) - ;;@ core/cpu/cpu.ts:181:4 + ;;@ core/cpu/cpu.ts:182:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:181:20 + ;;@ core/cpu/cpu.ts:182:20 (i32.const 86) ) - ;;@ core/cpu/cpu.ts:182:4 + ;;@ core/cpu/cpu.ts:183:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:182:20 + ;;@ core/cpu/cpu.ts:183:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:183:4 + ;;@ core/cpu/cpu.ts:184:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:183:20 + ;;@ core/cpu/cpu.ts:184:20 (i32.const 13) ) ) - ;;@ core/cpu/cpu.ts:188:9 + ;;@ core/cpu/cpu.ts:189:9 (block - ;;@ core/cpu/cpu.ts:190:4 + ;;@ core/cpu/cpu.ts:191:4 (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:190:20 + ;;@ core/cpu/cpu.ts:191:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:191:4 + ;;@ core/cpu/cpu.ts:192:4 (set_global $core/cpu/cpu/Cpu.registerF - ;;@ core/cpu/cpu.ts:191:20 + ;;@ core/cpu/cpu.ts:192:20 (i32.const 176) ) - ;;@ core/cpu/cpu.ts:192:4 + ;;@ core/cpu/cpu.ts:193:4 (set_global $core/cpu/cpu/Cpu.registerB - ;;@ core/cpu/cpu.ts:192:20 + ;;@ core/cpu/cpu.ts:193:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:193:4 + ;;@ core/cpu/cpu.ts:194:4 (set_global $core/cpu/cpu/Cpu.registerC - ;;@ core/cpu/cpu.ts:193:20 + ;;@ core/cpu/cpu.ts:194:20 (i32.const 19) ) - ;;@ core/cpu/cpu.ts:194:4 + ;;@ core/cpu/cpu.ts:195:4 (set_global $core/cpu/cpu/Cpu.registerD - ;;@ core/cpu/cpu.ts:194:20 + ;;@ core/cpu/cpu.ts:195:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:195:4 + ;;@ core/cpu/cpu.ts:196:4 (set_global $core/cpu/cpu/Cpu.registerE - ;;@ core/cpu/cpu.ts:195:20 + ;;@ core/cpu/cpu.ts:196:20 (i32.const 216) ) - ;;@ core/cpu/cpu.ts:196:4 + ;;@ core/cpu/cpu.ts:197:4 (set_global $core/cpu/cpu/Cpu.registerH - ;;@ core/cpu/cpu.ts:196:20 + ;;@ core/cpu/cpu.ts:197:20 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:197:4 + ;;@ core/cpu/cpu.ts:198:4 (set_global $core/cpu/cpu/Cpu.registerL - ;;@ core/cpu/cpu.ts:197:20 + ;;@ core/cpu/cpu.ts:198:20 (i32.const 77) ) ) ) - ;;@ core/cpu/cpu.ts:186:4 + ;;@ core/cpu/cpu.ts:187:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:186:25 + ;;@ core/cpu/cpu.ts:187:25 (i32.const 256) ) - ;;@ core/cpu/cpu.ts:187:4 + ;;@ core/cpu/cpu.ts:188:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:187:23 + ;;@ core/cpu/cpu.ts:188:23 (i32.const 65534) ) ) @@ -2094,9 +2094,9 @@ (call $core/core/initialize) ) (func $core/cpu/cpu/Cpu.MAX_CYCLES_PER_FRAME (; 23 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/cpu.ts:52:4 + ;;@ core/cpu/cpu.ts:56:4 (if - ;;@ core/cpu/cpu.ts:52:8 + ;;@ core/cpu/cpu.ts:56:8 (get_global $core/cpu/cpu/Cpu.GBCDoubleSpeed) (return (i32.const 140448) @@ -6977,9 +6977,9 @@ ) ) (func $core/cpu/cpu/Cpu.CLOCK_SPEED (; 91 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/cpu.ts:41:4 + ;;@ core/cpu/cpu.ts:45:4 (if - ;;@ core/cpu/cpu.ts:41:8 + ;;@ core/cpu/cpu.ts:45:8 (get_global $core/cpu/cpu/Cpu.GBCDoubleSpeed) (return (i32.const 8388608) @@ -8068,9 +8068,9 @@ ) (func $core/memory/readTraps/checkReadTraps (; 105 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) - ;;@ core/memory/readTraps.ts:18:2 + ;;@ core/memory/readTraps.ts:19:2 (if - ;;@ core/memory/readTraps.ts:18:6 + ;;@ core/memory/readTraps.ts:19:6 (i32.lt_s (get_local $0) (i32.const 32768) @@ -8079,7 +8079,7 @@ (i32.const -1) ) ) - ;;@ core/memory/readTraps.ts:24:6 + ;;@ core/memory/readTraps.ts:25:6 (if (tee_local $1 (i32.ge_s @@ -8088,21 +8088,21 @@ ) ) (set_local $1 - ;;@ core/memory/readTraps.ts:24:36 + ;;@ core/memory/readTraps.ts:25:36 (i32.lt_s (get_local $0) (i32.const 40960) ) ) ) - ;;@ core/memory/readTraps.ts:24:2 + ;;@ core/memory/readTraps.ts:25:2 (if (get_local $1) (return (i32.const -1) ) ) - ;;@ core/memory/readTraps.ts:38:6 + ;;@ core/memory/readTraps.ts:39:6 (if (tee_local $1 (i32.ge_s @@ -8111,30 +8111,30 @@ ) ) (set_local $1 - ;;@ core/memory/readTraps.ts:38:42 + ;;@ core/memory/readTraps.ts:39:42 (i32.lt_s (get_local $0) (i32.const 65024) ) ) ) - ;;@ core/memory/readTraps.ts:38:2 + ;;@ core/memory/readTraps.ts:39:2 (if (get_local $1) - ;;@ core/memory/readTraps.ts:38:90 + ;;@ core/memory/readTraps.ts:39:90 (return - ;;@ core/memory/readTraps.ts:40:11 + ;;@ core/memory/readTraps.ts:41:11 (call $core/memory/load/eightBitLoadFromGBMemory - ;;@ core/memory/readTraps.ts:40:36 + ;;@ core/memory/readTraps.ts:41:36 (i32.add (get_local $0) - ;;@ core/memory/readTraps.ts:40:45 + ;;@ core/memory/readTraps.ts:41:45 (i32.const -8192) ) ) ) ) - ;;@ core/memory/readTraps.ts:46:6 + ;;@ core/memory/readTraps.ts:47:6 (if (tee_local $1 (i32.ge_s @@ -8143,202 +8143,263 @@ ) ) (set_local $1 - ;;@ core/memory/readTraps.ts:46:57 + ;;@ core/memory/readTraps.ts:47:57 (i32.le_s (get_local $0) (i32.const 65183) ) ) ) - ;;@ core/memory/readTraps.ts:46:2 + ;;@ core/memory/readTraps.ts:47:2 (if (get_local $1) - ;;@ core/memory/readTraps.ts:46:109 + ;;@ core/memory/readTraps.ts:47:109 (block - ;;@ core/memory/readTraps.ts:49:4 + ;;@ core/memory/readTraps.ts:50:4 (if - ;;@ core/memory/readTraps.ts:49:8 + ;;@ core/memory/readTraps.ts:50:8 (i32.lt_s (get_global $core/graphics/lcd/Lcd.currentLcdMode) - ;;@ core/memory/readTraps.ts:49:29 + ;;@ core/memory/readTraps.ts:50:29 (i32.const 2) ) (return (i32.const 255) ) ) - ;;@ core/memory/readTraps.ts:56:12 + ;;@ core/memory/readTraps.ts:57:12 (return - ;;@ core/memory/readTraps.ts:56:11 + ;;@ core/memory/readTraps.ts:57:11 (i32.const -1) ) ) ) - ;;@ core/memory/readTraps.ts:62:2 + ;;@ core/memory/readTraps.ts:61:2 (if - ;;@ core/memory/readTraps.ts:62:6 + ;;@ core/memory/readTraps.ts:61:6 (i32.eq (get_local $0) - (i32.const 65348) + (i32.const 65357) ) - ;;@ core/memory/readTraps.ts:62:58 + ;;@ core/memory/readTraps.ts:61:48 (block ;;@ core/memory/readTraps.ts:63:4 + (set_local $1 + ;;@ core/memory/readTraps.ts:63:24 + (i32.const 255) + ) + ;;@ core/memory/readTraps.ts:66:4 + (if + ;;@ core/memory/readTraps.ts:66:8 + (i32.eqz + ;;@ core/memory/readTraps.ts:66:9 + (call $core/helpers/index/checkBitOnByte + ;;@ core/memory/readTraps.ts:66:24 + (i32.const 0) + ;;@ core/memory/readTraps.ts:65:42 + (call $core/memory/load/eightBitLoadFromGBMemory + (i32.const 65357) + ) + ) + ) + ;;@ core/memory/readTraps.ts:66:56 + (set_local $1 + ;;@ core/memory/readTraps.ts:67:17 + (call $core/helpers/index/resetBitOnByte + ;;@ core/memory/readTraps.ts:67:32 + (i32.const 0) + (i32.const 255) + ) + ) + ) + ;;@ core/memory/readTraps.ts:70:4 + (if + ;;@ core/memory/readTraps.ts:70:8 + (i32.eqz + ;;@ core/memory/readTraps.ts:70:9 + (get_global $core/cpu/cpu/Cpu.GBCDoubleSpeed) + ) + ;;@ core/memory/readTraps.ts:70:29 + (set_local $1 + ;;@ core/memory/readTraps.ts:71:17 + (call $core/helpers/index/resetBitOnByte + ;;@ core/memory/readTraps.ts:71:32 + (i32.const 7) + (get_local $1) + ) + ) + ) + ;;@ core/memory/readTraps.ts:74:11 + (return + (get_local $1) + ) + ) + ) + ;;@ core/memory/readTraps.ts:80:2 + (if + ;;@ core/memory/readTraps.ts:80:6 + (i32.eq + (get_local $0) + (i32.const 65348) + ) + ;;@ core/memory/readTraps.ts:80:58 + (block + ;;@ core/memory/readTraps.ts:81:4 (call $core/memory/store/eightBitStoreIntoGBMemory (get_local $0) - ;;@ core/memory/readTraps.ts:63:38 + ;;@ core/memory/readTraps.ts:81:38 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) - ;;@ core/memory/readTraps.ts:64:20 + ;;@ core/memory/readTraps.ts:82:20 (return - ;;@ core/memory/readTraps.ts:64:11 + ;;@ core/memory/readTraps.ts:82:11 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) ) ) - ;;@ core/memory/readTraps.ts:70:6 + ;;@ core/memory/readTraps.ts:88:6 (if (tee_local $1 (i32.ge_s (get_local $0) - ;;@ core/memory/readTraps.ts:70:16 + ;;@ core/memory/readTraps.ts:88:16 (i32.const 65296) ) ) (set_local $1 - ;;@ core/memory/readTraps.ts:70:26 + ;;@ core/memory/readTraps.ts:88:26 (i32.le_s (get_local $0) - ;;@ core/memory/readTraps.ts:70:36 + ;;@ core/memory/readTraps.ts:88:36 (i32.const 65318) ) ) ) - ;;@ core/memory/readTraps.ts:70:2 + ;;@ core/memory/readTraps.ts:88:2 (if (get_local $1) - ;;@ core/memory/readTraps.ts:70:44 + ;;@ core/memory/readTraps.ts:88:44 (block - ;;@ core/memory/readTraps.ts:71:4 + ;;@ core/memory/readTraps.ts:89:4 (call $core/sound/sound/batchProcessAudio) - ;;@ core/memory/readTraps.ts:72:40 + ;;@ core/memory/readTraps.ts:90:40 (return - ;;@ core/memory/readTraps.ts:72:11 + ;;@ core/memory/readTraps.ts:90:11 (call $core/sound/registers/SoundRegisterReadTraps (get_local $0) ) ) ) ) - ;;@ core/memory/readTraps.ts:76:6 + ;;@ core/memory/readTraps.ts:94:6 (if (tee_local $1 (i32.ge_s (get_local $0) - ;;@ core/memory/readTraps.ts:76:16 + ;;@ core/memory/readTraps.ts:94:16 (i32.const 65328) ) ) (set_local $1 - ;;@ core/memory/readTraps.ts:76:26 + ;;@ core/memory/readTraps.ts:94:26 (i32.le_s (get_local $0) - ;;@ core/memory/readTraps.ts:76:36 + ;;@ core/memory/readTraps.ts:94:36 (i32.const 65343) ) ) ) - ;;@ core/memory/readTraps.ts:76:2 + ;;@ core/memory/readTraps.ts:94:2 (if (get_local $1) - ;;@ core/memory/readTraps.ts:76:44 + ;;@ core/memory/readTraps.ts:94:44 (block - ;;@ core/memory/readTraps.ts:77:4 + ;;@ core/memory/readTraps.ts:95:4 (call $core/sound/sound/batchProcessAudio) - ;;@ core/memory/readTraps.ts:78:12 + ;;@ core/memory/readTraps.ts:96:12 (return - ;;@ core/memory/readTraps.ts:78:11 + ;;@ core/memory/readTraps.ts:96:11 (i32.const -1) ) ) ) - ;;@ core/memory/readTraps.ts:82:2 + ;;@ core/memory/readTraps.ts:100:2 (if - ;;@ core/memory/readTraps.ts:82:6 + ;;@ core/memory/readTraps.ts:100:6 (i32.eq (get_local $0) (i32.const 65284) ) - ;;@ core/memory/readTraps.ts:82:55 + ;;@ core/memory/readTraps.ts:100:55 (block - ;;@ core/memory/readTraps.ts:86:4 + ;;@ core/memory/readTraps.ts:104:4 (call $core/memory/store/eightBitStoreIntoGBMemory (get_local $0) - ;;@ core/memory/readTraps.ts:85:4 + ;;@ core/memory/readTraps.ts:103:4 (tee_local $1 - ;;@ core/memory/readTraps.ts:85:35 + ;;@ core/memory/readTraps.ts:103:35 (call $core/helpers/index/splitHighByte - ;;@ core/memory/readTraps.ts:85:49 + ;;@ core/memory/readTraps.ts:103:49 (get_global $core/timers/timers/Timers.dividerRegister) ) ) ) - ;;@ core/memory/readTraps.ts:87:11 + ;;@ core/memory/readTraps.ts:105:11 (return (get_local $1) ) ) ) - ;;@ core/memory/readTraps.ts:89:2 + ;;@ core/memory/readTraps.ts:107:2 (if - ;;@ core/memory/readTraps.ts:89:6 + ;;@ core/memory/readTraps.ts:107:6 (i32.eq (get_local $0) (i32.const 65285) ) - ;;@ core/memory/readTraps.ts:89:52 + ;;@ core/memory/readTraps.ts:107:52 (block - ;;@ core/memory/readTraps.ts:90:4 + ;;@ core/memory/readTraps.ts:108:4 (call $core/memory/store/eightBitStoreIntoGBMemory (get_local $0) - ;;@ core/memory/readTraps.ts:90:38 + ;;@ core/memory/readTraps.ts:108:38 (get_global $core/timers/timers/Timers.timerCounter) ) - ;;@ core/memory/readTraps.ts:91:18 + ;;@ core/memory/readTraps.ts:109:18 (return - ;;@ core/memory/readTraps.ts:91:11 + ;;@ core/memory/readTraps.ts:109:11 (get_global $core/timers/timers/Timers.timerCounter) ) ) ) - ;;@ core/memory/readTraps.ts:95:2 + ;;@ core/memory/readTraps.ts:113:2 (if - ;;@ core/memory/readTraps.ts:95:6 + ;;@ core/memory/readTraps.ts:113:6 (i32.eq (get_local $0) (i32.const 65295) ) - ;;@ core/memory/readTraps.ts:95:60 + ;;@ core/memory/readTraps.ts:113:60 (return - ;;@ core/memory/readTraps.ts:97:11 + ;;@ core/memory/readTraps.ts:115:11 (i32.or - ;;@ core/memory/readTraps.ts:97:18 + ;;@ core/memory/readTraps.ts:115:18 (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) - ;;@ core/memory/readTraps.ts:97:11 + ;;@ core/memory/readTraps.ts:115:11 (i32.const 224) ) ) ) - ;;@ core/memory/readTraps.ts:101:2 + ;;@ core/memory/readTraps.ts:119:2 (if - ;;@ core/memory/readTraps.ts:101:6 + ;;@ core/memory/readTraps.ts:119:6 (i32.eq (get_local $0) (i32.const 65280) ) - ;;@ core/memory/readTraps.ts:101:54 + ;;@ core/memory/readTraps.ts:119:54 (return - ;;@ core/memory/readTraps.ts:102:11 + ;;@ core/memory/readTraps.ts:120:11 (call $core/joypad/joypad/getJoypadState) ) ) @@ -10964,16 +11025,38 @@ (local $2 i32) (block $folding-inner1 (block $folding-inner0 - ;;@ core/memory/writeTraps.ts:22:2 + ;;@ core/memory/writeTraps.ts:20:2 + (if + ;;@ core/memory/writeTraps.ts:20:6 + (i32.eq + (get_local $0) + (i32.const 65357) + ) + ;;@ core/memory/writeTraps.ts:20:48 + (block + ;;@ core/memory/writeTraps.ts:22:4 + (call $core/memory/store/eightBitStoreIntoGBMemory + (i32.const 65357) + ;;@ core/memory/writeTraps.ts:22:61 + (i32.and + (get_local $1) + ;;@ core/memory/writeTraps.ts:22:69 + (i32.const 1) + ) + ) + (br $folding-inner1) + ) + ) + ;;@ core/memory/writeTraps.ts:33:2 (if - ;;@ core/memory/writeTraps.ts:22:6 + ;;@ core/memory/writeTraps.ts:33:6 (i32.lt_s (get_local $0) (i32.const 32768) ) - ;;@ core/memory/writeTraps.ts:22:33 + ;;@ core/memory/writeTraps.ts:33:33 (block - ;;@ core/memory/writeTraps.ts:23:4 + ;;@ core/memory/writeTraps.ts:34:4 (call $core/memory/banking/handleBanking (get_local $0) (get_local $1) @@ -10981,7 +11064,7 @@ (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:29:6 + ;;@ core/memory/writeTraps.ts:40:6 (if (tee_local $2 (i32.ge_s @@ -10990,7 +11073,7 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:29:36 + ;;@ core/memory/writeTraps.ts:40:36 (i32.lt_s (get_local $0) (i32.const 40960) @@ -11000,7 +11083,7 @@ (br_if $folding-inner0 (get_local $2) ) - ;;@ core/memory/writeTraps.ts:48:6 + ;;@ core/memory/writeTraps.ts:59:6 (if (tee_local $2 (i32.ge_s @@ -11009,24 +11092,24 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:48:42 + ;;@ core/memory/writeTraps.ts:59:42 (i32.lt_s (get_local $0) (i32.const 65024) ) ) ) - ;;@ core/memory/writeTraps.ts:48:2 + ;;@ core/memory/writeTraps.ts:59:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:48:83 + ;;@ core/memory/writeTraps.ts:59:83 (block - ;;@ core/memory/writeTraps.ts:50:4 + ;;@ core/memory/writeTraps.ts:61:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/memory/writeTraps.ts:49:26 + ;;@ core/memory/writeTraps.ts:60:26 (i32.add (get_local $0) - ;;@ core/memory/writeTraps.ts:49:35 + ;;@ core/memory/writeTraps.ts:60:35 (i32.const -8192) ) (get_local $1) @@ -11034,7 +11117,7 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:59:6 + ;;@ core/memory/writeTraps.ts:70:6 (if (tee_local $2 (i32.ge_s @@ -11043,30 +11126,30 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:59:50 + ;;@ core/memory/writeTraps.ts:70:50 (i32.le_s (get_local $0) (i32.const 65183) ) ) ) - ;;@ core/memory/writeTraps.ts:59:2 + ;;@ core/memory/writeTraps.ts:70:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:59:102 + ;;@ core/memory/writeTraps.ts:70:102 (block (br_if $folding-inner1 - ;;@ core/memory/writeTraps.ts:62:8 + ;;@ core/memory/writeTraps.ts:73:8 (i32.lt_s (get_global $core/graphics/lcd/Lcd.currentLcdMode) - ;;@ core/memory/writeTraps.ts:62:29 + ;;@ core/memory/writeTraps.ts:73:29 (i32.const 2) ) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:72:6 + ;;@ core/memory/writeTraps.ts:83:6 (if (tee_local $2 (i32.ge_s @@ -11075,7 +11158,7 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:72:49 + ;;@ core/memory/writeTraps.ts:83:49 (i32.le_s (get_local $0) (i32.const 65279) @@ -11085,34 +11168,34 @@ (br_if $folding-inner1 (get_local $2) ) - ;;@ core/memory/writeTraps.ts:78:6 + ;;@ core/memory/writeTraps.ts:89:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:78:16 + ;;@ core/memory/writeTraps.ts:89:16 (i32.const 65296) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:78:26 + ;;@ core/memory/writeTraps.ts:89:26 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:78:36 + ;;@ core/memory/writeTraps.ts:89:36 (i32.const 65318) ) ) ) - ;;@ core/memory/writeTraps.ts:78:2 + ;;@ core/memory/writeTraps.ts:89:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:78:44 + ;;@ core/memory/writeTraps.ts:89:44 (block - ;;@ core/memory/writeTraps.ts:79:4 + ;;@ core/memory/writeTraps.ts:90:4 (call $core/sound/sound/batchProcessAudio) - ;;@ core/memory/writeTraps.ts:80:48 + ;;@ core/memory/writeTraps.ts:91:48 (return - ;;@ core/memory/writeTraps.ts:80:11 + ;;@ core/memory/writeTraps.ts:91:11 (call $core/sound/registers/SoundRegisterWriteTraps (get_local $0) (get_local $1) @@ -11120,31 +11203,31 @@ ) ) ) - ;;@ core/memory/writeTraps.ts:85:6 + ;;@ core/memory/writeTraps.ts:96:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:85:16 + ;;@ core/memory/writeTraps.ts:96:16 (i32.const 65328) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:85:26 + ;;@ core/memory/writeTraps.ts:96:26 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:85:36 + ;;@ core/memory/writeTraps.ts:96:36 (i32.const 65343) ) ) ) - ;;@ core/memory/writeTraps.ts:85:2 + ;;@ core/memory/writeTraps.ts:96:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:85:44 + ;;@ core/memory/writeTraps.ts:96:44 (call $core/sound/sound/batchProcessAudio) ) - ;;@ core/memory/writeTraps.ts:90:6 + ;;@ core/memory/writeTraps.ts:101:6 (if (tee_local $2 (i32.ge_s @@ -11153,90 +11236,90 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:90:48 + ;;@ core/memory/writeTraps.ts:101:48 (i32.le_s (get_local $0) (i32.const 65355) ) ) ) - ;;@ core/memory/writeTraps.ts:90:2 + ;;@ core/memory/writeTraps.ts:101:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:90:90 + ;;@ core/memory/writeTraps.ts:101:90 (block - ;;@ core/memory/writeTraps.ts:94:4 + ;;@ core/memory/writeTraps.ts:105:4 (if - ;;@ core/memory/writeTraps.ts:94:8 + ;;@ core/memory/writeTraps.ts:105:8 (i32.eq (get_local $0) (i32.const 65344) ) - ;;@ core/memory/writeTraps.ts:94:49 + ;;@ core/memory/writeTraps.ts:105:49 (block - ;;@ core/memory/writeTraps.ts:96:10 + ;;@ core/memory/writeTraps.ts:107:10 (call $core/graphics/lcd/Lcd.updateLcdControl (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:101:4 + ;;@ core/memory/writeTraps.ts:112:4 (if - ;;@ core/memory/writeTraps.ts:101:8 + ;;@ core/memory/writeTraps.ts:112:8 (i32.eq (get_local $0) (i32.const 65348) ) - ;;@ core/memory/writeTraps.ts:101:60 + ;;@ core/memory/writeTraps.ts:112:60 (block - ;;@ core/memory/writeTraps.ts:102:6 + ;;@ core/memory/writeTraps.ts:113:6 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/memory/writeTraps.ts:102:34 + ;;@ core/memory/writeTraps.ts:113:34 (i32.const 0) ) - ;;@ core/memory/writeTraps.ts:103:6 + ;;@ core/memory/writeTraps.ts:114:6 (call $core/memory/store/eightBitStoreIntoGBMemory (get_local $0) - ;;@ core/memory/writeTraps.ts:103:40 + ;;@ core/memory/writeTraps.ts:114:40 (i32.const 0) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:108:4 + ;;@ core/memory/writeTraps.ts:119:4 (if - ;;@ core/memory/writeTraps.ts:108:8 + ;;@ core/memory/writeTraps.ts:119:8 (i32.eq (get_local $0) (i32.const 65349) ) - ;;@ core/memory/writeTraps.ts:108:57 + ;;@ core/memory/writeTraps.ts:119:57 (block - ;;@ core/memory/writeTraps.ts:109:6 + ;;@ core/memory/writeTraps.ts:120:6 (set_global $core/graphics/lcd/Lcd.coincidenceCompare (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:116:4 + ;;@ core/memory/writeTraps.ts:127:4 (if - ;;@ core/memory/writeTraps.ts:116:8 + ;;@ core/memory/writeTraps.ts:127:8 (i32.eq (get_local $0) (i32.const 65350) ) - ;;@ core/memory/writeTraps.ts:116:55 + ;;@ core/memory/writeTraps.ts:127:55 (block - ;;@ core/memory/writeTraps.ts:119:6 + ;;@ core/memory/writeTraps.ts:130:6 (call $core/memory/dma/startDmaTransfer (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:124:4 + ;;@ core/memory/writeTraps.ts:135:4 (block $break|0 (block $case3|0 (block $case2|0 @@ -11260,25 +11343,25 @@ (br $break|0) ) ) - ;;@ core/memory/writeTraps.ts:126:8 + ;;@ core/memory/writeTraps.ts:137:8 (set_global $core/graphics/graphics/Graphics.scrollX (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:129:8 + ;;@ core/memory/writeTraps.ts:140:8 (set_global $core/graphics/graphics/Graphics.scrollY (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:132:8 + ;;@ core/memory/writeTraps.ts:143:8 (set_global $core/graphics/graphics/Graphics.windowX (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:135:8 + ;;@ core/memory/writeTraps.ts:146:8 (set_global $core/graphics/graphics/Graphics.windowY (get_local $1) ) @@ -11287,90 +11370,90 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:144:2 + ;;@ core/memory/writeTraps.ts:155:2 (if - ;;@ core/memory/writeTraps.ts:144:6 + ;;@ core/memory/writeTraps.ts:155:6 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:144:17 + ;;@ core/memory/writeTraps.ts:155:17 (get_global $core/memory/memory/Memory.memoryLocationHdmaTrigger) ) - ;;@ core/memory/writeTraps.ts:144:51 + ;;@ core/memory/writeTraps.ts:155:51 (block - ;;@ core/memory/writeTraps.ts:145:4 + ;;@ core/memory/writeTraps.ts:156:4 (call $core/memory/dma/startHdmaTransfer (get_local $1) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:151:6 + ;;@ core/memory/writeTraps.ts:162:6 (if (i32.eqz (tee_local $2 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:151:17 + ;;@ core/memory/writeTraps.ts:162:17 (get_global $core/memory/memory/Memory.memoryLocationGBCWRAMBank) ) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:151:53 + ;;@ core/memory/writeTraps.ts:162:53 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:151:64 + ;;@ core/memory/writeTraps.ts:162:64 (get_global $core/memory/memory/Memory.memoryLocationGBCVRAMBank) ) ) ) - ;;@ core/memory/writeTraps.ts:151:2 + ;;@ core/memory/writeTraps.ts:162:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:151:98 + ;;@ core/memory/writeTraps.ts:162:98 (if - ;;@ core/memory/writeTraps.ts:152:8 + ;;@ core/memory/writeTraps.ts:163:8 (get_global $core/memory/memory/Memory.isHblankHdmaActive) (block - ;;@ core/memory/writeTraps.ts:154:8 + ;;@ core/memory/writeTraps.ts:165:8 (if (tee_local $2 - ;;@ core/memory/writeTraps.ts:154:9 + ;;@ core/memory/writeTraps.ts:165:9 (i32.ge_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:154:36 + ;;@ core/memory/writeTraps.ts:165:36 (i32.const 16384) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:154:46 + ;;@ core/memory/writeTraps.ts:165:46 (i32.le_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:154:73 + ;;@ core/memory/writeTraps.ts:165:73 (i32.const 32767) ) ) ) - ;;@ core/memory/writeTraps.ts:154:8 + ;;@ core/memory/writeTraps.ts:165:8 (if (i32.eqz (get_local $2) ) - ;;@ core/memory/writeTraps.ts:155:8 + ;;@ core/memory/writeTraps.ts:166:8 (if (tee_local $2 - ;;@ core/memory/writeTraps.ts:155:9 + ;;@ core/memory/writeTraps.ts:166:9 (i32.ge_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:155:36 + ;;@ core/memory/writeTraps.ts:166:36 (i32.const 53248) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:155:46 + ;;@ core/memory/writeTraps.ts:166:46 (i32.le_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:155:73 + ;;@ core/memory/writeTraps.ts:166:73 (i32.const 57343) ) ) @@ -11382,30 +11465,30 @@ ) ) ) - ;;@ core/memory/writeTraps.ts:163:6 + ;;@ core/memory/writeTraps.ts:174:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:163:16 + ;;@ core/memory/writeTraps.ts:174:16 (get_global $core/graphics/palette/Palette.memoryLocationBackgroundPaletteIndex) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:163:64 + ;;@ core/memory/writeTraps.ts:174:64 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:163:74 + ;;@ core/memory/writeTraps.ts:174:74 (get_global $core/graphics/palette/Palette.memoryLocationSpritePaletteData) ) ) ) - ;;@ core/memory/writeTraps.ts:163:2 + ;;@ core/memory/writeTraps.ts:174:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:163:115 + ;;@ core/memory/writeTraps.ts:174:115 (block - ;;@ core/memory/writeTraps.ts:165:4 + ;;@ core/memory/writeTraps.ts:176:4 (call $core/graphics/palette/writeColorPaletteToMemory (get_local $0) (get_local $1) @@ -11413,7 +11496,7 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:170:6 + ;;@ core/memory/writeTraps.ts:181:6 (if (tee_local $2 (i32.ge_s @@ -11422,21 +11505,21 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:170:56 + ;;@ core/memory/writeTraps.ts:181:56 (i32.le_s (get_local $0) (i32.const 65287) ) ) ) - ;;@ core/memory/writeTraps.ts:170:2 + ;;@ core/memory/writeTraps.ts:181:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:170:101 + ;;@ core/memory/writeTraps.ts:181:101 (block - ;;@ core/memory/writeTraps.ts:172:4 + ;;@ core/memory/writeTraps.ts:183:4 (call $core/timers/timers/batchProcessTimers) - ;;@ core/memory/writeTraps.ts:174:4 + ;;@ core/memory/writeTraps.ts:185:4 (block $break|1 (block $case3|1 (block $case2|1 @@ -11460,25 +11543,25 @@ (br $break|1) ) ) - ;;@ core/memory/writeTraps.ts:176:15 + ;;@ core/memory/writeTraps.ts:187:15 (call $core/timers/timers/Timers.updateDividerRegister (get_local $1) ) (br $folding-inner1) ) - ;;@ core/memory/writeTraps.ts:179:15 + ;;@ core/memory/writeTraps.ts:190:15 (call $core/timers/timers/Timers.updateTimerCounter (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:182:15 + ;;@ core/memory/writeTraps.ts:193:15 (call $core/timers/timers/Timers.updateTimerModulo (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:185:15 + ;;@ core/memory/writeTraps.ts:196:15 (call $core/timers/timers/Timers.updateTimerControl (get_local $1) ) @@ -11487,44 +11570,44 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:193:2 + ;;@ core/memory/writeTraps.ts:204:2 (if - ;;@ core/memory/writeTraps.ts:193:6 + ;;@ core/memory/writeTraps.ts:204:6 (i32.eq (get_local $0) (i32.const 65280) ) - ;;@ core/memory/writeTraps.ts:193:54 + ;;@ core/memory/writeTraps.ts:204:54 (call $core/joypad/joypad/Joypad.updateJoypad (get_local $1) ) ) - ;;@ core/memory/writeTraps.ts:198:2 + ;;@ core/memory/writeTraps.ts:209:2 (if - ;;@ core/memory/writeTraps.ts:198:6 + ;;@ core/memory/writeTraps.ts:209:6 (i32.eq (get_local $0) (i32.const 65295) ) - ;;@ core/memory/writeTraps.ts:198:60 + ;;@ core/memory/writeTraps.ts:209:60 (block - ;;@ core/memory/writeTraps.ts:199:15 + ;;@ core/memory/writeTraps.ts:210:15 (call $core/interrupts/interrupts/Interrupts.updateInterruptRequested (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:202:2 + ;;@ core/memory/writeTraps.ts:213:2 (if - ;;@ core/memory/writeTraps.ts:202:6 + ;;@ core/memory/writeTraps.ts:213:6 (i32.eq (get_local $0) (i32.const 65535) ) - ;;@ core/memory/writeTraps.ts:202:60 + ;;@ core/memory/writeTraps.ts:213:60 (block - ;;@ core/memory/writeTraps.ts:203:15 + ;;@ core/memory/writeTraps.ts:214:15 (call $core/interrupts/interrupts/Interrupts.updateInterruptEnabled (get_local $1) ) @@ -16149,49 +16232,49 @@ (i32.const 4) ) (func $core/cpu/cpu/Cpu.enableHalt (; 193 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:74:4 + ;;@ core/cpu/cpu.ts:75:4 (if - ;;@ core/cpu/cpu.ts:74:8 + ;;@ core/cpu/cpu.ts:75:8 (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch) - ;;@ core/cpu/cpu.ts:74:42 + ;;@ core/cpu/cpu.ts:75:42 (block - ;;@ core/cpu/cpu.ts:75:6 + ;;@ core/cpu/cpu.ts:76:6 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:75:25 + ;;@ core/cpu/cpu.ts:76:25 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:76:6 + ;;@ core/cpu/cpu.ts:77:6 (return) ) ) - ;;@ core/cpu/cpu.ts:81:4 + ;;@ core/cpu/cpu.ts:82:4 (if (i32.eqz - ;;@ core/cpu/cpu.ts:79:29 + ;;@ core/cpu/cpu.ts:80:29 (i32.and (i32.and (get_global $core/interrupts/interrupts/Interrupts.interruptsEnabledValue) - ;;@ core/cpu/cpu.ts:79:65 + ;;@ core/cpu/cpu.ts:80:65 (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) ) - ;;@ core/cpu/cpu.ts:79:103 + ;;@ core/cpu/cpu.ts:80:103 (i32.const 31) ) ) - ;;@ core/cpu/cpu.ts:81:29 + ;;@ core/cpu/cpu.ts:82:29 (block - ;;@ core/cpu/cpu.ts:82:6 + ;;@ core/cpu/cpu.ts:83:6 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:82:25 + ;;@ core/cpu/cpu.ts:83:25 (i32.const 1) ) - ;;@ core/cpu/cpu.ts:83:6 + ;;@ core/cpu/cpu.ts:84:6 (return) ) ) - ;;@ core/cpu/cpu.ts:86:4 + ;;@ core/cpu/cpu.ts:87:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:86:20 + ;;@ core/cpu/cpu.ts:87:20 (i32.const 1) ) ) @@ -21366,35 +21449,35 @@ ) ) (func $core/cpu/cpu/Cpu.exitHaltAndStop (; 227 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:90:4 + ;;@ core/cpu/cpu.ts:91:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:90:23 + ;;@ core/cpu/cpu.ts:91:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:91:4 + ;;@ core/cpu/cpu.ts:92:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:91:23 + ;;@ core/cpu/cpu.ts:92:23 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:92:4 + ;;@ core/cpu/cpu.ts:93:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:92:20 + ;;@ core/cpu/cpu.ts:93:20 (i32.const 0) ) - ;;@ core/cpu/cpu.ts:93:4 + ;;@ core/cpu/cpu.ts:94:4 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:93:20 + ;;@ core/cpu/cpu.ts:94:20 (i32.const 0) ) ) (func $core/cpu/cpu/Cpu.isHalted (; 228 ;) (; has Stack IR ;) (type $i) (result i32) - ;;@ core/cpu/cpu.ts:97:4 + ;;@ core/cpu/cpu.ts:98:4 (if - ;;@ core/cpu/cpu.ts:97:8 + ;;@ core/cpu/cpu.ts:98:8 (if (result i32) (get_global $core/cpu/cpu/Cpu.isHaltNormal) (get_global $core/cpu/cpu/Cpu.isHaltNormal) - ;;@ core/cpu/cpu.ts:97:28 + ;;@ core/cpu/cpu.ts:98:28 (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) (return @@ -22228,169 +22311,169 @@ ) ) (func $core/cpu/cpu/Cpu.saveState (; 239 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:110:4 - (i32.store8 - ;;@ core/cpu/cpu.ts:110:14 - (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:110:39 - (i32.const 0) - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:110:65 - (get_global $core/cpu/cpu/Cpu.registerA) - ) ;;@ core/cpu/cpu.ts:111:4 (i32.store8 ;;@ core/cpu/cpu.ts:111:14 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:111:39 - (i32.const 1) + (i32.const 0) (i32.const 0) ) ;;@ core/cpu/cpu.ts:111:65 - (get_global $core/cpu/cpu/Cpu.registerB) + (get_global $core/cpu/cpu/Cpu.registerA) ) ;;@ core/cpu/cpu.ts:112:4 (i32.store8 ;;@ core/cpu/cpu.ts:112:14 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:112:39 - (i32.const 2) + (i32.const 1) (i32.const 0) ) ;;@ core/cpu/cpu.ts:112:65 - (get_global $core/cpu/cpu/Cpu.registerC) + (get_global $core/cpu/cpu/Cpu.registerB) ) ;;@ core/cpu/cpu.ts:113:4 (i32.store8 ;;@ core/cpu/cpu.ts:113:14 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:113:39 - (i32.const 3) + (i32.const 2) (i32.const 0) ) ;;@ core/cpu/cpu.ts:113:65 - (get_global $core/cpu/cpu/Cpu.registerD) + (get_global $core/cpu/cpu/Cpu.registerC) ) ;;@ core/cpu/cpu.ts:114:4 (i32.store8 ;;@ core/cpu/cpu.ts:114:14 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:114:39 - (i32.const 4) + (i32.const 3) (i32.const 0) ) ;;@ core/cpu/cpu.ts:114:65 - (get_global $core/cpu/cpu/Cpu.registerE) + (get_global $core/cpu/cpu/Cpu.registerD) ) ;;@ core/cpu/cpu.ts:115:4 (i32.store8 ;;@ core/cpu/cpu.ts:115:14 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:115:39 - (i32.const 5) + (i32.const 4) (i32.const 0) ) ;;@ core/cpu/cpu.ts:115:65 - (get_global $core/cpu/cpu/Cpu.registerH) + (get_global $core/cpu/cpu/Cpu.registerE) ) ;;@ core/cpu/cpu.ts:116:4 (i32.store8 ;;@ core/cpu/cpu.ts:116:14 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:116:39 - (i32.const 6) + (i32.const 5) (i32.const 0) ) ;;@ core/cpu/cpu.ts:116:65 - (get_global $core/cpu/cpu/Cpu.registerL) + (get_global $core/cpu/cpu/Cpu.registerH) ) ;;@ core/cpu/cpu.ts:117:4 (i32.store8 ;;@ core/cpu/cpu.ts:117:14 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:117:39 - (i32.const 7) + (i32.const 6) (i32.const 0) ) ;;@ core/cpu/cpu.ts:117:65 + (get_global $core/cpu/cpu/Cpu.registerL) + ) + ;;@ core/cpu/cpu.ts:118:4 + (i32.store8 + ;;@ core/cpu/cpu.ts:118:14 + (call $core/core/getSaveStateMemoryOffset + ;;@ core/cpu/cpu.ts:118:39 + (i32.const 7) + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:118:65 (get_global $core/cpu/cpu/Cpu.registerF) ) - ;;@ core/cpu/cpu.ts:119:4 + ;;@ core/cpu/cpu.ts:120:4 (i32.store16 - ;;@ core/cpu/cpu.ts:119:15 + ;;@ core/cpu/cpu.ts:120:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:119:40 + ;;@ core/cpu/cpu.ts:120:40 (i32.const 8) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:119:66 + ;;@ core/cpu/cpu.ts:120:66 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - ;;@ core/cpu/cpu.ts:120:4 + ;;@ core/cpu/cpu.ts:121:4 (i32.store16 - ;;@ core/cpu/cpu.ts:120:15 + ;;@ core/cpu/cpu.ts:121:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:120:40 + ;;@ core/cpu/cpu.ts:121:40 (i32.const 10) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:120:66 + ;;@ core/cpu/cpu.ts:121:66 (get_global $core/cpu/cpu/Cpu.programCounter) ) - ;;@ core/cpu/cpu.ts:122:4 + ;;@ core/cpu/cpu.ts:123:4 (i32.store - ;;@ core/cpu/cpu.ts:122:15 + ;;@ core/cpu/cpu.ts:123:15 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:122:40 + ;;@ core/cpu/cpu.ts:123:40 (i32.const 12) (i32.const 0) ) - ;;@ core/cpu/cpu.ts:122:66 + ;;@ core/cpu/cpu.ts:123:66 (get_global $core/cpu/cpu/Cpu.currentCycles) ) - ;;@ core/cpu/cpu.ts:124:4 - (call $core/memory/store/storeBooleanDirectlyToWasmMemory - ;;@ core/cpu/cpu.ts:124:37 - (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:124:62 - (i32.const 17) - (i32.const 0) - ) - ;;@ core/cpu/cpu.ts:124:88 - (get_global $core/cpu/cpu/Cpu.isHaltNormal) - ) ;;@ core/cpu/cpu.ts:125:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/cpu/cpu.ts:125:37 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:125:62 - (i32.const 18) + (i32.const 17) (i32.const 0) ) ;;@ core/cpu/cpu.ts:125:88 - (get_global $core/cpu/cpu/Cpu.isHaltNoJump) + (get_global $core/cpu/cpu/Cpu.isHaltNormal) ) ;;@ core/cpu/cpu.ts:126:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/cpu/cpu.ts:126:37 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:126:62 - (i32.const 19) + (i32.const 18) (i32.const 0) ) ;;@ core/cpu/cpu.ts:126:88 - (get_global $core/cpu/cpu/Cpu.isHaltBug) + (get_global $core/cpu/cpu/Cpu.isHaltNoJump) ) ;;@ core/cpu/cpu.ts:127:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/cpu/cpu.ts:127:37 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:127:62 - (i32.const 20) + (i32.const 19) (i32.const 0) ) ;;@ core/cpu/cpu.ts:127:88 + (get_global $core/cpu/cpu/Cpu.isHaltBug) + ) + ;;@ core/cpu/cpu.ts:128:4 + (call $core/memory/store/storeBooleanDirectlyToWasmMemory + ;;@ core/cpu/cpu.ts:128:37 + (call $core/core/getSaveStateMemoryOffset + ;;@ core/cpu/cpu.ts:128:62 + (i32.const 20) + (i32.const 0) + ) + ;;@ core/cpu/cpu.ts:128:88 (get_global $core/cpu/cpu/Cpu.isStopped) ) ) @@ -22992,181 +23075,181 @@ (i32.const 0) ) (func $core/cpu/cpu/Cpu.loadState (; 252 ;) (; has Stack IR ;) (type $v) - ;;@ core/cpu/cpu.ts:133:4 - (set_global $core/cpu/cpu/Cpu.registerA - ;;@ core/cpu/cpu.ts:133:20 - (i32.load8_u - ;;@ core/cpu/cpu.ts:133:29 - (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:133:54 - (i32.const 0) - (i32.const 0) - ) - ) - ) ;;@ core/cpu/cpu.ts:134:4 - (set_global $core/cpu/cpu/Cpu.registerB + (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/cpu.ts:134:20 (i32.load8_u ;;@ core/cpu/cpu.ts:134:29 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:134:54 - (i32.const 1) + (i32.const 0) (i32.const 0) ) ) ) ;;@ core/cpu/cpu.ts:135:4 - (set_global $core/cpu/cpu/Cpu.registerC + (set_global $core/cpu/cpu/Cpu.registerB ;;@ core/cpu/cpu.ts:135:20 (i32.load8_u ;;@ core/cpu/cpu.ts:135:29 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:135:54 - (i32.const 2) + (i32.const 1) (i32.const 0) ) ) ) ;;@ core/cpu/cpu.ts:136:4 - (set_global $core/cpu/cpu/Cpu.registerD + (set_global $core/cpu/cpu/Cpu.registerC ;;@ core/cpu/cpu.ts:136:20 (i32.load8_u ;;@ core/cpu/cpu.ts:136:29 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:136:54 - (i32.const 3) + (i32.const 2) (i32.const 0) ) ) ) ;;@ core/cpu/cpu.ts:137:4 - (set_global $core/cpu/cpu/Cpu.registerE + (set_global $core/cpu/cpu/Cpu.registerD ;;@ core/cpu/cpu.ts:137:20 (i32.load8_u ;;@ core/cpu/cpu.ts:137:29 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:137:54 - (i32.const 4) + (i32.const 3) (i32.const 0) ) ) ) ;;@ core/cpu/cpu.ts:138:4 - (set_global $core/cpu/cpu/Cpu.registerH + (set_global $core/cpu/cpu/Cpu.registerE ;;@ core/cpu/cpu.ts:138:20 (i32.load8_u ;;@ core/cpu/cpu.ts:138:29 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:138:54 - (i32.const 5) + (i32.const 4) (i32.const 0) ) ) ) ;;@ core/cpu/cpu.ts:139:4 - (set_global $core/cpu/cpu/Cpu.registerL + (set_global $core/cpu/cpu/Cpu.registerH ;;@ core/cpu/cpu.ts:139:20 (i32.load8_u ;;@ core/cpu/cpu.ts:139:29 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:139:54 - (i32.const 6) + (i32.const 5) (i32.const 0) ) ) ) ;;@ core/cpu/cpu.ts:140:4 - (set_global $core/cpu/cpu/Cpu.registerF + (set_global $core/cpu/cpu/Cpu.registerL ;;@ core/cpu/cpu.ts:140:20 (i32.load8_u ;;@ core/cpu/cpu.ts:140:29 (call $core/core/getSaveStateMemoryOffset ;;@ core/cpu/cpu.ts:140:54 + (i32.const 6) + (i32.const 0) + ) + ) + ) + ;;@ core/cpu/cpu.ts:141:4 + (set_global $core/cpu/cpu/Cpu.registerF + ;;@ core/cpu/cpu.ts:141:20 + (i32.load8_u + ;;@ core/cpu/cpu.ts:141:29 + (call $core/core/getSaveStateMemoryOffset + ;;@ core/cpu/cpu.ts:141:54 (i32.const 7) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:142:4 + ;;@ core/cpu/cpu.ts:143:4 (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/cpu.ts:142:23 + ;;@ core/cpu/cpu.ts:143:23 (i32.load16_u - ;;@ core/cpu/cpu.ts:142:33 + ;;@ core/cpu/cpu.ts:143:33 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:142:58 + ;;@ core/cpu/cpu.ts:143:58 (i32.const 8) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:143:4 + ;;@ core/cpu/cpu.ts:144:4 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/cpu.ts:143:25 + ;;@ core/cpu/cpu.ts:144:25 (i32.load16_u - ;;@ core/cpu/cpu.ts:143:35 + ;;@ core/cpu/cpu.ts:144:35 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:143:60 + ;;@ core/cpu/cpu.ts:144:60 (i32.const 10) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:145:4 + ;;@ core/cpu/cpu.ts:146:4 (set_global $core/cpu/cpu/Cpu.currentCycles - ;;@ core/cpu/cpu.ts:145:24 + ;;@ core/cpu/cpu.ts:146:24 (i32.load - ;;@ core/cpu/cpu.ts:145:34 + ;;@ core/cpu/cpu.ts:146:34 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:145:59 + ;;@ core/cpu/cpu.ts:146:59 (i32.const 12) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:147:4 + ;;@ core/cpu/cpu.ts:148:4 (set_global $core/cpu/cpu/Cpu.isHaltNormal - ;;@ core/cpu/cpu.ts:147:23 + ;;@ core/cpu/cpu.ts:148:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:147:57 + ;;@ core/cpu/cpu.ts:148:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:147:82 + ;;@ core/cpu/cpu.ts:148:82 (i32.const 17) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:148:4 + ;;@ core/cpu/cpu.ts:149:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump - ;;@ core/cpu/cpu.ts:148:23 + ;;@ core/cpu/cpu.ts:149:23 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:148:57 + ;;@ core/cpu/cpu.ts:149:57 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:148:82 + ;;@ core/cpu/cpu.ts:149:82 (i32.const 18) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:149:4 + ;;@ core/cpu/cpu.ts:150:4 (set_global $core/cpu/cpu/Cpu.isHaltBug - ;;@ core/cpu/cpu.ts:149:20 + ;;@ core/cpu/cpu.ts:150:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:149:54 + ;;@ core/cpu/cpu.ts:150:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:149:79 + ;;@ core/cpu/cpu.ts:150:79 (i32.const 19) (i32.const 0) ) ) ) - ;;@ core/cpu/cpu.ts:150:4 + ;;@ core/cpu/cpu.ts:151:4 (set_global $core/cpu/cpu/Cpu.isStopped - ;;@ core/cpu/cpu.ts:150:20 + ;;@ core/cpu/cpu.ts:151:20 (call $core/memory/load/loadBooleanDirectlyFromWasmMemory - ;;@ core/cpu/cpu.ts:150:54 + ;;@ core/cpu/cpu.ts:151:54 (call $core/core/getSaveStateMemoryOffset - ;;@ core/cpu/cpu.ts:150:79 + ;;@ core/cpu/cpu.ts:151:79 (i32.const 20) (i32.const 0) ) From 505801888f5a4549c3229fc1467da99abbd56947 Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sat, 17 Nov 2018 23:56:28 -0800 Subject: [PATCH 11/18] Fixed LCD R/W --- core/cpu/opcodes.ts | 2 +- core/graphics/lcd.ts | 15 +- core/interrupts/interrupts.ts | 4 +- core/memory/writeTraps.ts | 7 + .../wasmboyDebugger/wasmboyDebugger.js | 25 +- dist/core/core.untouched.wasm | Bin 41830 -> 41917 bytes dist/core/core.untouched.wast | 1219 +++++++++-------- 7 files changed, 679 insertions(+), 593 deletions(-) diff --git a/core/cpu/opcodes.ts b/core/cpu/opcodes.ts index 46a01b95..767fcb8b 100644 --- a/core/cpu/opcodes.ts +++ b/core/cpu/opcodes.ts @@ -386,7 +386,7 @@ function handleOpcode1x(opcode: i32): i32 { } } - // NOTE: This breaks Blarggs CPU testsif CGB Stop is not implemented + // NOTE: This breaks Blarggs CPU tests if CGB Stop is not implemented Cpu.isStopped = true; Cpu.programCounter = u16Portable(Cpu.programCounter + 1); return 4; diff --git a/core/graphics/lcd.ts b/core/graphics/lcd.ts index a7e8eaaf..24944808 100644 --- a/core/graphics/lcd.ts +++ b/core/graphics/lcd.ts @@ -20,6 +20,19 @@ export class Lcd { // 3 or 11: Transfering Data to LCD Driver static readonly memoryLocationLcdStatus: i32 = 0xff41; static currentLcdMode: i32 = 0; + // Function called in write traps to update our hardware registers + static updateLcdStatus(value: i32): void { + // Bottom three bits are read only + let currentLcdStatus: i32 = eightBitLoadFromGBMemory(Lcd.memoryLocationLcdStatus); + let valueNoBottomBits: i32 = value & 0xf8; + let lcdStatusOnlyBottomBits: i32 = currentLcdStatus & 0x07; + value = valueNoBottomBits | lcdStatusOnlyBottomBits; + + // Top bit is always 1 + value = setBitOnByte(7, value); + + eightBitStoreIntoGBMemory(Lcd.memoryLocationLcdStatus, value); + } static readonly memoryLocationCoincidenceCompare: i32 = 0xff45; static coincidenceCompare: i32 = 0; @@ -45,7 +58,7 @@ export class Lcd { static spriteDisplayEnable: boolean = false; static bgDisplayEnabled: boolean = false; - // Functions called in write traps to update our hardware registers + // Function called in write traps to update our hardware registers static updateLcdControl(value: i32): void { Lcd.enabled = checkBitOnByte(7, value); Lcd.windowTileMapDisplaySelect = checkBitOnByte(6, value); diff --git a/core/interrupts/interrupts.ts b/core/interrupts/interrupts.ts index f67def8c..bb323c3f 100644 --- a/core/interrupts/interrupts.ts +++ b/core/interrupts/interrupts.ts @@ -56,7 +56,7 @@ export class Interrupts { // Function to return if we have any pending interrupts static areInterruptsPending(): boolean { - return (Interrupts.interruptsRequestedValue & Interrupts.interruptsEnabledValue) > 0; + return (Interrupts.interruptsRequestedValue & Interrupts.interruptsEnabledValue & 0x1f) > 0; } // Save States @@ -89,7 +89,7 @@ export function initializeInterrupts(): void { // IF Interrupts.updateInterruptRequested(0xe1); - eightBitStoreIntoGBMemory(Interrupts.memoryLocationInterruptEnabled, Interrupts.interruptsRequestedValue); + eightBitStoreIntoGBMemory(Interrupts.memoryLocationInterruptRequest, Interrupts.interruptsRequestedValue); } // NOTE: Interrupts should be handled before reading an opcode diff --git a/core/memory/writeTraps.ts b/core/memory/writeTraps.ts index bda120fe..964ae344 100644 --- a/core/memory/writeTraps.ts +++ b/core/memory/writeTraps.ts @@ -14,6 +14,7 @@ import { checkBitOnByte, hexLog } from '../helpers/index'; // Internal function to trap any modify data trying to be written to Gameboy memory // Follows the Gameboy memory map +// Return true if you want to continue the write, return false to end it here export function checkWriteTraps(offset: i32, value: i32): boolean { // Cpu if (offset === Cpu.memoryLocationSpeedSwitch) { @@ -107,6 +108,12 @@ export function checkWriteTraps(offset: i32, value: i32): boolean { return true; } + if (offset === Lcd.memoryLocationLcdStatus) { + // We are handling the write here + Lcd.updateLcdStatus(value); + return false; + } + // reset the current scanline if the game tries to write to it if (offset === Graphics.memoryLocationScanlineRegister) { Graphics.scanlineRegister = 0; diff --git a/demo/debugger/wasmboyDebugger/wasmboyDebugger.js b/demo/debugger/wasmboyDebugger/wasmboyDebugger.js index d74143e3..c7749753 100644 --- a/demo/debugger/wasmboyDebugger/wasmboyDebugger.js +++ b/demo/debugger/wasmboyDebugger/wasmboyDebugger.js @@ -153,10 +153,20 @@ export class WasmBoyDebugger extends Component { logWasmBoyMemory() { WasmBoy._getWasmMemorySection().then(wasmByteMemory => { - console.log(`[WasmBoy Debugger] Memory:`, wasmByteMemory); + console.log(`[WasmBoy Debugger] Entire WasmBoy Memory:`, wasmByteMemory); }); } + logGameBoyMemory() { + const asyncTask = async () => { + const location = await WasmBoy._getWasmConstant('GAMEBOY_INTERNAL_MEMORY_LOCATION'); + const size = await WasmBoy._getWasmConstant('GAMEBOY_INTERNAL_MEMORY_SIZE'); + const memory = await WasmBoy._getWasmMemorySection(location, location + size + 1); + console.log(`[WasmBoy Debugger] Gameboy Memory:`, memory); + }; + asyncTask(); + } + updateValueTable() { // Check that we have our instance and byte memory if (!WasmBoy.isReady()) { @@ -302,7 +312,18 @@ export class WasmBoyDebugger extends Component { this.logWasmBoyMemory(); }} > - Log Memory to console + Log Entire WasmBoy Memory to console + + + +

diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index e03ca330c53650dba6b4e677b2597c9f6cb75257..fd2f2646cb8524e6a316fc539add8a518c904200 100644 GIT binary patch delta 9762 zcmb7KcYIV;_J8-inY1@aULcSLWF`}uih!m=AdeJ^RP|>EjmdyPOpgYCejHHO0)d1a zLLh;JfC?%qh`P$^Dr;K{itesmT-RM)d)eQX&sz9>&%JLZ2}D1;eZe@<_^&A3b7v#I5_gNY(9!uV9A(A2IJUHhC?Mvhtdg)jrnfr_Taz&VY9TI~}N z-B5lt@bboh_MM1cRa0K6h}-nIE6N*+YwEeNzA;d#t<&Qg0*&)(R@a7P+UWJjj1iv+ zt7284yxwlAtg4ySw0wD>Uc2#NY*e)o+@yO}1RBo{tf*>e4Ajrk+6U3a8V#aLw9SL) zQmtbUJxALzh@P)?4x-Dnt$G6HTU=kWqQ3m9;+lm`)tFY>rpJQ|Gb*lJTvH`kU3v;w zi)t%sDg$H?F~?pIdk$8`<+%0M z9}o5oKk6GbO0y6DXxNcn&Hk6DW84B&S8w^O2&&EA6LFjH32PmV&M6YxX<5##W{dFZ zkQP^38|a&yvqc+~51Hw#7)9gWVH*^^x)4lHGi{3^m(q&vq`x9*O?g_H&aU9 zg;8z7r+Ia&jjqj`DB9`vyb0py!6SL8A{Hu?xr)5Px7mM}OSkNRk z(x(Mu#Ab?~cFLp<;fXLIxJ7te3_H<*;a1_%Sp#UfCN$VKx@=mO=%S8kWulwjopz4c zesIe4g~GD~a=I-rrPV|03Lh4|WY0(uJL%#Xg^_*2?bWQE)H}mFd$Ys|hFO~JvUUl7 zp)FQg$(8{_9R~1WnzdWl$3>lWy8`3PIMwXcpj$UZ%*+#eXy!~`( z*SU&pVeON1@1sRUDUl((rf5V$SeC=bR#8V$^@KZM%5kGEL$fYt(=xN6Nrl96JeKLt z_UBmR{8`qWbgG>hyi54A*)tWH+5T)yrdfAmGJ*dl@Oy;pVFxWGcjb_Bg5}~($A_8O z9*^nIve#gRuHjJi8z8{9?iHC?kg%khexuGm-MU|RqD_CkzrY%op(zD3lo8NjKYe4T z$K50BsCY+t>i~_JHJ(+^QL5+obB0nq%7lPa9dfMt$#PQl$gt`;SesBCnrmmBr1%4@ zxXZMI@mQ=@#a!i5saBz_V{v5`VktWd4Y>5+-9ow%|Mr4*VUhT!*{-WGg&C`HW;R+6 zQfzUyc$kWdCx{1WRdJ;_K(7|(B-|7q&guW6~2PDW^QdW+HEH7uGM8(?fyD_2(f#g99_%35;x$ z>kiS$Djm-n<|z&H{CPuZ7->R4Mh9}N;mLAR!-%kkc_=XlN|Q<+VGWINAY>f!oH%fj zOW%7@z6P#5L||Yn$Wzvkb_kgnj+a|mZ1OqgKz1$0Q@@&!W!Rc{$;vlmdgQ zf?Q^MQ9|GpjCx27B#oh(dC4?-PK?-36Xv9ka6+ZRslte0T{33@n^>SsEbtc$Wun`J zfD9Jo*u<0Nq=~Mui3OYsS$42Nh6g!?B7uK*cTnBpps0f4tV-_17H}_Ea8fTPM5>qS<7^6;IYw1O zPUDe0`98rV3_+875vK}#JsN)AFfTng$j@46dgTWXiqdpeAUSioT(ayLxF3LvaF#!7 zC}WT-aHS*1?mt;hsxNb8u`?6=%oUt<7NPY8f;SL0z;tR^I1mU73KDM}*!p0z+>=>T z+F6!Jt!LeWx|B432L7KnzZ?I*mH5;Jj2~IRe9ywJ%Q;Mr>#@;*La1dR{JBiUg{VBH zLP7H9GlgwKNft0=n*J71ik<#9P&Fph#QRp%qHIhyW6_kLvl$B0ji_SBzLLSbG&V!j z&4VYydnfPJIYJM!>9!J1gqTmtH+V&ZMPDq6E)8$Op`n#r zGVk6h!3QYeMd=zU#8hb+5JGl%aco;yWay~=sbOj8J0mD2S)7 zetJ2EJ$EHM2eE$7*;buZA;WWm_i{v?68JTZ2E%=i%Bxp-$ASUrA92bz3d>ZC{hs~%UMH!&kz zKILI)DC6kxd2@Y3*{l!Lj7~j2<0n^i<@pnb9AS`cbl>^O!%mn7`9g1=zZs?estcCS z_?__K=I1kT$Ft+-%RA@q9Tsk|d?dG%6#EYYB-0h^bxOE!W{x6ufXm+B^O2Cbz#K+jZG~|KRo*ZvR-eyJY+OgWIFI z{hzWuLbk_WG-C9C@uRr?79r=C8oW#PMM>gay6~d3ly?WH-YaDcM`ptbt@q1T+-fn$ zyL9-XG>q`xMMdl7shi zso+B{c0AOO>9#J9RQ~DyLR=?p4R-+CVQ?50vtwhpnqXXYE~_&i6tQu9f>M4sC6SNCo;Wv5fO3+EbyM5Yk?aB7 z`Ug!XFJXL}#ytS8!EVNepWqq`u8C4-*V(a=TuBGG2G!<$(eEFeC!I5{$L)q~QU&D( zYP@vVLQLgyqv%S%S!$O&aXxh|=Cj0q;)2gFJu68ayZJe2C5|F@%1waXvGB4pgSZsC z2FF{Sfe>@Px4~*`eJ2G$*xt;-kif&Jlm6*g*vXA{a#Mx|oA<+JJ_GWhJbX_KhhK(B zPGh&1n^T=YO4a(q2(5T_Y@|3q4fX*|FE39SU=$zNaD?Z*PMMWTN6SazUL(04KDNKF zjP4IzmVcTxj#sv0CH6phlNh}0rwq1ofGs~^Z}^cY-%IzDd8qF4QPUm!pryJsK5sb{D~f| zSSa47sLIULzaSMj!Esemm#UBOP{|4Z5tUU^@M9#X51blT(BB9kUofF?h+hkSliOdb z_8(EtJK3k9v^W$D#UWWUR|&cxF#OyP z1zz(YWLkd}xNmB>gP>~e;-?=uLMdN6{j*AWk7uk954imN_#xJ$iI<_T@m@C#OOuN~ zj|?~Nq9+1l#3ytt5QzH>6?6_HdB3(kp(V>R#AnpFd^(yBEUyZFiK|J0h6Rnl1J7n$ zS9lKNhQf0hcPTuNaemo^d_Ln53NK(hQsL7Wk5c&bX+pDO6kf=c-0sPI|9O+PF}gfRC!^oLHs>DY=Sw&Zic(!$oc`3ojYLlb5-cX2Uq z5>Kxyd@AEEg%@)_x57&pk5G6i{oqDPLMs)+5fPr4#{1-xf2Wi6suiw+^p zfP46p-s~8 za^|EA@$}pbiqzvQvPRcM|;G_)W)0~u$ zIw@m)FEVF3DZ_Y?lQN9kPRcMo%RG(!!70Q2=c$yDHmt{UF@F%sJj;HPp>?xR!kj?d z_w!ITG4X{w3|T?LO0Zj{_%Qy4utuWW2BaCQJjqEj#-}=I#)A|)X~uYolV*&UI%&pu znUiLW&vw#`@i}mb%gR-%oo>!!vpBWbtY*v+!dE+K#(l1L(#-mvidUV2*s<^>5awiJ zpD%?%A$*y2qdp+FxPLo)fK!Y6J-|gGL}1TTsl_dA!d9up1n%W3wRrq5xqNXSCW4O( zTjdsy-6L$3Tij{8uvKoc$9hG7Zn0zsYr&bpl8>+!A>uC9B18~t5hC`n7EJKOC^3m3 zoVEL;=+7-4ek%{p>BPh1(CQ8oTX=YGVXdALW;nIDTQ_&(1mbRZe0GP4d%0VvWgBay zh%7C0KdZ$QkNBK0$7|LP!unBI$Az^|2h_CMxDNM3|wVH;#tq+~@}tp}&pzO9QM z@-(bX*`b?}&@=OEVQRm=)Ky)6RX{v^=^kC9BMm7BpJ;e^q!>#J)}=@CxA&%oTd8qf zhPaJ7*G&}b=n4Q}+}tLx5<LlkuUv z49Kji#=Z1ZtIxO#)*Ww4CDArw%-tgOWa*0n^)=k%9?EL-`u2&mlSPWl>+4su%)P=# zmu(vDo*!7=cpr7P<%#?0XxnLc!~dZz$2cIy)Ag+>v}jYDcz~8|$`l8od%Ay0^Mfai zitqg4Q6CbMc+>|h4A(ugywR^;)JhCyh z`4F|Xj}pJ4eeFK+7`@!?C5yaR7*ok-oZ0+@l*(#;Qo`)!!xH8+|Aw~FXz>(N?%d|5 z5e|0I-zh;nBWFwB>@l9jY-=}|0a;yKwbulcuV%`~2uEvfY6=0x#=Y{_qaQTB`P z@Q9Zfi*2r{w?ixG2-zJz<7N1c$NS$7(|EN7MGsc;g+}ZzMh4nP9vt#>uv?I^)HAbiC6qj!9<~ zH@^?n_ODNi#X6hIKOU)Xs%>nbOFu+v~k>-|BM}p z#u_~|f20}yz0q2oYP!>6!t@P9JI0C|>Cqj2aTC3_BZDUNjF5Vz_e9eY;DtSjbS)s1 z>hE@IJGiYqiAlHV!}~oK9(5fZ>Pa=$>sfF>B7N55HCh}zqt|O}&{gqT(Hn1U)W=Gh z4ZR5{ti8PxjW*pU-FB=uj;x)2-EOCZoqp8Sgq<0B@n#81IwUCFLValJl*Ih45|nMD z*uDuym!3&q^(NEeJ`aAhvb1js%IC&DAIj(czI>xc&!xlHo)&jqBZ6F8v#P2((5s(8 zZGEZylOxp9u3e)d@Qb59eGF~imFB`Pj&^~UE_TzQUFqiSy1RjYtaXPz%jx5yqkSoq Nw%bGn9lv|#{{zM%X?p+w delta 9714 zcmb7Kd3aPsw!i1z?kwC+av?D*B;Dy|)v##x1jr?X01^g}0YyP#Xpk)lSv2^R#tnr8 zvK$B@iG+Y4Dhe7$#X)ft#1(Oz(HR~0aaX|i=DjzcI`Gb^y4~qO^nLS3a+W$(b$+Mn z)YkXe6Y3W)sZATT{p!BvhK)V3kQD-7(+P9E|kG3bxR=xw>TjwpSt?^z}P_ zg7E6nn}{#1@hU$;_^OK1B~rLojl8k6y0D^(3#)3pOO%ajWVN?udd1pGzfGf>g4eaD z#46u_QMSrkT4mNQSza-zcIi@Ym2yWG{yft&Y%a&Kyc&jEU&3)uTrKOKN zS;0PXk+QXqJXP7&N1may_K~M3+tq>8->j;NWmToC3o8cKmQ%M%n;J!0LQ=MJR>g9m z+My=kYuyQPO1o;OvKiMX9ctM1gs`+~S(&mIiycni{c8M@s?wY1E??!HTv}5)w_<*2 z_39Gu>WZqh%1$+es!g6YPw7%aiJLpE#8h?( z{(R5w=u<9i%-9!lFSx+ih(1EvR-mBMxQ*|mPtTY-hDr*ij;tg51z!v-acbX{@R87(*<+vR8iyZcr>RpDaH%DyJ75nPH>H5#!kdn7dD3)v&!XwSFV ziGZ=WW8oew&b<~k;hx-D*o+Bz$$*%hH!5u_I6`zM7~8;MW7-N1jp=r9sN5&{wf>wo z#a2MNHf+pGhaGqpC7jBv`K6Dq@ zor=+gCnq?IQSdDU#ZXL}(GBkLCaf^x4UM2#3gQPT#%?gr!y03cB*XMbS?pBEk9N$M zm<{`|e4;D#0kE5j@c_0?Ode_R9H;?`8A`qGgG6RSdRZH@_`$?+BX>|_MRSB-qreH7 znGl_O3nTAD@gta3a9L8IZ34PpU1KXS!FX8o{V=X8NJz7I4ww_FoocnY-nqtz7j}WV zJb;W6j}?@UxSyb%*Vd#e#tjVBlR=)92`1b{nv?q2pk60Fnxx!TiLH2uw9gH#nhAGh|t~X=6YB|e>8NxfPnPI0q~?d z2Iz)x)2*#>=Npd#Dcm{kTw_?OA{|VXAjpSD3O&d)bcb;jxiMr4u6wb{WqX+W~GvIevRX75Au%mDZ9BP@I zIdCtS$CM~tH^DQ>F^J-Y#goUtUc7m-YaT(*lF+l?MVbl}W@azHONf~qhxMaDrX?*&QOSCmEqD)LX8l1AC;p}0y^f23<-Jge{IvI$; zAv^Z)VmsksNWjBvhYde2iktjY-*FJbkj=y3q%|vevRybVK|_IgQ>v2=Q=$e2$4=9i z5bN9!#rl;gnXtE|xR_^Ijs%k9≷bP4*lKgzOl|#dZRSBLF0ar~fk`=U9jfbfZTK zPB1@Ks#x)Rq42rW@ulMI%s@&CgFb77NYe*sL6J#yST-cE;LhpsIAiJnIEeG7rd(o; zlpIYtiZoXBQ%e|Pu7sHD&g~B(B}J};NOlbIVmkrR7J!(`IgoDps>SF~M$r;M|3q$Z z0tLcOIf3)1U6s`HD`Rndn#Z;m9Fh3_w86eZKvNKCJ)&6fx|K>5#X$F2wRlkEa$-$N zuEn#BYY~ErYFR@hYsos+7C}8b32luOh2Zpg?#g@M5Kfsff&Sk;ql5mtN|;|fem@1-42%jWX?)E167BVi2%qIz=|Hv+_=!2|)QJ3sdDN5Y88AFr3OS4~D+n zsnNom6V2wk-B84cOX*lhf#&K})UdWW@QWjI1h}ldjwR4!-xEZ2a zP&3DUVk=8$J*_j8wzPre1clA?t-3IBzdStyky}ZTBeUMfnZ_EUObpKj(aVH2()iy9 zA7z3FpL5PI-w7*xL`C?BitrH?;Ug--M>IHmB#Q7672$i?3LjAsKB6LgL`C?BitrH) z4&TdRR`_1VH|8W21Qv11LTfP;`KXUlc&=3Uo7cjW&lIMDXJ?PatFId7d(}ckRG=a% zP!ScVhze9hgHe$vP!ScVUb9dU6{v^`R73?Tq5>7sU{tU9QN4!txhYp(fJ(Z`>&q3t zI!|E51q+=VwzsH;D`o; zJLv~^5~u%mb_gHTjZ@hD+vwi4g)|3%Z$~tE{eX8WdX6~P^^@(2@z}4|oJujH1u5v{ zOlJY=@Cmq-u3)^;1+8G>w9}stxM*Ht+EeiF)Yv<3WNKjb{N;wv&YR}y53?HV87`Qg z8rP2%PjtT@e*B;dTA;H7hF-muR{GAXmrnR2xaeBw(&z$cM$Hg+$hR#O zU1<3vXvRtPpMoq?r0UODa80c5ouGm-vf$m`CL*|rEUErWkmW?F`fIPHgDp=eq~|Ti zcrVEKO`)YDM?g!?>1_Y5;^PWxP!U7$}XYTteQs_BqjK3 za+e21DP5(h)A#Z0f}}vZTzXWLhW2TbAk%{Z#Z;6jCdco6EV#ChNA#3HQ4|(55!fQg zqmP7MvuZY6+t;HrqLfZSqTS~&C_OJqL#@((T)U2LT-DcA>W3j>kRzH-Z^m1AYEdGF zEi_{J{@{qV(+Nk>X_YdBJP=1OjQ2gt%N3u(X$z)xEZY6TZ+kPK#k*U+~9;DY1{zjl+61;9DwRv>9jqqWBPbi^Y;fb$Sm(L<%q> z1fyd3$nJ=;(|SyP2_e#sM;FF2c=k28CviWN_k50u+<5zX0;WMx36tmQ;)qZ_vIIqi zmc9?6H#BtCwa(uTyPZsh3o-(@=lVe=`CzjXToE#Zc4k`sFYJ%6=kh-P|DcaqJSR@x z2Kdct1s^-b_QOHCZSfT}MIKumH;2ZR?~VkIw%CgT4W`pG-f!?bTAkhbG=<}9%=p?= zn&ieo0>=kWz8UbUPX8Xl#8T%tYhXmDG~{wXOq=Y9HfOqM^#z72OG^`i+~pG?-5GfQ zlny82`O?@`mR8(tK9q2JXKA`S<ut)j~x3Di24mftbc)`yvYXEuaKr!`pAj%eR1# zJMxMW07F}{7+uPHj^4@sF#Yp}4N;HNJg438X-SUYhO*S07o_l#B(F&Fx+HH(@_{5D zN%FBIpWs(zGvPzbTH;CkJ56NHOuB^0>)Pk^1j?EEIo2-0gfA$wT%@V6`P?-`#M>x2 z`~|waae>k`RC<%$y+)SWsC2eBE{2;nJ_9q}rBJ?032*f#&;1nW8IVeJ<4d5csY2Hi zT93Nvm~C?@WLU&ERQIGJ7aahY8*gYFHRDs7IXXQdou!ApJeokfqC4rCh~m2lxqbZf~~Xxh<`5ud?4t?bNaGEb{H z^I6Q>B%jSZKZ%k)hxri6=Q2+#IP3G650iX;9w_Dj$&Y8=A^8cJs#0VQl)^;gG?;@V zU%-5{s!u)ZFT;U(0-$ z)UV?@y5xP#-+fMV-$KvA!?skO z!qhH>2ZazW1r$Q06b=X>S_)?@FGK^+v!G{k^WofJn*~w`&sePsq19?Vd@0$YtW@w%(&F7gK8$cR!0&(5%{Mp39 z_u^P$_%vgn*(l5h@sAC(4^qvxpfqEb)2uXOew>wN+(@C7X3S5v(v0~cE6tdnVx<}L z#a5azKb1maGqR*>qxIeTxXq?X2wrgwQ3ZN9UEUq#+*zX^M&M) zpI>C$p$6p^*KgqnaB6YA$9a+P3-l^4Q;SQQz?7-Q!hT-8*o@n!#g#h2l)1$b>w@0gV#{sp1!o3ZKFwbE1v(zc)Z!9kFZ?A3*b5f8<1_3~=DWoeN z+Vf>@af>HFr`-A(jDLY~4vh0)tXGZORpU<8xJxzeR*em+aZgW4c`O*4RC@C>Y5S#} zj3#qER#z1H8dQ3|3s*>^81<^&4ua(eKE>Fq@*cH?o-XC4N|jgzLPc8~Td6{&3Ki{i ztkQ%^6Dr#9SY;C`n@~}ktg;K$NW0L{{>Qoyp$icz+6Gw_DpaAymY&6x@2PMf=2hRG z*s1EF=t}GLw(`=|Uf6Q|K2;ft=7yM_Z>pb(#n(5v;9fkvX{5FhF2l2%;&5F3 zCG^{BalISrab6Ln727f+eUqI{l%LTv{ty(;s=G7 zR4l1oRk1x#8WUDtQ&q954TfQNM`DEhU0Z$amxsGxc` zZfH!l&Aqu|4>2ydANMzo()Pj#+}xairyHZ_H`{ZKN$>zBHo0Iw<~NOl2eG_qFg%3y zO-^_i4>S$Y4uA^>-V%);HAQN)5#SH)(Wo`M;ZYpke3^ETyq?gMh?UKW^vF=(JW`{_ z8q0n_$eiWNZmfA6PhyHTwyp<%ZXTjN0coOmOiLpDcsISp4Nqcui${A3M*FJ`64mD3 zSXEKG?8d^|fwEZ&-kU0Y+| zC9Yx5t~)`nD!0esnXS6^GLu@5iRD_y^1rpdEhm|5|8!U9PqlRXV$$z;j3(k zbyQTD{x3OB;)mPZ@TRCZsqPedTGO<*Xts@PPQr@TNcbbJYaOM%O`7$s9(=RauKkIk zyuNh=o^N$%e})XdJ}Njy@4#?!Dk)-ycWL08k$16td%E@)nw9MCk?k??SA1*xIPE>Q zZHdLCwt?FFG$FZkN?R2C4d=DF;RE4%Vcmx`Q#ex&w?)85!rRGp9}8Mk_lclW>ORG^ z9ZvWRXYNRazvG%6N!sT$z;ccx!Wa1Ljx_B{$}nyxtUW5>E4ZY0rUrdZ^EHlbkEg@- zwD!y4TfDV>sP-Mr@^$U8_)L2ge2=fTd*C#lX-`i+6Ep|PXdV<+){YK*h;tUrj!WSO zT-`Aa{u8@8hQfd0@s6R|Kfuk2+0tpif8)T;RP}!VXWtQxvwRM`v~vhH+@a&Go#E;~ zrTSDYi^*7Wr;aB(!{dI0=w7b_o&AKTJJXYY?#G|Nw?O|Qe^Lho#B=1>h+gqLc{sRN zT#v`@8>-!|3Rh`83GFSq1C5<-?M~H+pKOf7lAYn|U8)5@Cox$7=pyw7sb&COq$U8) zK=1deK_~*+jX1C?QQM@Z)3OweW|vE=xA;2Z8&v=56N=AuMQNMWp~CL7u0h%sb-3X5 zT`}~HjB}S8n()xBRMl)2WKxSDg-FDW2Y0#EqHRJmwN;QA+p(bAt+lDcu(3NH*L6qI zw=A2xhiUEVXrVdT9jkTFcT%_QP7I?wpK(p6nngk~Ub82Gwg+=}4lRiPu{)hUZ24jL qU>ki;v+l diff --git a/dist/core/core.untouched.wast b/dist/core/core.untouched.wast index a3929933..f6ddb1e1 100644 --- a/dist/core/core.untouched.wast +++ b/dist/core/core.untouched.wast @@ -1643,7 +1643,7 @@ ) ;;@ core/interrupts/interrupts.ts:92:2 (call $core/memory/store/eightBitStoreIntoGBMemory - (i32.const 65535) + (i32.const 65295) ;;@ core/interrupts/interrupts.ts:92:71 (get_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue) ) @@ -10082,80 +10082,109 @@ (i32.const 1) ) (func $core/graphics/lcd/Lcd.updateLcdControl (; 134 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ core/graphics/lcd.ts:50:4 + ;;@ core/graphics/lcd.ts:65:4 (set_global $core/graphics/lcd/Lcd.enabled - ;;@ core/graphics/lcd.ts:50:18 + ;;@ core/graphics/lcd.ts:65:18 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:50:33 + ;;@ core/graphics/lcd.ts:65:33 (i32.const 7) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:51:4 + ;;@ core/graphics/lcd.ts:66:4 (set_global $core/graphics/lcd/Lcd.windowTileMapDisplaySelect - ;;@ core/graphics/lcd.ts:51:37 + ;;@ core/graphics/lcd.ts:66:37 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:51:52 + ;;@ core/graphics/lcd.ts:66:52 (i32.const 6) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:52:4 + ;;@ core/graphics/lcd.ts:67:4 (set_global $core/graphics/lcd/Lcd.windowDisplayEnabled - ;;@ core/graphics/lcd.ts:52:31 + ;;@ core/graphics/lcd.ts:67:31 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:52:46 + ;;@ core/graphics/lcd.ts:67:46 (i32.const 5) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:53:4 + ;;@ core/graphics/lcd.ts:68:4 (set_global $core/graphics/lcd/Lcd.bgWindowTileDataSelect - ;;@ core/graphics/lcd.ts:53:33 + ;;@ core/graphics/lcd.ts:68:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:53:48 + ;;@ core/graphics/lcd.ts:68:48 (i32.const 4) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:54:4 + ;;@ core/graphics/lcd.ts:69:4 (set_global $core/graphics/lcd/Lcd.bgTileMapDisplaySelect - ;;@ core/graphics/lcd.ts:54:33 + ;;@ core/graphics/lcd.ts:69:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:54:48 + ;;@ core/graphics/lcd.ts:69:48 (i32.const 3) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:55:4 + ;;@ core/graphics/lcd.ts:70:4 (set_global $core/graphics/lcd/Lcd.tallSpriteSize - ;;@ core/graphics/lcd.ts:55:25 + ;;@ core/graphics/lcd.ts:70:25 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:55:40 + ;;@ core/graphics/lcd.ts:70:40 (i32.const 2) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:56:4 + ;;@ core/graphics/lcd.ts:71:4 (set_global $core/graphics/lcd/Lcd.spriteDisplayEnable - ;;@ core/graphics/lcd.ts:56:30 + ;;@ core/graphics/lcd.ts:71:30 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:56:45 + ;;@ core/graphics/lcd.ts:71:45 (i32.const 1) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:57:4 + ;;@ core/graphics/lcd.ts:72:4 (set_global $core/graphics/lcd/Lcd.bgDisplayEnabled - ;;@ core/graphics/lcd.ts:57:27 + ;;@ core/graphics/lcd.ts:72:27 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:57:42 + ;;@ core/graphics/lcd.ts:72:42 (i32.const 0) (get_local $0) ) ) ) - (func $core/memory/dma/startDmaTransfer (; 135 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/graphics/lcd/Lcd.updateLcdStatus (; 135 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + ;;@ core/graphics/lcd.ts:35:4 + (call $core/memory/store/eightBitStoreIntoGBMemory + (i32.const 65345) + ;;@ core/graphics/lcd.ts:33:12 + (call $core/helpers/index/setBitOnByte + ;;@ core/graphics/lcd.ts:33:25 + (i32.const 7) + ;;@ core/graphics/lcd.ts:30:12 + (i32.or + ;;@ core/graphics/lcd.ts:28:33 + (i32.and + (get_local $0) + ;;@ core/graphics/lcd.ts:28:41 + (i32.const 248) + ) + ;;@ core/graphics/lcd.ts:29:39 + (i32.and + ;;@ core/graphics/lcd.ts:27:32 + (call $core/memory/load/eightBitLoadFromGBMemory + (i32.const 65345) + ) + ;;@ core/graphics/lcd.ts:29:58 + (i32.const 7) + ) + ) + ) + ) + ) + (func $core/memory/dma/startDmaTransfer (; 136 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/memory/dma.ts:27:2 (set_local $1 @@ -10214,7 +10243,7 @@ (i32.const 644) ) ) - (func $core/memory/dma/getHdmaSourceFromMemory (; 136 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/memory/dma/getHdmaSourceFromMemory (; 137 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/memory/dma.ts:162:15 (i32.and ;;@ core/memory/dma.ts:158:24 @@ -10234,7 +10263,7 @@ (i32.const 65520) ) ) - (func $core/memory/dma/getHdmaDestinationFromMemory (; 137 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/memory/dma/getHdmaDestinationFromMemory (; 138 ;) (; has Stack IR ;) (type $i) (result i32) (i32.add ;;@ core/memory/dma.ts:179:20 (i32.and @@ -10257,7 +10286,7 @@ (i32.const 32768) ) ) - (func $core/memory/dma/startHdmaTransfer (; 138 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/memory/dma/startHdmaTransfer (; 139 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10403,7 +10432,7 @@ ) ) ) - (func $core/graphics/palette/storePaletteByteInWasmMemory (; 139 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/graphics/palette/storePaletteByteInWasmMemory (; 140 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) ;;@ core/graphics/palette.ts:153:2 (set_local $3 @@ -10439,7 +10468,7 @@ (get_local $1) ) ) - (func $core/graphics/palette/incrementPaletteIndexIfSet (; 140 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/graphics/palette/incrementPaletteIndexIfSet (; 141 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/graphics/palette.ts:96:2 (if ;;@ core/graphics/palette.ts:96:6 @@ -10464,7 +10493,7 @@ ) ) ) - (func $core/graphics/palette/writeColorPaletteToMemory (; 141 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/graphics/palette/writeColorPaletteToMemory (; 142 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) ;;@ core/graphics/palette.ts:72:6 @@ -10542,7 +10571,7 @@ ) ) ) - (func $core/interrupts/interrupts/requestTimerInterrupt (; 142 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/requestTimerInterrupt (; 143 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:227:2 (set_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested ;;@ core/interrupts/interrupts.ts:227:41 @@ -10553,7 +10582,7 @@ (i32.const 2) ) ) - (func $core/timers/timers/_getTimerCounterMaskBit (; 143 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/timers/timers/_getTimerCounterMaskBit (; 144 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/timers/timers.ts:267:2 (block $break|0 @@ -10611,7 +10640,7 @@ ) (i32.const 0) ) - (func $core/timers/timers/_checkDividerRegisterFallingEdgeDetector (; 144 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/timers/timers/_checkDividerRegisterFallingEdgeDetector (; 145 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) ;;@ core/timers/timers.ts:256:6 (if @@ -10648,7 +10677,7 @@ ) (i32.const 0) ) - (func $core/timers/timers/_incrementTimerCounter (; 145 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/_incrementTimerCounter (; 146 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:236:2 (set_global $core/timers/timers/Timers.timerCounter (i32.add @@ -10680,7 +10709,7 @@ ) ) ) - (func $core/timers/timers/updateTimers (; 146 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/updateTimers (; 147 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (loop $continue|0 @@ -10789,7 +10818,7 @@ ) ) ) - (func $core/timers/timers/batchProcessTimers (; 147 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/batchProcessTimers (; 148 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:199:2 (call $core/timers/timers/updateTimers ;;@ core/timers/timers.ts:199:15 @@ -10801,7 +10830,7 @@ (i32.const 0) ) ) - (func $core/timers/timers/Timers.updateDividerRegister (; 148 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateDividerRegister (; 149 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/timers/timers.ts:34:4 (set_local $0 ;;@ core/timers/timers.ts:34:34 @@ -10837,7 +10866,7 @@ (call $core/timers/timers/_incrementTimerCounter) ) ) - (func $core/timers/timers/Timers.updateTimerCounter (; 149 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateTimerCounter (; 150 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/timers/timers.ts:54:4 (if ;;@ core/timers/timers.ts:54:8 @@ -10867,7 +10896,7 @@ (get_local $0) ) ) - (func $core/timers/timers/Timers.updateTimerModulo (; 150 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateTimerModulo (; 151 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/timers/timers.ts:80:4 (set_global $core/timers/timers/Timers.timerModulo (get_local $0) @@ -10896,7 +10925,7 @@ ) ) ) - (func $core/timers/timers/Timers.updateTimerControl (; 151 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/timers/timers/Timers.updateTimerControl (; 152 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) ;;@ core/timers/timers.ts:106:4 @@ -10990,7 +11019,7 @@ (get_local $2) ) ) - (func $core/joypad/joypad/Joypad.updateJoypad (; 152 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/Joypad.updateJoypad (; 153 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/joypad/joypad.ts:45:4 (set_global $core/joypad/joypad/Joypad.joypadRegisterFlipped ;;@ core/joypad/joypad.ts:45:35 @@ -11021,42 +11050,42 @@ ) ) ) - (func $core/memory/writeTraps/checkWriteTraps (; 153 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/memory/writeTraps/checkWriteTraps (; 154 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (block $folding-inner1 (block $folding-inner0 - ;;@ core/memory/writeTraps.ts:20:2 + ;;@ core/memory/writeTraps.ts:21:2 (if - ;;@ core/memory/writeTraps.ts:20:6 + ;;@ core/memory/writeTraps.ts:21:6 (i32.eq (get_local $0) (i32.const 65357) ) - ;;@ core/memory/writeTraps.ts:20:48 + ;;@ core/memory/writeTraps.ts:21:48 (block - ;;@ core/memory/writeTraps.ts:22:4 + ;;@ core/memory/writeTraps.ts:23:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65357) - ;;@ core/memory/writeTraps.ts:22:61 + ;;@ core/memory/writeTraps.ts:23:61 (i32.and (get_local $1) - ;;@ core/memory/writeTraps.ts:22:69 + ;;@ core/memory/writeTraps.ts:23:69 (i32.const 1) ) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:33:2 + ;;@ core/memory/writeTraps.ts:34:2 (if - ;;@ core/memory/writeTraps.ts:33:6 + ;;@ core/memory/writeTraps.ts:34:6 (i32.lt_s (get_local $0) (i32.const 32768) ) - ;;@ core/memory/writeTraps.ts:33:33 + ;;@ core/memory/writeTraps.ts:34:33 (block - ;;@ core/memory/writeTraps.ts:34:4 + ;;@ core/memory/writeTraps.ts:35:4 (call $core/memory/banking/handleBanking (get_local $0) (get_local $1) @@ -11064,7 +11093,7 @@ (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:40:6 + ;;@ core/memory/writeTraps.ts:41:6 (if (tee_local $2 (i32.ge_s @@ -11073,7 +11102,7 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:40:36 + ;;@ core/memory/writeTraps.ts:41:36 (i32.lt_s (get_local $0) (i32.const 40960) @@ -11083,7 +11112,7 @@ (br_if $folding-inner0 (get_local $2) ) - ;;@ core/memory/writeTraps.ts:59:6 + ;;@ core/memory/writeTraps.ts:60:6 (if (tee_local $2 (i32.ge_s @@ -11092,24 +11121,24 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:59:42 + ;;@ core/memory/writeTraps.ts:60:42 (i32.lt_s (get_local $0) (i32.const 65024) ) ) ) - ;;@ core/memory/writeTraps.ts:59:2 + ;;@ core/memory/writeTraps.ts:60:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:59:83 + ;;@ core/memory/writeTraps.ts:60:83 (block - ;;@ core/memory/writeTraps.ts:61:4 + ;;@ core/memory/writeTraps.ts:62:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/memory/writeTraps.ts:60:26 + ;;@ core/memory/writeTraps.ts:61:26 (i32.add (get_local $0) - ;;@ core/memory/writeTraps.ts:60:35 + ;;@ core/memory/writeTraps.ts:61:35 (i32.const -8192) ) (get_local $1) @@ -11117,7 +11146,7 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:70:6 + ;;@ core/memory/writeTraps.ts:71:6 (if (tee_local $2 (i32.ge_s @@ -11126,30 +11155,30 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:70:50 + ;;@ core/memory/writeTraps.ts:71:50 (i32.le_s (get_local $0) (i32.const 65183) ) ) ) - ;;@ core/memory/writeTraps.ts:70:2 + ;;@ core/memory/writeTraps.ts:71:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:70:102 + ;;@ core/memory/writeTraps.ts:71:102 (block (br_if $folding-inner1 - ;;@ core/memory/writeTraps.ts:73:8 + ;;@ core/memory/writeTraps.ts:74:8 (i32.lt_s (get_global $core/graphics/lcd/Lcd.currentLcdMode) - ;;@ core/memory/writeTraps.ts:73:29 + ;;@ core/memory/writeTraps.ts:74:29 (i32.const 2) ) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:83:6 + ;;@ core/memory/writeTraps.ts:84:6 (if (tee_local $2 (i32.ge_s @@ -11158,7 +11187,7 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:83:49 + ;;@ core/memory/writeTraps.ts:84:49 (i32.le_s (get_local $0) (i32.const 65279) @@ -11168,34 +11197,34 @@ (br_if $folding-inner1 (get_local $2) ) - ;;@ core/memory/writeTraps.ts:89:6 + ;;@ core/memory/writeTraps.ts:90:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:89:16 + ;;@ core/memory/writeTraps.ts:90:16 (i32.const 65296) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:89:26 + ;;@ core/memory/writeTraps.ts:90:26 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:89:36 + ;;@ core/memory/writeTraps.ts:90:36 (i32.const 65318) ) ) ) - ;;@ core/memory/writeTraps.ts:89:2 + ;;@ core/memory/writeTraps.ts:90:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:89:44 + ;;@ core/memory/writeTraps.ts:90:44 (block - ;;@ core/memory/writeTraps.ts:90:4 + ;;@ core/memory/writeTraps.ts:91:4 (call $core/sound/sound/batchProcessAudio) - ;;@ core/memory/writeTraps.ts:91:48 + ;;@ core/memory/writeTraps.ts:92:48 (return - ;;@ core/memory/writeTraps.ts:91:11 + ;;@ core/memory/writeTraps.ts:92:11 (call $core/sound/registers/SoundRegisterWriteTraps (get_local $0) (get_local $1) @@ -11203,31 +11232,31 @@ ) ) ) - ;;@ core/memory/writeTraps.ts:96:6 + ;;@ core/memory/writeTraps.ts:97:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:96:16 + ;;@ core/memory/writeTraps.ts:97:16 (i32.const 65328) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:96:26 + ;;@ core/memory/writeTraps.ts:97:26 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:96:36 + ;;@ core/memory/writeTraps.ts:97:36 (i32.const 65343) ) ) ) - ;;@ core/memory/writeTraps.ts:96:2 + ;;@ core/memory/writeTraps.ts:97:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:96:44 + ;;@ core/memory/writeTraps.ts:97:44 (call $core/sound/sound/batchProcessAudio) ) - ;;@ core/memory/writeTraps.ts:101:6 + ;;@ core/memory/writeTraps.ts:102:6 (if (tee_local $2 (i32.ge_s @@ -11236,28 +11265,28 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:101:48 + ;;@ core/memory/writeTraps.ts:102:48 (i32.le_s (get_local $0) (i32.const 65355) ) ) ) - ;;@ core/memory/writeTraps.ts:101:2 + ;;@ core/memory/writeTraps.ts:102:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:101:90 + ;;@ core/memory/writeTraps.ts:102:90 (block - ;;@ core/memory/writeTraps.ts:105:4 + ;;@ core/memory/writeTraps.ts:106:4 (if - ;;@ core/memory/writeTraps.ts:105:8 + ;;@ core/memory/writeTraps.ts:106:8 (i32.eq (get_local $0) (i32.const 65344) ) - ;;@ core/memory/writeTraps.ts:105:49 + ;;@ core/memory/writeTraps.ts:106:49 (block - ;;@ core/memory/writeTraps.ts:107:10 + ;;@ core/memory/writeTraps.ts:108:10 (call $core/graphics/lcd/Lcd.updateLcdControl (get_local $1) ) @@ -11267,59 +11296,75 @@ ;;@ core/memory/writeTraps.ts:112:4 (if ;;@ core/memory/writeTraps.ts:112:8 + (i32.eq + (get_local $0) + (i32.const 65345) + ) + ;;@ core/memory/writeTraps.ts:112:48 + (block + ;;@ core/memory/writeTraps.ts:114:10 + (call $core/graphics/lcd/Lcd.updateLcdStatus + (get_local $1) + ) + (br $folding-inner1) + ) + ) + ;;@ core/memory/writeTraps.ts:119:4 + (if + ;;@ core/memory/writeTraps.ts:119:8 (i32.eq (get_local $0) (i32.const 65348) ) - ;;@ core/memory/writeTraps.ts:112:60 + ;;@ core/memory/writeTraps.ts:119:60 (block - ;;@ core/memory/writeTraps.ts:113:6 + ;;@ core/memory/writeTraps.ts:120:6 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/memory/writeTraps.ts:113:34 + ;;@ core/memory/writeTraps.ts:120:34 (i32.const 0) ) - ;;@ core/memory/writeTraps.ts:114:6 + ;;@ core/memory/writeTraps.ts:121:6 (call $core/memory/store/eightBitStoreIntoGBMemory (get_local $0) - ;;@ core/memory/writeTraps.ts:114:40 + ;;@ core/memory/writeTraps.ts:121:40 (i32.const 0) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:119:4 + ;;@ core/memory/writeTraps.ts:126:4 (if - ;;@ core/memory/writeTraps.ts:119:8 + ;;@ core/memory/writeTraps.ts:126:8 (i32.eq (get_local $0) (i32.const 65349) ) - ;;@ core/memory/writeTraps.ts:119:57 + ;;@ core/memory/writeTraps.ts:126:57 (block - ;;@ core/memory/writeTraps.ts:120:6 + ;;@ core/memory/writeTraps.ts:127:6 (set_global $core/graphics/lcd/Lcd.coincidenceCompare (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:127:4 + ;;@ core/memory/writeTraps.ts:134:4 (if - ;;@ core/memory/writeTraps.ts:127:8 + ;;@ core/memory/writeTraps.ts:134:8 (i32.eq (get_local $0) (i32.const 65350) ) - ;;@ core/memory/writeTraps.ts:127:55 + ;;@ core/memory/writeTraps.ts:134:55 (block - ;;@ core/memory/writeTraps.ts:130:6 + ;;@ core/memory/writeTraps.ts:137:6 (call $core/memory/dma/startDmaTransfer (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:135:4 + ;;@ core/memory/writeTraps.ts:142:4 (block $break|0 (block $case3|0 (block $case2|0 @@ -11343,25 +11388,25 @@ (br $break|0) ) ) - ;;@ core/memory/writeTraps.ts:137:8 + ;;@ core/memory/writeTraps.ts:144:8 (set_global $core/graphics/graphics/Graphics.scrollX (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:140:8 + ;;@ core/memory/writeTraps.ts:147:8 (set_global $core/graphics/graphics/Graphics.scrollY (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:143:8 + ;;@ core/memory/writeTraps.ts:150:8 (set_global $core/graphics/graphics/Graphics.windowX (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:146:8 + ;;@ core/memory/writeTraps.ts:153:8 (set_global $core/graphics/graphics/Graphics.windowY (get_local $1) ) @@ -11370,90 +11415,90 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:155:2 + ;;@ core/memory/writeTraps.ts:162:2 (if - ;;@ core/memory/writeTraps.ts:155:6 + ;;@ core/memory/writeTraps.ts:162:6 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:155:17 + ;;@ core/memory/writeTraps.ts:162:17 (get_global $core/memory/memory/Memory.memoryLocationHdmaTrigger) ) - ;;@ core/memory/writeTraps.ts:155:51 + ;;@ core/memory/writeTraps.ts:162:51 (block - ;;@ core/memory/writeTraps.ts:156:4 + ;;@ core/memory/writeTraps.ts:163:4 (call $core/memory/dma/startHdmaTransfer (get_local $1) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:162:6 + ;;@ core/memory/writeTraps.ts:169:6 (if (i32.eqz (tee_local $2 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:162:17 + ;;@ core/memory/writeTraps.ts:169:17 (get_global $core/memory/memory/Memory.memoryLocationGBCWRAMBank) ) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:162:53 + ;;@ core/memory/writeTraps.ts:169:53 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:162:64 + ;;@ core/memory/writeTraps.ts:169:64 (get_global $core/memory/memory/Memory.memoryLocationGBCVRAMBank) ) ) ) - ;;@ core/memory/writeTraps.ts:162:2 + ;;@ core/memory/writeTraps.ts:169:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:162:98 + ;;@ core/memory/writeTraps.ts:169:98 (if - ;;@ core/memory/writeTraps.ts:163:8 + ;;@ core/memory/writeTraps.ts:170:8 (get_global $core/memory/memory/Memory.isHblankHdmaActive) (block - ;;@ core/memory/writeTraps.ts:165:8 + ;;@ core/memory/writeTraps.ts:172:8 (if (tee_local $2 - ;;@ core/memory/writeTraps.ts:165:9 + ;;@ core/memory/writeTraps.ts:172:9 (i32.ge_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:165:36 + ;;@ core/memory/writeTraps.ts:172:36 (i32.const 16384) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:165:46 + ;;@ core/memory/writeTraps.ts:172:46 (i32.le_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:165:73 + ;;@ core/memory/writeTraps.ts:172:73 (i32.const 32767) ) ) ) - ;;@ core/memory/writeTraps.ts:165:8 + ;;@ core/memory/writeTraps.ts:172:8 (if (i32.eqz (get_local $2) ) - ;;@ core/memory/writeTraps.ts:166:8 + ;;@ core/memory/writeTraps.ts:173:8 (if (tee_local $2 - ;;@ core/memory/writeTraps.ts:166:9 + ;;@ core/memory/writeTraps.ts:173:9 (i32.ge_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:166:36 + ;;@ core/memory/writeTraps.ts:173:36 (i32.const 53248) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:166:46 + ;;@ core/memory/writeTraps.ts:173:46 (i32.le_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:166:73 + ;;@ core/memory/writeTraps.ts:173:73 (i32.const 57343) ) ) @@ -11465,30 +11510,30 @@ ) ) ) - ;;@ core/memory/writeTraps.ts:174:6 + ;;@ core/memory/writeTraps.ts:181:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:174:16 + ;;@ core/memory/writeTraps.ts:181:16 (get_global $core/graphics/palette/Palette.memoryLocationBackgroundPaletteIndex) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:174:64 + ;;@ core/memory/writeTraps.ts:181:64 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:174:74 + ;;@ core/memory/writeTraps.ts:181:74 (get_global $core/graphics/palette/Palette.memoryLocationSpritePaletteData) ) ) ) - ;;@ core/memory/writeTraps.ts:174:2 + ;;@ core/memory/writeTraps.ts:181:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:174:115 + ;;@ core/memory/writeTraps.ts:181:115 (block - ;;@ core/memory/writeTraps.ts:176:4 + ;;@ core/memory/writeTraps.ts:183:4 (call $core/graphics/palette/writeColorPaletteToMemory (get_local $0) (get_local $1) @@ -11496,7 +11541,7 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:181:6 + ;;@ core/memory/writeTraps.ts:188:6 (if (tee_local $2 (i32.ge_s @@ -11505,21 +11550,21 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:181:56 + ;;@ core/memory/writeTraps.ts:188:56 (i32.le_s (get_local $0) (i32.const 65287) ) ) ) - ;;@ core/memory/writeTraps.ts:181:2 + ;;@ core/memory/writeTraps.ts:188:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:181:101 + ;;@ core/memory/writeTraps.ts:188:101 (block - ;;@ core/memory/writeTraps.ts:183:4 + ;;@ core/memory/writeTraps.ts:190:4 (call $core/timers/timers/batchProcessTimers) - ;;@ core/memory/writeTraps.ts:185:4 + ;;@ core/memory/writeTraps.ts:192:4 (block $break|1 (block $case3|1 (block $case2|1 @@ -11543,25 +11588,25 @@ (br $break|1) ) ) - ;;@ core/memory/writeTraps.ts:187:15 + ;;@ core/memory/writeTraps.ts:194:15 (call $core/timers/timers/Timers.updateDividerRegister (get_local $1) ) (br $folding-inner1) ) - ;;@ core/memory/writeTraps.ts:190:15 + ;;@ core/memory/writeTraps.ts:197:15 (call $core/timers/timers/Timers.updateTimerCounter (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:193:15 + ;;@ core/memory/writeTraps.ts:200:15 (call $core/timers/timers/Timers.updateTimerModulo (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:196:15 + ;;@ core/memory/writeTraps.ts:203:15 (call $core/timers/timers/Timers.updateTimerControl (get_local $1) ) @@ -11570,44 +11615,44 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:204:2 + ;;@ core/memory/writeTraps.ts:211:2 (if - ;;@ core/memory/writeTraps.ts:204:6 + ;;@ core/memory/writeTraps.ts:211:6 (i32.eq (get_local $0) (i32.const 65280) ) - ;;@ core/memory/writeTraps.ts:204:54 + ;;@ core/memory/writeTraps.ts:211:54 (call $core/joypad/joypad/Joypad.updateJoypad (get_local $1) ) ) - ;;@ core/memory/writeTraps.ts:209:2 + ;;@ core/memory/writeTraps.ts:216:2 (if - ;;@ core/memory/writeTraps.ts:209:6 + ;;@ core/memory/writeTraps.ts:216:6 (i32.eq (get_local $0) (i32.const 65295) ) - ;;@ core/memory/writeTraps.ts:209:60 + ;;@ core/memory/writeTraps.ts:216:60 (block - ;;@ core/memory/writeTraps.ts:210:15 + ;;@ core/memory/writeTraps.ts:217:15 (call $core/interrupts/interrupts/Interrupts.updateInterruptRequested (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:213:2 + ;;@ core/memory/writeTraps.ts:220:2 (if - ;;@ core/memory/writeTraps.ts:213:6 + ;;@ core/memory/writeTraps.ts:220:6 (i32.eq (get_local $0) (i32.const 65535) ) - ;;@ core/memory/writeTraps.ts:213:60 + ;;@ core/memory/writeTraps.ts:220:60 (block - ;;@ core/memory/writeTraps.ts:214:15 + ;;@ core/memory/writeTraps.ts:221:15 (call $core/interrupts/interrupts/Interrupts.updateInterruptEnabled (get_local $1) ) @@ -11622,10 +11667,10 @@ (i32.const 1) ) ) - ;;@ core/memory/writeTraps.ts:24:11 + ;;@ core/memory/writeTraps.ts:25:11 (i32.const 0) ) - (func $core/memory/store/eightBitStoreIntoGBMemoryWithTraps (; 154 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/eightBitStoreIntoGBMemoryWithTraps (; 155 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/memory/store.ts:11:2 (if ;;@ core/memory/store.ts:11:6 @@ -11640,7 +11685,7 @@ ) ) ) - (func $core/memory/dma/hdmaTransfer (; 155 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/memory/dma/hdmaTransfer (; 156 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11742,7 +11787,7 @@ ) ) ) - (func $core/memory/dma/updateHblankHdma (; 156 ;) (; has Stack IR ;) (type $v) + (func $core/memory/dma/updateHblankHdma (; 157 ;) (; has Stack IR ;) (type $v) (local $0 i32) ;;@ core/memory/dma.ts:90:2 (if @@ -11846,7 +11891,7 @@ ) ) ) - (func $core/interrupts/interrupts/requestVBlankInterrupt (; 157 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/requestVBlankInterrupt (; 158 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:217:2 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested ;;@ core/interrupts/interrupts.ts:217:42 @@ -11857,145 +11902,145 @@ (i32.const 0) ) ) - (func $core/graphics/lcd/setLcdStatus (; 158 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/lcd/setLcdStatus (; 159 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - ;;@ core/graphics/lcd.ts:64:2 + ;;@ core/graphics/lcd.ts:79:2 (if - ;;@ core/graphics/lcd.ts:64:6 + ;;@ core/graphics/lcd.ts:79:6 (i32.eqz - ;;@ core/graphics/lcd.ts:64:7 + ;;@ core/graphics/lcd.ts:79:7 (get_global $core/graphics/lcd/Lcd.enabled) ) - ;;@ core/graphics/lcd.ts:64:20 + ;;@ core/graphics/lcd.ts:79:20 (block - ;;@ core/graphics/lcd.ts:66:4 + ;;@ core/graphics/lcd.ts:81:4 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter - ;;@ core/graphics/lcd.ts:66:36 + ;;@ core/graphics/lcd.ts:81:36 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:67:4 + ;;@ core/graphics/lcd.ts:82:4 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/graphics/lcd.ts:67:32 + ;;@ core/graphics/lcd.ts:82:32 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:68:4 + ;;@ core/graphics/lcd.ts:83:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65348) - ;;@ core/graphics/lcd.ts:68:71 + ;;@ core/graphics/lcd.ts:83:71 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:74:4 + ;;@ core/graphics/lcd.ts:89:4 (set_local $3 - ;;@ core/graphics/lcd.ts:74:16 + ;;@ core/graphics/lcd.ts:89:16 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:74:31 + ;;@ core/graphics/lcd.ts:89:31 (i32.const 0) - ;;@ core/graphics/lcd.ts:73:16 + ;;@ core/graphics/lcd.ts:88:16 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:73:31 + ;;@ core/graphics/lcd.ts:88:31 (i32.const 1) - ;;@ core/graphics/lcd.ts:72:25 + ;;@ core/graphics/lcd.ts:87:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65345) ) ) ) ) - ;;@ core/graphics/lcd.ts:75:4 + ;;@ core/graphics/lcd.ts:90:4 (set_global $core/graphics/lcd/Lcd.currentLcdMode - ;;@ core/graphics/lcd.ts:75:25 + ;;@ core/graphics/lcd.ts:90:25 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:78:4 + ;;@ core/graphics/lcd.ts:93:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65345) (get_local $3) ) - ;;@ core/graphics/lcd.ts:79:4 + ;;@ core/graphics/lcd.ts:94:4 (return) ) ) - ;;@ core/graphics/lcd.ts:84:2 + ;;@ core/graphics/lcd.ts:99:2 (set_local $1 - ;;@ core/graphics/lcd.ts:84:21 + ;;@ core/graphics/lcd.ts:99:21 (get_global $core/graphics/lcd/Lcd.currentLcdMode) ) - ;;@ core/graphics/lcd.ts:90:2 + ;;@ core/graphics/lcd.ts:105:2 (if - ;;@ core/graphics/lcd.ts:90:6 + ;;@ core/graphics/lcd.ts:105:6 (i32.ge_s - ;;@ core/graphics/lcd.ts:83:2 + ;;@ core/graphics/lcd.ts:98:2 (tee_local $3 - ;;@ core/graphics/lcd.ts:83:30 + ;;@ core/graphics/lcd.ts:98:30 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) - ;;@ core/graphics/lcd.ts:90:26 + ;;@ core/graphics/lcd.ts:105:26 (i32.const 144) ) - ;;@ core/graphics/lcd.ts:90:31 + ;;@ core/graphics/lcd.ts:105:31 (set_local $2 - ;;@ core/graphics/lcd.ts:92:17 + ;;@ core/graphics/lcd.ts:107:17 (i32.const 1) ) - ;;@ core/graphics/lcd.ts:93:9 + ;;@ core/graphics/lcd.ts:108:9 (if - ;;@ core/graphics/lcd.ts:94:8 + ;;@ core/graphics/lcd.ts:109:8 (i32.ge_s (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) - ;;@ core/graphics/lcd.ts:94:50 + ;;@ core/graphics/lcd.ts:109:50 (call $core/graphics/graphics/Graphics.MIN_CYCLES_SPRITES_LCD_MODE) ) - ;;@ core/graphics/lcd.ts:94:81 + ;;@ core/graphics/lcd.ts:109:81 (set_local $2 - ;;@ core/graphics/lcd.ts:96:19 + ;;@ core/graphics/lcd.ts:111:19 (i32.const 2) ) - ;;@ core/graphics/lcd.ts:97:11 + ;;@ core/graphics/lcd.ts:112:11 (if - ;;@ core/graphics/lcd.ts:97:15 + ;;@ core/graphics/lcd.ts:112:15 (i32.ge_s (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) - ;;@ core/graphics/lcd.ts:97:57 + ;;@ core/graphics/lcd.ts:112:57 (call $core/graphics/graphics/Graphics.MIN_CYCLES_TRANSFER_DATA_LCD_MODE) ) - ;;@ core/graphics/lcd.ts:97:94 + ;;@ core/graphics/lcd.ts:112:94 (set_local $2 - ;;@ core/graphics/lcd.ts:99:19 + ;;@ core/graphics/lcd.ts:114:19 (i32.const 3) ) ) ) ) - ;;@ core/graphics/lcd.ts:103:2 + ;;@ core/graphics/lcd.ts:118:2 (if - ;;@ core/graphics/lcd.ts:103:6 + ;;@ core/graphics/lcd.ts:118:6 (i32.ne (get_local $1) (get_local $2) ) - ;;@ core/graphics/lcd.ts:103:30 + ;;@ core/graphics/lcd.ts:118:30 (block - ;;@ core/graphics/lcd.ts:105:4 + ;;@ core/graphics/lcd.ts:120:4 (set_local $0 - ;;@ core/graphics/lcd.ts:105:25 + ;;@ core/graphics/lcd.ts:120:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65345) ) ) - ;;@ core/graphics/lcd.ts:108:4 + ;;@ core/graphics/lcd.ts:123:4 (set_global $core/graphics/lcd/Lcd.currentLcdMode (get_local $2) ) - ;;@ core/graphics/lcd.ts:110:4 + ;;@ core/graphics/lcd.ts:125:4 (set_local $1 - ;;@ core/graphics/lcd.ts:110:42 + ;;@ core/graphics/lcd.ts:125:42 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:113:4 + ;;@ core/graphics/lcd.ts:128:4 (block $break|0 (block $case3|0 (block $case2|0 @@ -12019,21 +12064,21 @@ ) (br $break|0) ) - ;;@ core/graphics/lcd.ts:117:8 + ;;@ core/graphics/lcd.ts:132:8 (set_local $1 - ;;@ core/graphics/lcd.ts:117:33 + ;;@ core/graphics/lcd.ts:132:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:117:48 + ;;@ core/graphics/lcd.ts:132:48 (i32.const 3) - ;;@ core/graphics/lcd.ts:116:8 + ;;@ core/graphics/lcd.ts:131:8 (tee_local $0 - ;;@ core/graphics/lcd.ts:116:20 + ;;@ core/graphics/lcd.ts:131:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:116:35 + ;;@ core/graphics/lcd.ts:131:35 (i32.const 1) - ;;@ core/graphics/lcd.ts:115:20 + ;;@ core/graphics/lcd.ts:130:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:115:35 + ;;@ core/graphics/lcd.ts:130:35 (i32.const 0) (get_local $0) ) @@ -12041,24 +12086,24 @@ ) ) ) - ;;@ core/graphics/lcd.ts:118:8 + ;;@ core/graphics/lcd.ts:133:8 (br $break|0) ) - ;;@ core/graphics/lcd.ts:122:8 + ;;@ core/graphics/lcd.ts:137:8 (set_local $1 - ;;@ core/graphics/lcd.ts:122:33 + ;;@ core/graphics/lcd.ts:137:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:122:48 + ;;@ core/graphics/lcd.ts:137:48 (i32.const 4) - ;;@ core/graphics/lcd.ts:121:8 + ;;@ core/graphics/lcd.ts:136:8 (tee_local $0 - ;;@ core/graphics/lcd.ts:121:20 + ;;@ core/graphics/lcd.ts:136:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:121:33 + ;;@ core/graphics/lcd.ts:136:33 (i32.const 0) - ;;@ core/graphics/lcd.ts:120:20 + ;;@ core/graphics/lcd.ts:135:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:120:35 + ;;@ core/graphics/lcd.ts:135:35 (i32.const 1) (get_local $0) ) @@ -12066,24 +12111,24 @@ ) ) ) - ;;@ core/graphics/lcd.ts:123:8 + ;;@ core/graphics/lcd.ts:138:8 (br $break|0) ) - ;;@ core/graphics/lcd.ts:127:8 + ;;@ core/graphics/lcd.ts:142:8 (set_local $1 - ;;@ core/graphics/lcd.ts:127:33 + ;;@ core/graphics/lcd.ts:142:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:127:48 + ;;@ core/graphics/lcd.ts:142:48 (i32.const 5) - ;;@ core/graphics/lcd.ts:126:8 + ;;@ core/graphics/lcd.ts:141:8 (tee_local $0 - ;;@ core/graphics/lcd.ts:126:20 + ;;@ core/graphics/lcd.ts:141:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:126:33 + ;;@ core/graphics/lcd.ts:141:33 (i32.const 1) - ;;@ core/graphics/lcd.ts:125:20 + ;;@ core/graphics/lcd.ts:140:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:125:35 + ;;@ core/graphics/lcd.ts:140:35 (i32.const 0) (get_local $0) ) @@ -12091,55 +12136,55 @@ ) ) ) - ;;@ core/graphics/lcd.ts:128:8 + ;;@ core/graphics/lcd.ts:143:8 (br $break|0) ) - ;;@ core/graphics/lcd.ts:131:8 + ;;@ core/graphics/lcd.ts:146:8 (set_local $0 - ;;@ core/graphics/lcd.ts:131:20 + ;;@ core/graphics/lcd.ts:146:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:131:33 + ;;@ core/graphics/lcd.ts:146:33 (i32.const 1) - ;;@ core/graphics/lcd.ts:130:20 + ;;@ core/graphics/lcd.ts:145:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:130:33 + ;;@ core/graphics/lcd.ts:145:33 (i32.const 0) (get_local $0) ) ) ) ) - ;;@ core/graphics/lcd.ts:136:4 + ;;@ core/graphics/lcd.ts:151:4 (if (get_local $1) - ;;@ core/graphics/lcd.ts:136:32 + ;;@ core/graphics/lcd.ts:151:32 (call $core/interrupts/interrupts/requestLcdInterrupt) ) - ;;@ core/graphics/lcd.ts:141:4 + ;;@ core/graphics/lcd.ts:156:4 (if (i32.eqz (get_local $2) ) - ;;@ core/graphics/lcd.ts:141:26 + ;;@ core/graphics/lcd.ts:156:26 (call $core/memory/dma/updateHblankHdma) ) - ;;@ core/graphics/lcd.ts:147:4 + ;;@ core/graphics/lcd.ts:162:4 (if - ;;@ core/graphics/lcd.ts:147:8 + ;;@ core/graphics/lcd.ts:162:8 (i32.eq (get_local $2) - ;;@ core/graphics/lcd.ts:147:23 + ;;@ core/graphics/lcd.ts:162:23 (i32.const 1) ) - ;;@ core/graphics/lcd.ts:147:26 + ;;@ core/graphics/lcd.ts:162:26 (call $core/interrupts/interrupts/requestVBlankInterrupt) ) - ;;@ core/graphics/lcd.ts:153:4 + ;;@ core/graphics/lcd.ts:168:4 (set_local $4 - ;;@ core/graphics/lcd.ts:153:34 + ;;@ core/graphics/lcd.ts:168:34 (get_global $core/graphics/lcd/Lcd.coincidenceCompare) ) - ;;@ core/graphics/lcd.ts:154:8 + ;;@ core/graphics/lcd.ts:169:8 (if (i32.eqz (tee_local $1 @@ -12149,58 +12194,58 @@ ) ) (set_local $1 - ;;@ core/graphics/lcd.ts:154:29 + ;;@ core/graphics/lcd.ts:169:29 (i32.eq (get_local $2) - ;;@ core/graphics/lcd.ts:154:44 + ;;@ core/graphics/lcd.ts:169:44 (i32.const 1) ) ) ) - ;;@ core/graphics/lcd.ts:154:8 + ;;@ core/graphics/lcd.ts:169:8 (if (get_local $1) (set_local $1 - ;;@ core/graphics/lcd.ts:154:50 + ;;@ core/graphics/lcd.ts:169:50 (i32.eq (get_local $3) (get_local $4) ) ) ) - ;;@ core/graphics/lcd.ts:154:4 + ;;@ core/graphics/lcd.ts:169:4 (if (get_local $1) - ;;@ core/graphics/lcd.ts:156:6 + ;;@ core/graphics/lcd.ts:171:6 (if - ;;@ core/graphics/lcd.ts:156:10 + ;;@ core/graphics/lcd.ts:171:10 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:156:25 + ;;@ core/graphics/lcd.ts:171:25 (i32.const 6) - ;;@ core/graphics/lcd.ts:155:6 + ;;@ core/graphics/lcd.ts:170:6 (tee_local $0 - ;;@ core/graphics/lcd.ts:155:18 + ;;@ core/graphics/lcd.ts:170:18 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:155:31 + ;;@ core/graphics/lcd.ts:170:31 (i32.const 2) (get_local $0) ) ) ) - ;;@ core/graphics/lcd.ts:156:40 + ;;@ core/graphics/lcd.ts:171:40 (call $core/interrupts/interrupts/requestLcdInterrupt) ) - ;;@ core/graphics/lcd.ts:159:11 + ;;@ core/graphics/lcd.ts:174:11 (set_local $0 - ;;@ core/graphics/lcd.ts:160:18 + ;;@ core/graphics/lcd.ts:175:18 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:160:33 + ;;@ core/graphics/lcd.ts:175:33 (i32.const 2) (get_local $0) ) ) ) - ;;@ core/graphics/lcd.ts:164:4 + ;;@ core/graphics/lcd.ts:179:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65345) (get_local $0) @@ -12208,7 +12253,7 @@ ) ) ) - (func $core/graphics/graphics/updateGraphics (; 159 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/graphics/graphics/updateGraphics (; 160 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/graphics/graphics.ts:184:2 (if @@ -12322,7 +12367,7 @@ ;;@ core/graphics/graphics.ts:236:2 (call $core/graphics/lcd/setLcdStatus) ) - (func $core/graphics/graphics/batchProcessGraphics (; 160 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/graphics/batchProcessGraphics (; 161 ;) (; has Stack IR ;) (type $v) ;;@ core/graphics/graphics.ts:132:2 (if ;;@ core/graphics/graphics.ts:132:6 @@ -12361,7 +12406,7 @@ ) ) ) - (func $core/core/syncCycles (; 161 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/core/syncCycles (; 162 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/core.ts:343:2 (if ;;@ core/core.ts:343:6 @@ -12465,7 +12510,7 @@ ) ) ) - (func $core/cpu/opcodes/getDataByteTwo (; 162 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/opcodes/getDataByteTwo (; 163 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/opcodes.ts:164:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:164:13 @@ -12484,7 +12529,7 @@ ) ) ) - (func $core/cpu/opcodes/getDataByteOne (; 163 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/opcodes/getDataByteOne (; 164 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/opcodes.ts:159:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:159:13 @@ -12496,7 +12541,7 @@ (get_global $core/cpu/cpu/Cpu.programCounter) ) ) - (func $core/cpu/opcodes/getConcatenatedDataByte (; 164 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/opcodes/getConcatenatedDataByte (; 165 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/opcodes.ts:170:65 (call $core/helpers/index/concatenateBytes ;;@ core/cpu/opcodes.ts:170:31 @@ -12511,7 +12556,7 @@ ) ) ) - (func $core/cpu/opcodes/eightBitStoreSyncCycles (; 165 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/opcodes/eightBitStoreSyncCycles (; 166 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/opcodes.ts:142:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:142:13 @@ -12523,7 +12568,7 @@ (get_local $1) ) ) - (func $core/cpu/flags/setFlagBit (; 166 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/cpu/flags/setFlagBit (; 167 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) ;;@ core/cpu/flags.ts:6:2 (set_local $2 @@ -12571,7 +12616,7 @@ ;;@ core/cpu/flags.ts:15:13 (get_global $core/cpu/cpu/Cpu.registerF) ) - (func $core/cpu/flags/setHalfCarryFlag (; 167 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setHalfCarryFlag (; 168 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:28:2 (drop (call $core/cpu/flags/setFlagBit @@ -12581,7 +12626,7 @@ ) ) ) - (func $core/cpu/flags/checkAndSetEightBitHalfCarryFlag (; 168 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/flags/checkAndSetEightBitHalfCarryFlag (; 169 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/flags.ts:55:2 (if ;;@ core/cpu/flags.ts:55:6 @@ -12664,7 +12709,7 @@ ) ) ) - (func $core/cpu/flags/setZeroFlag (; 169 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setZeroFlag (; 170 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:20:2 (drop (call $core/cpu/flags/setFlagBit @@ -12674,7 +12719,7 @@ ) ) ) - (func $core/cpu/flags/setSubtractFlag (; 170 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setSubtractFlag (; 171 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:24:2 (drop (call $core/cpu/flags/setFlagBit @@ -12684,7 +12729,7 @@ ) ) ) - (func $core/cpu/flags/setCarryFlag (; 171 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/flags/setCarryFlag (; 172 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/flags.ts:32:2 (drop (call $core/cpu/flags/setFlagBit @@ -12694,7 +12739,7 @@ ) ) ) - (func $core/helpers/index/rotateByteLeft (; 172 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteLeft (; 173 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:25:47 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:25:20 @@ -12716,7 +12761,7 @@ ) ) ) - (func $core/memory/store/sixteenBitStoreIntoGBMemoryWithTraps (; 173 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/sixteenBitStoreIntoGBMemoryWithTraps (; 174 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) ;;@ core/memory/store.ts:19:2 @@ -12768,7 +12813,7 @@ ) ) ) - (func $core/cpu/opcodes/sixteenBitStoreSyncCycles (; 174 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/opcodes/sixteenBitStoreSyncCycles (; 175 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/opcodes.ts:153:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:153:13 @@ -12780,7 +12825,7 @@ (get_local $1) ) ) - (func $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow (; 175 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow (; 176 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) ;;@ core/cpu/flags.ts:96:2 (if (i32.and @@ -12918,7 +12963,7 @@ ) ) ) - (func $core/cpu/opcodes/eightBitLoadSyncCycles (; 176 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/eightBitLoadSyncCycles (; 177 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/opcodes.ts:137:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:137:13 @@ -12929,7 +12974,7 @@ (get_local $0) ) ) - (func $core/helpers/index/rotateByteRight (; 177 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteRight (; 178 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:38:47 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:38:20 @@ -12951,7 +12996,7 @@ ) ) ) - (func $core/cpu/opcodes/handleOpcode0x (; 178 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode0x (; 179 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner4 (block $folding-inner3 @@ -13017,7 +13062,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner1) ) ;;@ core/cpu/opcodes.ts:198:6 (call $core/cpu/opcodes/eightBitStoreSyncCycles @@ -13150,7 +13195,7 @@ (i32.const 255) ) ) - (br $folding-inner3) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:249:6 (if @@ -13184,7 +13229,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner1) + (br $folding-inner3) ) ;;@ core/cpu/opcodes.ts:266:6 (call $core/cpu/opcodes/sixteenBitStoreSyncCycles @@ -13196,7 +13241,7 @@ ;;@ core/cpu/opcodes.ts:266:59 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - (br $folding-inner2) + (br $folding-inner1) ) ;;@ core/cpu/opcodes.ts:276:6 (call $core/cpu/flags/checkAndSetSixteenBitFlagsAddOverflow @@ -13404,7 +13449,7 @@ (i32.const 255) ) ) - (br $folding-inner3) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:338:6 (if @@ -13438,7 +13483,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner1) + (br $folding-inner3) ) (return (i32.const -1) @@ -13459,54 +13504,54 @@ (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:256:6 - (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:256:18 - (i32.const 0) - ) - ;;@ core/cpu/opcodes.ts:257:6 - (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:257:22 - (i32.const 0) - ) - ;;@ core/cpu/opcodes.ts:258:6 - (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:258:23 - (i32.const 0) + ;;@ core/cpu/opcodes.ts:189:6 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/cpu/opcodes.ts:189:27 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:189:39 + (i32.add + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:189:60 + (i32.const 2) + ) + ) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:189:6 + ;;@ core/cpu/opcodes.ts:241:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:189:27 + ;;@ core/cpu/opcodes.ts:241:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:189:39 + ;;@ core/cpu/opcodes.ts:241:39 (i32.add (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:189:60 - (i32.const 2) + ;;@ core/cpu/opcodes.ts:241:60 + (i32.const 1) ) ) ) (br $folding-inner4) ) - ;;@ core/cpu/opcodes.ts:241:6 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:241:27 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:241:39 - (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:241:60 - (i32.const 1) - ) - ) + ;;@ core/cpu/opcodes.ts:256:6 + (call $core/cpu/flags/setZeroFlag + ;;@ core/cpu/opcodes.ts:256:18 + (i32.const 0) + ) + ;;@ core/cpu/opcodes.ts:257:6 + (call $core/cpu/flags/setSubtractFlag + ;;@ core/cpu/opcodes.ts:257:22 + (i32.const 0) + ) + ;;@ core/cpu/opcodes.ts:258:6 + (call $core/cpu/flags/setHalfCarryFlag + ;;@ core/cpu/opcodes.ts:258:23 + (i32.const 0) ) ) ;;@ core/cpu/opcodes.ts:179:13 (i32.const 4) ) - (func $core/cpu/flags/getCarryFlag (; 179 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getCarryFlag (; 180 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:49:32 (i32.and ;;@ core/cpu/flags.ts:49:9 @@ -13520,7 +13565,7 @@ (i32.const 1) ) ) - (func $core/helpers/index/rotateByteLeftThroughCarry (; 180 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteLeftThroughCarry (; 181 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:31:49 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:31:20 @@ -13535,7 +13580,7 @@ ) ) ) - (func $core/portable/portable/i8Portable (; 181 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/portable/portable/i8Portable (; 182 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/portable/portable.ts:19:2 (if @@ -13578,7 +13623,7 @@ ) (get_local $1) ) - (func $core/cpu/instructions/relativeJump (; 182 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/relativeJump (; 183 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:425:2 (set_local $1 @@ -13617,7 +13662,7 @@ ) ) ) - (func $core/helpers/index/rotateByteRightThroughCarry (; 183 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/helpers/index/rotateByteRightThroughCarry (; 184 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/helpers/index.ts:44:56 (call $core/helpers/index/splitLowByte ;;@ core/helpers/index.ts:44:20 @@ -13640,7 +13685,7 @@ ) ) ) - (func $core/cpu/opcodes/handleOpcode1x (; 184 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode1x (; 185 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner3 (block $folding-inner2 @@ -13766,7 +13811,7 @@ ;;@ core/cpu/opcodes.ts:390:22 (i32.const 1) ) - (br $folding-inner2) + (br $folding-inner1) ) ;;@ core/cpu/opcodes.ts:400:6 (set_global $core/cpu/cpu/Cpu.registerD @@ -13942,7 +13987,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner1) ) ;;@ core/cpu/opcodes.ts:459:6 (set_local $0 @@ -13976,7 +14021,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner1) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:482:6 (call $core/cpu/instructions/relativeJump @@ -14198,7 +14243,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner1) ) ;;@ core/cpu/opcodes.ts:552:6 (set_local $0 @@ -14232,7 +14277,7 @@ (get_global $core/cpu/cpu/Cpu.registerA) ) ) - (br $folding-inner1) + (br $folding-inner2) ) (return (i32.const -1) @@ -14253,54 +14298,54 @@ (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:465:6 - (if - (get_local $0) - ;;@ core/cpu/opcodes.ts:465:22 - (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:466:21 - (i32.const 1) - ) - ;;@ core/cpu/opcodes.ts:467:13 - (call $core/cpu/flags/setCarryFlag - ;;@ core/cpu/opcodes.ts:468:21 - (i32.const 0) + ;;@ core/cpu/opcodes.ts:391:6 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/cpu/opcodes.ts:391:27 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:391:39 + (i32.add + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:391:60 + (i32.const 1) + ) ) ) - ;;@ core/cpu/opcodes.ts:471:6 - (call $core/cpu/flags/setZeroFlag - ;;@ core/cpu/opcodes.ts:471:18 - (i32.const 0) - ) - ;;@ core/cpu/opcodes.ts:472:6 - (call $core/cpu/flags/setSubtractFlag - ;;@ core/cpu/opcodes.ts:472:22 - (i32.const 0) + (br $folding-inner3) + ) + ;;@ core/cpu/opcodes.ts:465:6 + (if + (get_local $0) + ;;@ core/cpu/opcodes.ts:465:22 + (call $core/cpu/flags/setCarryFlag + ;;@ core/cpu/opcodes.ts:466:21 + (i32.const 1) ) - ;;@ core/cpu/opcodes.ts:473:6 - (call $core/cpu/flags/setHalfCarryFlag - ;;@ core/cpu/opcodes.ts:473:23 + ;;@ core/cpu/opcodes.ts:467:13 + (call $core/cpu/flags/setCarryFlag + ;;@ core/cpu/opcodes.ts:468:21 (i32.const 0) ) - (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:391:6 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:391:27 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:391:39 - (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:391:60 - (i32.const 1) - ) - ) + ;;@ core/cpu/opcodes.ts:471:6 + (call $core/cpu/flags/setZeroFlag + ;;@ core/cpu/opcodes.ts:471:18 + (i32.const 0) + ) + ;;@ core/cpu/opcodes.ts:472:6 + (call $core/cpu/flags/setSubtractFlag + ;;@ core/cpu/opcodes.ts:472:22 + (i32.const 0) + ) + ;;@ core/cpu/opcodes.ts:473:6 + (call $core/cpu/flags/setHalfCarryFlag + ;;@ core/cpu/opcodes.ts:473:23 + (i32.const 0) ) ) ;;@ core/cpu/opcodes.ts:403:13 (i32.const 4) ) - (func $core/cpu/flags/getZeroFlag (; 185 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getZeroFlag (; 186 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:37:32 (i32.and ;;@ core/cpu/flags.ts:37:9 @@ -14314,7 +14359,7 @@ (i32.const 1) ) ) - (func $core/cpu/flags/getHalfCarryFlag (; 186 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getHalfCarryFlag (; 187 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:45:32 (i32.and ;;@ core/cpu/flags.ts:45:9 @@ -14328,7 +14373,7 @@ (i32.const 1) ) ) - (func $core/cpu/flags/getSubtractFlag (; 187 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/flags/getSubtractFlag (; 188 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/flags.ts:41:32 (i32.and ;;@ core/cpu/flags.ts:41:9 @@ -14342,7 +14387,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcode2x (; 188 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode2x (; 189 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner1 (block $folding-inner0 @@ -15105,7 +15150,7 @@ ;;@ core/cpu/opcodes.ts:596:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode3x (; 189 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode3x (; 190 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner3 (block $folding-inner2 @@ -15213,7 +15258,7 @@ ;;@ core/cpu/opcodes.ts:800:43 (get_global $core/cpu/cpu/Cpu.registerA) ) - (br $folding-inner0) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:808:6 (set_global $core/cpu/cpu/Cpu.stackPointer @@ -15363,7 +15408,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner0) ) ;;@ core/cpu/opcodes.ts:865:6 (call $core/cpu/flags/setSubtractFlag @@ -15494,7 +15539,7 @@ (i32.const 255) ) ) - (br $folding-inner0) + (br $folding-inner2) ) ;;@ core/cpu/opcodes.ts:904:6 (set_global $core/cpu/cpu/Cpu.stackPointer @@ -15603,7 +15648,7 @@ (i32.const 255) ) ) - (br $folding-inner2) + (br $folding-inner0) ) ;;@ core/cpu/opcodes.ts:943:6 (call $core/cpu/flags/setSubtractFlag @@ -15640,35 +15685,16 @@ (i32.const -1) ) ) - ;;@ core/cpu/opcodes.ts:802:6 - (set_global $core/cpu/cpu/Cpu.registerH - (i32.and - ;;@ core/cpu/opcodes.ts:802:22 - (call $core/helpers/index/splitHighByte - ;;@ core/cpu/opcodes.ts:801:6 - (tee_local $0 - ;;@ core/cpu/opcodes.ts:801:20 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:801:32 - (i32.sub - (get_local $0) - ;;@ core/cpu/opcodes.ts:801:46 - (i32.const 1) - ) - ) - ) - ) - (i32.const 255) - ) - ) - ;;@ core/cpu/opcodes.ts:803:6 - (set_global $core/cpu/cpu/Cpu.registerL - (i32.and - ;;@ core/cpu/opcodes.ts:803:22 - (call $core/helpers/index/splitLowByte - (get_local $0) + ;;@ core/cpu/opcodes.ts:858:6 + (set_global $core/cpu/cpu/Cpu.programCounter + ;;@ core/cpu/opcodes.ts:858:27 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:858:39 + (i32.add + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:858:60 + (i32.const 1) ) - (i32.const 255) ) ) (br $folding-inner3) @@ -15684,23 +15710,42 @@ ) (br $folding-inner3) ) - ;;@ core/cpu/opcodes.ts:858:6 - (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:858:27 - (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:858:39 - (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:858:60 - (i32.const 1) + ;;@ core/cpu/opcodes.ts:802:6 + (set_global $core/cpu/cpu/Cpu.registerH + (i32.and + ;;@ core/cpu/opcodes.ts:802:22 + (call $core/helpers/index/splitHighByte + ;;@ core/cpu/opcodes.ts:801:6 + (tee_local $0 + ;;@ core/cpu/opcodes.ts:801:20 + (call $core/portable/portable/u16Portable + ;;@ core/cpu/opcodes.ts:801:32 + (i32.sub + (get_local $0) + ;;@ core/cpu/opcodes.ts:801:46 + (i32.const 1) + ) + ) + ) + ) + (i32.const 255) + ) + ) + ;;@ core/cpu/opcodes.ts:803:6 + (set_global $core/cpu/cpu/Cpu.registerL + (i32.and + ;;@ core/cpu/opcodes.ts:803:22 + (call $core/helpers/index/splitLowByte + (get_local $0) ) + (i32.const 255) ) ) ) ;;@ core/cpu/opcodes.ts:794:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode4x (; 190 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode4x (; 191 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -15877,7 +15922,7 @@ ;;@ core/cpu/opcodes.ts:961:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode5x (; 191 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode5x (; 192 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16054,7 +16099,7 @@ ;;@ core/cpu/opcodes.ts:1049:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcode6x (; 192 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode6x (; 193 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16231,7 +16276,7 @@ ;;@ core/cpu/opcodes.ts:1137:13 (i32.const 4) ) - (func $core/cpu/cpu/Cpu.enableHalt (; 193 ;) (; has Stack IR ;) (type $v) + (func $core/cpu/cpu/Cpu.enableHalt (; 194 ;) (; has Stack IR ;) (type $v) ;;@ core/cpu/cpu.ts:75:4 (if ;;@ core/cpu/cpu.ts:75:8 @@ -16278,7 +16323,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcode7x (; 194 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode7x (; 195 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16503,7 +16548,7 @@ ;;@ core/cpu/opcodes.ts:1226:13 (i32.const 4) ) - (func $core/cpu/flags/checkAndSetEightBitCarryFlag (; 195 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/cpu/flags/checkAndSetEightBitCarryFlag (; 196 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/cpu/flags.ts:75:2 (if ;;@ core/cpu/flags.ts:75:6 @@ -16574,7 +16619,7 @@ ) ) ) - (func $core/cpu/instructions/addARegister (; 196 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/addARegister (; 197 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:31:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -16626,7 +16671,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/addAThroughCarryRegister (; 197 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/addAThroughCarryRegister (; 198 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:46:2 (set_local $1 @@ -16735,7 +16780,7 @@ (i32.const 0) ) ) - (func $core/cpu/opcodes/handleOpcode8x (; 198 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode8x (; 199 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -16909,7 +16954,7 @@ ;;@ core/cpu/opcodes.ts:1329:13 (i32.const 4) ) - (func $core/cpu/instructions/subARegister (; 199 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/subARegister (; 200 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:74:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -16967,7 +17012,7 @@ (i32.const 1) ) ) - (func $core/cpu/instructions/subAThroughCarryRegister (; 200 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/subAThroughCarryRegister (; 201 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:89:2 (set_local $1 @@ -17076,7 +17121,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcode9x (; 201 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcode9x (; 202 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17250,7 +17295,7 @@ ;;@ core/cpu/opcodes.ts:1435:13 (i32.const 4) ) - (func $core/cpu/instructions/andARegister (; 202 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/andARegister (; 203 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:115:2 (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/instructions.ts:115:18 @@ -17290,7 +17335,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/xorARegister (; 203 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/xorARegister (; 204 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:127:2 (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/instructions.ts:127:18 @@ -17333,7 +17378,7 @@ (i32.const 0) ) ) - (func $core/cpu/opcodes/handleOpcodeAx (; 204 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeAx (; 205 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17507,7 +17552,7 @@ ;;@ core/cpu/opcodes.ts:1541:13 (i32.const 4) ) - (func $core/cpu/instructions/orARegister (; 205 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/orARegister (; 206 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/cpu/instructions.ts:139:2 (set_global $core/cpu/cpu/Cpu.registerA (i32.and @@ -17550,7 +17595,7 @@ (i32.const 0) ) ) - (func $core/cpu/instructions/cpARegister (; 206 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/cpu/instructions/cpARegister (; 207 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/cpu/instructions.ts:157:2 (call $core/cpu/flags/checkAndSetEightBitHalfCarryFlag @@ -17600,7 +17645,7 @@ (i32.const 1) ) ) - (func $core/cpu/opcodes/handleOpcodeBx (; 207 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeBx (; 208 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner0 (block $break|0 @@ -17774,7 +17819,7 @@ ;;@ core/cpu/opcodes.ts:1648:13 (i32.const 4) ) - (func $core/memory/load/sixteenBitLoadFromGBMemory (; 208 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/sixteenBitLoadFromGBMemory (; 209 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/memory/load.ts:25:2 @@ -17842,7 +17887,7 @@ (get_local $1) ) ) - (func $core/cpu/opcodes/sixteenBitLoadSyncCycles (; 209 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/sixteenBitLoadSyncCycles (; 210 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/opcodes.ts:147:2 (call $core/core/syncCycles ;;@ core/cpu/opcodes.ts:147:13 @@ -17853,7 +17898,7 @@ (get_local $0) ) ) - (func $core/cpu/instructions/rotateRegisterLeft (; 210 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterLeft (; 211 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:171:2 (if ;;@ core/cpu/instructions.ts:171:6 @@ -17909,7 +17954,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterRight (; 211 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterRight (; 212 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:195:2 (if ;;@ core/cpu/instructions.ts:195:6 @@ -17965,7 +18010,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterLeftThroughCarry (; 212 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterLeftThroughCarry (; 213 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:220:2 (if @@ -18032,7 +18077,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/rotateRegisterRightThroughCarry (; 213 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/rotateRegisterRightThroughCarry (; 214 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:247:2 (if @@ -18099,7 +18144,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftLeftRegister (; 214 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftLeftRegister (; 215 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:274:2 (if @@ -18171,7 +18216,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftRightArithmeticRegister (; 215 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftRightArithmeticRegister (; 216 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/cpu/instructions.ts:304:2 @@ -18278,7 +18323,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/swapNibblesOnRegister (; 216 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/swapNibblesOnRegister (; 217 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/cpu/instructions.ts:344:2 (if ;;@ core/cpu/instructions.ts:342:2 @@ -18339,7 +18384,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/shiftRightLogicalRegister (; 217 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/instructions/shiftRightLogicalRegister (; 218 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/instructions.ts:364:2 (if @@ -18413,7 +18458,7 @@ ) (get_local $0) ) - (func $core/cpu/instructions/testBitOnRegister (; 218 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/cpu/instructions/testBitOnRegister (; 219 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/cpu/instructions.ts:394:2 (if (i32.and @@ -18451,7 +18496,7 @@ ) (get_local $1) ) - (func $core/cpu/instructions/setBitOnRegister (; 219 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $core/cpu/instructions/setBitOnRegister (; 220 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (tee_local $2 ;;@ core/cpu/instructions.ts:409:2 (if (result i32) @@ -18487,7 +18532,7 @@ ) ) ) - (func $core/cpu/cbOpcodes/handleCbOpcode (; 220 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/cbOpcodes/handleCbOpcode (; 221 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -19670,7 +19715,7 @@ ) (get_local $6) ) - (func $core/cpu/opcodes/handleOpcodeCx (; 221 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeCx (; 222 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner5 (block $folding-inner4 @@ -19718,7 +19763,7 @@ ;;@ core/cpu/opcodes.ts:1752:10 (call $core/cpu/flags/getZeroFlag) ) - (br $folding-inner3) + (br $folding-inner4) ) ;;@ core/cpu/opcodes.ts:1764:6 (set_local $1 @@ -19772,7 +19817,7 @@ (if ;;@ core/cpu/opcodes.ts:1772:10 (call $core/cpu/flags/getZeroFlag) - (br $folding-inner4) + (br $folding-inner3) (br $folding-inner1) ) ) @@ -19782,7 +19827,7 @@ (if ;;@ core/cpu/opcodes.ts:1789:10 (call $core/cpu/flags/getZeroFlag) - (br $folding-inner4) + (br $folding-inner3) (br $folding-inner0) ) ) @@ -19853,7 +19898,7 @@ (i32.const 1) ) ) - (br $folding-inner3) + (br $folding-inner4) ) ;;@ core/cpu/opcodes.ts:1838:6 (set_global $core/cpu/cpu/Cpu.programCounter @@ -19889,7 +19934,7 @@ (i32.const 1) ) (br $folding-inner1) - (br $folding-inner4) + (br $folding-inner3) ) ) ;;@ core/cpu/opcodes.ts:1856:6 @@ -19958,7 +20003,7 @@ ) (br $folding-inner1) ) - (br $folding-inner4) + (br $folding-inner3) ) ) (br $folding-inner0) @@ -20040,47 +20085,47 @@ (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:1754:8 + ;;@ core/cpu/opcodes.ts:1777:8 (set_global $core/cpu/cpu/Cpu.programCounter - (i32.and - ;;@ core/cpu/opcodes.ts:1754:29 - (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1754:59 - (get_global $core/cpu/cpu/Cpu.stackPointer) - ) - (i32.const 65535) - ) - ) - ;;@ core/cpu/opcodes.ts:1755:8 - (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1755:27 + ;;@ core/cpu/opcodes.ts:1777:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1755:39 + ;;@ core/cpu/opcodes.ts:1777:41 (i32.add - (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1755:58 + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:1777:62 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1756:15 + ;;@ core/cpu/opcodes.ts:1778:15 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:1777:8 + ;;@ core/cpu/opcodes.ts:1754:8 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1777:29 + (i32.and + ;;@ core/cpu/opcodes.ts:1754:29 + (call $core/cpu/opcodes/sixteenBitLoadSyncCycles + ;;@ core/cpu/opcodes.ts:1754:59 + (get_global $core/cpu/cpu/Cpu.stackPointer) + ) + (i32.const 65535) + ) + ) + ;;@ core/cpu/opcodes.ts:1755:8 + (set_global $core/cpu/cpu/Cpu.stackPointer + ;;@ core/cpu/opcodes.ts:1755:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1777:41 + ;;@ core/cpu/opcodes.ts:1755:39 (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1777:62 + (get_global $core/cpu/cpu/Cpu.stackPointer) + ;;@ core/cpu/opcodes.ts:1755:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1778:15 + ;;@ core/cpu/opcodes.ts:1756:15 (return (i32.const 12) ) @@ -20100,7 +20145,7 @@ ;;@ core/cpu/opcodes.ts:1814:13 (i32.const 4) ) - (func $core/interrupts/interrupts/setInterrupts (; 222 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/interrupts/interrupts/setInterrupts (; 223 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/interrupts/interrupts.ts:209:2 (if (i32.and @@ -20119,7 +20164,7 @@ ) ) ) - (func $core/cpu/opcodes/handleOpcodeDx (; 223 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeDx (; 224 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $folding-inner4 (block $folding-inner3 @@ -20163,7 +20208,7 @@ ;;@ core/cpu/opcodes.ts:1907:10 (call $core/cpu/flags/getCarryFlag) ) - (br $folding-inner2) + (br $folding-inner3) ) ;;@ core/cpu/opcodes.ts:1919:6 (set_local $1 @@ -20217,7 +20262,7 @@ (if ;;@ core/cpu/opcodes.ts:1927:10 (call $core/cpu/flags/getCarryFlag) - (br $folding-inner3) + (br $folding-inner2) (br $folding-inner0) ) ) @@ -20225,7 +20270,7 @@ (if ;;@ core/cpu/opcodes.ts:1939:10 (call $core/cpu/flags/getCarryFlag) - (br $folding-inner3) + (br $folding-inner2) ;;@ core/cpu/opcodes.ts:1939:32 (block ;;@ core/cpu/opcodes.ts:1940:8 @@ -20325,7 +20370,7 @@ (i32.const 1) ) ) - (br $folding-inner2) + (br $folding-inner3) ) ;;@ core/cpu/opcodes.ts:1989:6 (set_global $core/cpu/cpu/Cpu.programCounter @@ -20366,7 +20411,7 @@ (i32.const 1) ) (br $folding-inner0) - (br $folding-inner3) + (br $folding-inner2) ) ) ;;@ core/cpu/opcodes.ts:2009:6 @@ -20407,7 +20452,7 @@ ) (br $folding-inner0) ) - (br $folding-inner3) + (br $folding-inner2) ) ) ;;@ core/cpu/opcodes.ts:2026:6 @@ -20460,47 +20505,47 @@ (i32.const 8) ) ) - ;;@ core/cpu/opcodes.ts:1909:8 + ;;@ core/cpu/opcodes.ts:1932:8 (set_global $core/cpu/cpu/Cpu.programCounter - (i32.and - ;;@ core/cpu/opcodes.ts:1909:29 - (call $core/cpu/opcodes/sixteenBitLoadSyncCycles - ;;@ core/cpu/opcodes.ts:1909:59 - (get_global $core/cpu/cpu/Cpu.stackPointer) - ) - (i32.const 65535) - ) - ) - ;;@ core/cpu/opcodes.ts:1910:8 - (set_global $core/cpu/cpu/Cpu.stackPointer - ;;@ core/cpu/opcodes.ts:1910:27 + ;;@ core/cpu/opcodes.ts:1932:29 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1910:39 + ;;@ core/cpu/opcodes.ts:1932:41 (i32.add - (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/cpu/opcodes.ts:1910:58 + (get_global $core/cpu/cpu/Cpu.programCounter) + ;;@ core/cpu/opcodes.ts:1932:62 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1911:15 + ;;@ core/cpu/opcodes.ts:1933:15 (return (i32.const 12) ) ) - ;;@ core/cpu/opcodes.ts:1932:8 + ;;@ core/cpu/opcodes.ts:1909:8 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/cpu/opcodes.ts:1932:29 + (i32.and + ;;@ core/cpu/opcodes.ts:1909:29 + (call $core/cpu/opcodes/sixteenBitLoadSyncCycles + ;;@ core/cpu/opcodes.ts:1909:59 + (get_global $core/cpu/cpu/Cpu.stackPointer) + ) + (i32.const 65535) + ) + ) + ;;@ core/cpu/opcodes.ts:1910:8 + (set_global $core/cpu/cpu/Cpu.stackPointer + ;;@ core/cpu/opcodes.ts:1910:27 (call $core/portable/portable/u16Portable - ;;@ core/cpu/opcodes.ts:1932:41 + ;;@ core/cpu/opcodes.ts:1910:39 (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/cpu/opcodes.ts:1932:62 + (get_global $core/cpu/cpu/Cpu.stackPointer) + ;;@ core/cpu/opcodes.ts:1910:58 (i32.const 2) ) ) ) - ;;@ core/cpu/opcodes.ts:1933:15 + ;;@ core/cpu/opcodes.ts:1911:15 (return (i32.const 12) ) @@ -20520,7 +20565,7 @@ ;;@ core/cpu/opcodes.ts:1964:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcodeEx (; 224 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeEx (; 225 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (block $folding-inner0 (block $break|0 (block $case10|0 @@ -20861,7 +20906,7 @@ ;;@ core/cpu/opcodes.ts:2053:13 (i32.const 4) ) - (func $core/cpu/opcodes/handleOpcodeFx (; 225 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/handleOpcodeFx (; 226 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (block $folding-inner1 (block $folding-inner0 (block $break|0 @@ -21243,7 +21288,7 @@ ;;@ core/cpu/opcodes.ts:2165:13 (i32.const 4) ) - (func $core/cpu/opcodes/executeOpcode (; 226 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/cpu/opcodes/executeOpcode (; 227 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) ;;@ core/cpu/opcodes.ts:71:2 (set_global $core/cpu/cpu/Cpu.programCounter @@ -21448,7 +21493,7 @@ (get_local $0) ) ) - (func $core/cpu/cpu/Cpu.exitHaltAndStop (; 227 ;) (; has Stack IR ;) (type $v) + (func $core/cpu/cpu/Cpu.exitHaltAndStop (; 228 ;) (; has Stack IR ;) (type $v) ;;@ core/cpu/cpu.ts:91:4 (set_global $core/cpu/cpu/Cpu.isHaltNoJump ;;@ core/cpu/cpu.ts:91:23 @@ -21470,7 +21515,7 @@ (i32.const 0) ) ) - (func $core/cpu/cpu/Cpu.isHalted (; 228 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/cpu/cpu/Cpu.isHalted (; 229 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/cpu/cpu.ts:98:4 (if ;;@ core/cpu/cpu.ts:98:8 @@ -21486,7 +21531,7 @@ ) (i32.const 0) ) - (func $core/memory/store/sixteenBitStoreIntoGBMemory (; 229 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/sixteenBitStoreIntoGBMemory (; 230 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) ;;@ core/memory/store.ts:35:2 (set_local $2 @@ -21514,7 +21559,7 @@ (get_local $2) ) ) - (func $core/interrupts/interrupts/_handleInterrupt (; 230 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/interrupts/interrupts/_handleInterrupt (; 231 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) ;;@ core/interrupts/interrupts.ts:155:2 (call $core/interrupts/interrupts/setInterrupts @@ -21648,7 +21693,7 @@ ) ) ) - (func $core/interrupts/interrupts/checkInterrupts (; 231 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/interrupts/interrupts/checkInterrupts (; 232 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) ;;@ core/interrupts/interrupts.ts:98:2 @@ -21845,7 +21890,7 @@ ) (i32.const 0) ) - (func $core/core/executeStep (; 232 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/executeStep (; 233 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) ;;@ core/core.ts:286:2 @@ -21963,7 +22008,7 @@ ) (get_local $0) ) - (func $core/core/executeFrame (; 233 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/executeFrame (; 234 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) (local $1 i32) (loop $continue|0 @@ -22043,11 +22088,11 @@ ) (i32.const -1) ) - (func $core/sound/sound/getNumberOfSamplesInAudioBuffer (; 234 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/sound/sound/getNumberOfSamplesInAudioBuffer (; 235 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/sound/sound.ts:202:15 (get_global $core/sound/sound/Sound.audioQueueIndex) ) - (func $core/core/executeFrameAndCheckAudio (; 235 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/core/executeFrameAndCheckAudio (; 236 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) ;;@ core/core.ts:211:2 @@ -22172,7 +22217,7 @@ ) (i32.const -1) ) - (func $core/core/executeFrameUntilBreakpoint (; 236 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/core/executeFrameUntilBreakpoint (; 237 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (loop $continue|0 @@ -22274,7 +22319,7 @@ ) (i32.const -1) ) - (func $core/core/getSaveStateMemoryOffset (; 237 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $core/core/getSaveStateMemoryOffset (; 238 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) ;;@ core/core.ts:383:48 (i32.add ;;@ core/core.ts:383:9 @@ -22289,7 +22334,7 @@ ) ) ) - (func $core/memory/store/storeBooleanDirectlyToWasmMemory (; 238 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/memory/store/storeBooleanDirectlyToWasmMemory (; 239 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) ;;@ core/memory/store.ts:44:2 (if (i32.and @@ -22310,7 +22355,7 @@ ) ) ) - (func $core/cpu/cpu/Cpu.saveState (; 239 ;) (; has Stack IR ;) (type $v) + (func $core/cpu/cpu/Cpu.saveState (; 240 ;) (; has Stack IR ;) (type $v) ;;@ core/cpu/cpu.ts:111:4 (i32.store8 ;;@ core/cpu/cpu.ts:111:14 @@ -22477,7 +22522,7 @@ (get_global $core/cpu/cpu/Cpu.isStopped) ) ) - (func $core/graphics/graphics/Graphics.saveState (; 240 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/graphics/Graphics.saveState (; 241 ;) (; has Stack IR ;) (type $v) ;;@ core/graphics/graphics.ts:111:4 (i32.store ;;@ core/graphics/graphics.ts:111:15 @@ -22507,7 +22552,7 @@ (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) ) - (func $core/interrupts/interrupts/Interrupts.saveState (; 241 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/Interrupts.saveState (; 242 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:67:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/interrupts/interrupts.ts:67:37 @@ -22531,10 +22576,10 @@ (get_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay) ) ) - (func $core/joypad/joypad/Joypad.saveState (; 242 ;) (; has Stack IR ;) (type $v) + (func $core/joypad/joypad/Joypad.saveState (; 243 ;) (; has Stack IR ;) (type $v) (nop) ) - (func $core/memory/memory/Memory.saveState (; 243 ;) (; has Stack IR ;) (type $v) + (func $core/memory/memory/Memory.saveState (; 244 ;) (; has Stack IR ;) (type $v) ;;@ core/memory/memory.ts:104:4 (i32.store16 ;;@ core/memory/memory.ts:104:15 @@ -22635,7 +22680,7 @@ (get_global $core/memory/memory/Memory.isMBC5) ) ) - (func $core/timers/timers/Timers.saveState (; 244 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/Timers.saveState (; 245 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:138:4 (i32.store ;;@ core/timers/timers.ts:138:15 @@ -22687,7 +22732,7 @@ (get_global $core/timers/timers/Timers.timerCounter) ) ) - (func $core/sound/sound/Sound.saveState (; 245 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/Sound.saveState (; 246 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:126:4 (i32.store ;;@ core/sound/sound.ts:126:15 @@ -22722,7 +22767,7 @@ (get_global $core/sound/sound/Sound.frameSequencer) ) ) - (func $core/sound/channel1/Channel1.saveState (; 246 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.saveState (; 247 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:115:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel1.ts:115:37 @@ -22834,7 +22879,7 @@ (get_global $core/sound/channel1/Channel1.sweepShadowFrequency) ) ) - (func $core/sound/channel2/Channel2.saveState (; 247 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.saveState (; 248 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:99:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel2.ts:99:37 @@ -22913,7 +22958,7 @@ (get_global $core/sound/channel2/Channel2.waveFormPositionOnDuty) ) ) - (func $core/sound/channel3/Channel3.saveState (; 248 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.saveState (; 249 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:97:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel3.ts:97:37 @@ -22959,7 +23004,7 @@ (get_global $core/sound/channel3/Channel3.waveTablePosition) ) ) - (func $core/sound/channel4/Channel4.saveState (; 249 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.saveState (; 250 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:120:4 (call $core/memory/store/storeBooleanDirectlyToWasmMemory ;;@ core/sound/channel4.ts:120:37 @@ -23027,7 +23072,7 @@ (get_global $core/sound/channel4/Channel4.linearFeedbackShiftRegister) ) ) - (func $core/core/saveState (; 250 ;) (; has Stack IR ;) (type $v) + (func $core/core/saveState (; 251 ;) (; has Stack IR ;) (type $v) ;;@ core/core.ts:388:6 (call $core/cpu/cpu/Cpu.saveState) ;;@ core/core.ts:389:11 @@ -23056,7 +23101,7 @@ (i32.const 0) ) ) - (func $core/memory/load/loadBooleanDirectlyFromWasmMemory (; 251 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/memory/load/loadBooleanDirectlyFromWasmMemory (; 252 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) ;;@ core/memory/load.ts:55:2 (if ;;@ core/memory/load.ts:55:6 @@ -23074,7 +23119,7 @@ ) (i32.const 0) ) - (func $core/cpu/cpu/Cpu.loadState (; 252 ;) (; has Stack IR ;) (type $v) + (func $core/cpu/cpu/Cpu.loadState (; 253 ;) (; has Stack IR ;) (type $v) ;;@ core/cpu/cpu.ts:134:4 (set_global $core/cpu/cpu/Cpu.registerA ;;@ core/cpu/cpu.ts:134:20 @@ -23256,7 +23301,7 @@ ) ) ) - (func $core/graphics/graphics/Graphics.loadState (; 253 ;) (; has Stack IR ;) (type $v) + (func $core/graphics/graphics/Graphics.loadState (; 254 ;) (; has Stack IR ;) (type $v) ;;@ core/graphics/graphics.ts:119:4 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter ;;@ core/graphics/graphics.ts:119:36 @@ -23296,7 +23341,7 @@ ) ) ) - (func $core/interrupts/interrupts/Interrupts.loadState (; 254 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/Interrupts.loadState (; 255 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:75:4 (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch ;;@ core/interrupts/interrupts.ts:75:39 @@ -23336,7 +23381,7 @@ ) ) ) - (func $core/joypad/joypad/Joypad.loadState (; 255 ;) (; has Stack IR ;) (type $v) + (func $core/joypad/joypad/Joypad.loadState (; 256 ;) (; has Stack IR ;) (type $v) ;;@ core/joypad/joypad.ts:60:11 (call $core/joypad/joypad/Joypad.updateJoypad ;;@ core/joypad/joypad.ts:60:24 @@ -23345,7 +23390,7 @@ ) ) ) - (func $core/memory/memory/Memory.loadState (; 256 ;) (; has Stack IR ;) (type $v) + (func $core/memory/memory/Memory.loadState (; 257 ;) (; has Stack IR ;) (type $v) ;;@ core/memory/memory.ts:119:4 (set_global $core/memory/memory/Memory.currentRomBank ;;@ core/memory/memory.ts:119:28 @@ -23455,7 +23500,7 @@ ) ) ) - (func $core/timers/timers/Timers.loadState (; 257 ;) (; has Stack IR ;) (type $v) + (func $core/timers/timers/Timers.loadState (; 258 ;) (; has Stack IR ;) (type $v) ;;@ core/timers/timers.ts:148:4 (set_global $core/timers/timers/Timers.currentCycles ;;@ core/timers/timers.ts:148:27 @@ -23526,14 +23571,14 @@ ) ) ) - (func $core/sound/sound/clearAudioBuffer (; 258 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/clearAudioBuffer (; 259 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:207:2 (set_global $core/sound/sound/Sound.audioQueueIndex ;;@ core/sound/sound.ts:207:26 (i32.const 0) ) ) - (func $core/sound/sound/Sound.loadState (; 259 ;) (; has Stack IR ;) (type $v) + (func $core/sound/sound/Sound.loadState (; 260 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/sound.ts:133:4 (set_global $core/sound/sound/Sound.frameSequenceCycleCounter ;;@ core/sound/sound.ts:133:38 @@ -23573,7 +23618,7 @@ ;;@ core/sound/sound.ts:137:4 (call $core/sound/sound/clearAudioBuffer) ) - (func $core/sound/channel1/Channel1.loadState (; 260 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel1/Channel1.loadState (; 261 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel1.ts:131:4 (set_global $core/sound/channel1/Channel1.isEnabled ;;@ core/sound/channel1.ts:131:25 @@ -23695,7 +23740,7 @@ ) ) ) - (func $core/sound/channel2/Channel2.loadState (; 261 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel2/Channel2.loadState (; 262 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel2.ts:111:4 (set_global $core/sound/channel2/Channel2.isEnabled ;;@ core/sound/channel2.ts:111:25 @@ -23781,7 +23826,7 @@ ) ) ) - (func $core/sound/channel3/Channel3.loadState (; 262 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel3/Channel3.loadState (; 263 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel3.ts:105:4 (set_global $core/sound/channel3/Channel3.isEnabled ;;@ core/sound/channel3.ts:105:25 @@ -23831,7 +23876,7 @@ ) ) ) - (func $core/sound/channel4/Channel4.loadState (; 263 ;) (; has Stack IR ;) (type $v) + (func $core/sound/channel4/Channel4.loadState (; 264 ;) (; has Stack IR ;) (type $v) ;;@ core/sound/channel4.ts:130:4 (set_global $core/sound/channel4/Channel4.isEnabled ;;@ core/sound/channel4.ts:130:25 @@ -23905,7 +23950,7 @@ ) ) ) - (func $core/core/loadState (; 264 ;) (; has Stack IR ;) (type $v) + (func $core/core/loadState (; 265 ;) (; has Stack IR ;) (type $v) ;;@ core/core.ts:406:6 (call $core/cpu/cpu/Cpu.loadState) ;;@ core/core.ts:407:11 @@ -23934,7 +23979,7 @@ (i32.const 0) ) ) - (func $core/core/hasCoreStarted (; 265 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/core/hasCoreStarted (; 266 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/core.ts:32:2 (if ;;@ core/core.ts:32:6 @@ -23945,7 +23990,7 @@ ) (i32.const 0) ) - (func $core/joypad/joypad/_getJoypadButtonStateFromButtonId (; 266 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $core/joypad/joypad/_getJoypadButtonStateFromButtonId (; 267 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (block $case8|0 (block $case7|0 @@ -24029,7 +24074,7 @@ ;;@ core/joypad/joypad.ts:251:13 (i32.const 0) ) - (func $core/joypad/joypad/_setJoypadButtonStateFromButtonId (; 267 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $core/joypad/joypad/_setJoypadButtonStateFromButtonId (; 268 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) ;;@ core/joypad/joypad.ts:256:2 (block $break|0 @@ -24142,7 +24187,7 @@ ) ) ) - (func $core/interrupts/interrupts/requestJoypadInterrupt (; 268 ;) (; has Stack IR ;) (type $v) + (func $core/interrupts/interrupts/requestJoypadInterrupt (; 269 ;) (; has Stack IR ;) (type $v) ;;@ core/interrupts/interrupts.ts:232:2 (set_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested ;;@ core/interrupts/interrupts.ts:232:42 @@ -24153,7 +24198,7 @@ (i32.const 4) ) ) - (func $core/joypad/joypad/_pressJoypadButton (; 269 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/_pressJoypadButton (; 270 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) ;;@ core/joypad/joypad.ts:186:2 @@ -24250,7 +24295,7 @@ ) ) ) - (func $core/joypad/joypad/_releaseJoypadButton (; 270 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/joypad/joypad/_releaseJoypadButton (; 271 ;) (; has Stack IR ;) (type $iv) (param $0 i32) ;;@ core/joypad/joypad.ts:229:2 (call $core/joypad/joypad/_setJoypadButtonStateFromButtonId (get_local $0) @@ -24258,7 +24303,7 @@ (i32.const 0) ) ) - (func $core/joypad/joypad/setJoypadState (; 271 ;) (; has Stack IR ;) (type $iiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) + (func $core/joypad/joypad/setJoypadState (; 272 ;) (; has Stack IR ;) (type $iiiiiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) ;;@ core/joypad/joypad.ts:135:2 (if ;;@ core/joypad/joypad.ts:135:6 @@ -24412,58 +24457,58 @@ ) ) ) - (func $core/debug/debug-cpu/getRegisterA (; 272 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterA (; 273 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:6:13 (get_global $core/cpu/cpu/Cpu.registerA) ) - (func $core/debug/debug-cpu/getRegisterB (; 273 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterB (; 274 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:10:13 (get_global $core/cpu/cpu/Cpu.registerB) ) - (func $core/debug/debug-cpu/getRegisterC (; 274 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterC (; 275 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:14:13 (get_global $core/cpu/cpu/Cpu.registerC) ) - (func $core/debug/debug-cpu/getRegisterD (; 275 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterD (; 276 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:18:13 (get_global $core/cpu/cpu/Cpu.registerD) ) - (func $core/debug/debug-cpu/getRegisterE (; 276 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterE (; 277 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:22:13 (get_global $core/cpu/cpu/Cpu.registerE) ) - (func $core/debug/debug-cpu/getRegisterH (; 277 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterH (; 278 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:26:13 (get_global $core/cpu/cpu/Cpu.registerH) ) - (func $core/debug/debug-cpu/getRegisterL (; 278 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterL (; 279 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:30:13 (get_global $core/cpu/cpu/Cpu.registerL) ) - (func $core/debug/debug-cpu/getRegisterF (; 279 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getRegisterF (; 280 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:34:13 (get_global $core/cpu/cpu/Cpu.registerF) ) - (func $core/debug/debug-cpu/getProgramCounter (; 280 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getProgramCounter (; 281 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:38:13 (get_global $core/cpu/cpu/Cpu.programCounter) ) - (func $core/debug/debug-cpu/getStackPointer (; 281 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getStackPointer (; 282 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:42:13 (get_global $core/cpu/cpu/Cpu.stackPointer) ) - (func $core/debug/debug-cpu/getOpcodeAtProgramCounter (; 282 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-cpu/getOpcodeAtProgramCounter (; 283 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-cpu.ts:46:56 (call $core/memory/load/eightBitLoadFromGBMemory ;;@ core/debug/debug-cpu.ts:46:38 (get_global $core/cpu/cpu/Cpu.programCounter) ) ) - (func $core/debug/debug-graphics/getLY (; 283 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-graphics/getLY (; 284 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-graphics.ts:19:18 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) - (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory (; 284 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory (; 285 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -24895,7 +24940,7 @@ ) ) ) - (func $core/graphics/tiles/drawPixelsFromLineOfTile|trampoline (; 285 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) + (func $core/graphics/tiles/drawPixelsFromLineOfTile|trampoline (; 286 ;) (; has Stack IR ;) (type $iiiiiiiiiiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (result i32) (block $3of3 (block $2of3 (block $1of3 @@ -24941,7 +24986,7 @@ (get_local $12) ) ) - (func $core/debug/debug-graphics/drawTileDataToWasmMemory (; 286 ;) (; has Stack IR ;) (type $v) + (func $core/debug/debug-graphics/drawTileDataToWasmMemory (; 287 ;) (; has Stack IR ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -25150,19 +25195,19 @@ ) ) ) - (func $core/debug/debug-timer/getDIV (; 287 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getDIV (; 288 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:5:16 (get_global $core/timers/timers/Timers.dividerRegister) ) - (func $core/debug/debug-timer/getTIMA (; 288 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTIMA (; 289 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:9:16 (get_global $core/timers/timers/Timers.timerCounter) ) - (func $core/debug/debug-timer/getTMA (; 289 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTMA (; 290 ;) (; has Stack IR ;) (type $i) (result i32) ;;@ core/debug/debug-timer.ts:13:16 (get_global $core/timers/timers/Timers.timerModulo) ) - (func $core/debug/debug-timer/getTAC (; 290 ;) (; has Stack IR ;) (type $i) (result i32) + (func $core/debug/debug-timer/getTAC (; 291 ;) (; has Stack IR ;) (type $i) (result i32) (local $0 i32) ;;@ core/debug/debug-timer.ts:17:2 (set_local $0 @@ -25185,7 +25230,7 @@ ) (get_local $0) ) - (func $start (; 291 ;) (; has Stack IR ;) (type $v) + (func $start (; 292 ;) (; has Stack IR ;) (type $v) ;;@ core/core.ts:25:0 (if ;;@ core/core.ts:25:4 @@ -25207,7 +25252,7 @@ ) ) ) - (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory|trampoline (; 292 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $core/debug/debug-graphics/drawBackgroundMapToWasmMemory|trampoline (; 293 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (block $1of1 (block $0of1 (block $outOfRange @@ -25226,7 +25271,7 @@ (get_local $0) ) ) - (func $~setargc (; 293 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $~setargc (; 294 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (set_global $~argc (get_local $0) ) From ce3231cc3a0a5f8ae4335423177ca1574c58421e Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sun, 18 Nov 2018 00:07:17 -0800 Subject: [PATCH 12/18] Found what broke Pokemon Yellow :) --- core/interrupts/interrupts.ts | 4 +- dist/core/core.untouched.wasm | Bin 41917 -> 41899 bytes dist/core/core.untouched.wast | 647 +++++++++++++++++----------------- 3 files changed, 319 insertions(+), 332 deletions(-) diff --git a/core/interrupts/interrupts.ts b/core/interrupts/interrupts.ts index bb323c3f..d03831df 100644 --- a/core/interrupts/interrupts.ts +++ b/core/interrupts/interrupts.ts @@ -164,7 +164,9 @@ function _handleInterrupt(bitPosition: i32): void { // Push the next instruction, not the halt itself (TCAGBD). Cpu.stackPointer = Cpu.stackPointer - 2; if (Cpu.isHalted()) { - sixteenBitStoreIntoGBMemory(Cpu.stackPointer, Cpu.programCounter + 1); + // TODO: This breaks Pokemon Yellow, And OG Link's awakening. Find out why... + // sixteenBitStoreIntoGBMemory(Cpu.stackPointer, Cpu.programCounter + 1); + sixteenBitStoreIntoGBMemory(Cpu.stackPointer, Cpu.programCounter); } else { sixteenBitStoreIntoGBMemory(Cpu.stackPointer, Cpu.programCounter); } diff --git a/dist/core/core.untouched.wasm b/dist/core/core.untouched.wasm index fd2f2646cb8524e6a316fc539add8a518c904200..2c1aeaec586d1436dee5767838f9d516069b9eb6 100644 GIT binary patch delta 36 scmdmcoN4uOrVVL)jAu5d^BoUmY?`c}qQ@bnY@=)|@QiVDd5W7o00=4!@&Et; delta 54 zcmZ2|oN4cIrVVL)jQ2LD^BoUmoHAKIMNf*wLD@#x){!yG@&AA3LV;(DtROy+=H8r| H;${y3CL0oE diff --git a/dist/core/core.untouched.wast b/dist/core/core.untouched.wast index f6ddb1e1..2d93a784 100644 --- a/dist/core/core.untouched.wast +++ b/dist/core/core.untouched.wast @@ -4955,33 +4955,33 @@ ) (func $core/interrupts/interrupts/_requestInterrupt (; 57 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (local $1 i32) - ;;@ core/interrupts/interrupts.ts:201:2 + ;;@ core/interrupts/interrupts.ts:203:2 (set_global $core/interrupts/interrupts/Interrupts.interruptsRequestedValue - ;;@ core/interrupts/interrupts.ts:199:2 + ;;@ core/interrupts/interrupts.ts:201:2 (tee_local $1 - ;;@ core/interrupts/interrupts.ts:199:21 + ;;@ core/interrupts/interrupts.ts:201:21 (call $core/helpers/index/setBitOnByte (get_local $0) - ;;@ core/interrupts/interrupts.ts:196:25 + ;;@ core/interrupts/interrupts.ts:198:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65295) ) ) ) ) - ;;@ core/interrupts/interrupts.ts:203:2 + ;;@ core/interrupts/interrupts.ts:205:2 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65295) (get_local $1) ) ) (func $core/interrupts/interrupts/requestLcdInterrupt (; 58 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:222:2 + ;;@ core/interrupts/interrupts.ts:224:2 (set_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested - ;;@ core/interrupts/interrupts.ts:222:39 + ;;@ core/interrupts/interrupts.ts:224:39 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:223:2 + ;;@ core/interrupts/interrupts.ts:225:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 1) ) @@ -10082,102 +10082,102 @@ (i32.const 1) ) (func $core/graphics/lcd/Lcd.updateLcdControl (; 134 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ core/graphics/lcd.ts:65:4 + ;;@ core/graphics/lcd.ts:63:4 (set_global $core/graphics/lcd/Lcd.enabled - ;;@ core/graphics/lcd.ts:65:18 + ;;@ core/graphics/lcd.ts:63:18 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:65:33 + ;;@ core/graphics/lcd.ts:63:33 (i32.const 7) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:66:4 + ;;@ core/graphics/lcd.ts:64:4 (set_global $core/graphics/lcd/Lcd.windowTileMapDisplaySelect - ;;@ core/graphics/lcd.ts:66:37 + ;;@ core/graphics/lcd.ts:64:37 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:66:52 + ;;@ core/graphics/lcd.ts:64:52 (i32.const 6) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:67:4 + ;;@ core/graphics/lcd.ts:65:4 (set_global $core/graphics/lcd/Lcd.windowDisplayEnabled - ;;@ core/graphics/lcd.ts:67:31 + ;;@ core/graphics/lcd.ts:65:31 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:67:46 + ;;@ core/graphics/lcd.ts:65:46 (i32.const 5) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:68:4 + ;;@ core/graphics/lcd.ts:66:4 (set_global $core/graphics/lcd/Lcd.bgWindowTileDataSelect - ;;@ core/graphics/lcd.ts:68:33 + ;;@ core/graphics/lcd.ts:66:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:68:48 + ;;@ core/graphics/lcd.ts:66:48 (i32.const 4) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:69:4 + ;;@ core/graphics/lcd.ts:67:4 (set_global $core/graphics/lcd/Lcd.bgTileMapDisplaySelect - ;;@ core/graphics/lcd.ts:69:33 + ;;@ core/graphics/lcd.ts:67:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:69:48 + ;;@ core/graphics/lcd.ts:67:48 (i32.const 3) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:70:4 + ;;@ core/graphics/lcd.ts:68:4 (set_global $core/graphics/lcd/Lcd.tallSpriteSize - ;;@ core/graphics/lcd.ts:70:25 + ;;@ core/graphics/lcd.ts:68:25 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:70:40 + ;;@ core/graphics/lcd.ts:68:40 (i32.const 2) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:71:4 + ;;@ core/graphics/lcd.ts:69:4 (set_global $core/graphics/lcd/Lcd.spriteDisplayEnable - ;;@ core/graphics/lcd.ts:71:30 + ;;@ core/graphics/lcd.ts:69:30 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:71:45 + ;;@ core/graphics/lcd.ts:69:45 (i32.const 1) (get_local $0) ) ) - ;;@ core/graphics/lcd.ts:72:4 + ;;@ core/graphics/lcd.ts:70:4 (set_global $core/graphics/lcd/Lcd.bgDisplayEnabled - ;;@ core/graphics/lcd.ts:72:27 + ;;@ core/graphics/lcd.ts:70:27 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:72:42 + ;;@ core/graphics/lcd.ts:70:42 (i32.const 0) (get_local $0) ) ) ) (func $core/graphics/lcd/Lcd.updateLcdStatus (; 135 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ core/graphics/lcd.ts:35:4 + ;;@ core/graphics/lcd.ts:34:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65345) - ;;@ core/graphics/lcd.ts:33:12 + ;;@ core/graphics/lcd.ts:32:12 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:33:25 + ;;@ core/graphics/lcd.ts:32:25 (i32.const 7) - ;;@ core/graphics/lcd.ts:30:12 + ;;@ core/graphics/lcd.ts:29:12 (i32.or - ;;@ core/graphics/lcd.ts:28:33 + ;;@ core/graphics/lcd.ts:27:33 (i32.and (get_local $0) - ;;@ core/graphics/lcd.ts:28:41 + ;;@ core/graphics/lcd.ts:27:41 (i32.const 248) ) - ;;@ core/graphics/lcd.ts:29:39 + ;;@ core/graphics/lcd.ts:28:39 (i32.and - ;;@ core/graphics/lcd.ts:27:32 + ;;@ core/graphics/lcd.ts:26:32 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65345) ) - ;;@ core/graphics/lcd.ts:29:58 + ;;@ core/graphics/lcd.ts:28:58 (i32.const 7) ) ) @@ -10572,12 +10572,12 @@ ) ) (func $core/interrupts/interrupts/requestTimerInterrupt (; 143 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:227:2 + ;;@ core/interrupts/interrupts.ts:229:2 (set_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested - ;;@ core/interrupts/interrupts.ts:227:41 + ;;@ core/interrupts/interrupts.ts:229:41 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:228:2 + ;;@ core/interrupts/interrupts.ts:230:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 2) ) @@ -11054,38 +11054,38 @@ (local $2 i32) (block $folding-inner1 (block $folding-inner0 - ;;@ core/memory/writeTraps.ts:21:2 + ;;@ core/memory/writeTraps.ts:20:2 (if - ;;@ core/memory/writeTraps.ts:21:6 + ;;@ core/memory/writeTraps.ts:20:6 (i32.eq (get_local $0) (i32.const 65357) ) - ;;@ core/memory/writeTraps.ts:21:48 + ;;@ core/memory/writeTraps.ts:20:48 (block - ;;@ core/memory/writeTraps.ts:23:4 + ;;@ core/memory/writeTraps.ts:22:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65357) - ;;@ core/memory/writeTraps.ts:23:61 + ;;@ core/memory/writeTraps.ts:22:61 (i32.and (get_local $1) - ;;@ core/memory/writeTraps.ts:23:69 + ;;@ core/memory/writeTraps.ts:22:69 (i32.const 1) ) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:34:2 + ;;@ core/memory/writeTraps.ts:33:2 (if - ;;@ core/memory/writeTraps.ts:34:6 + ;;@ core/memory/writeTraps.ts:33:6 (i32.lt_s (get_local $0) (i32.const 32768) ) - ;;@ core/memory/writeTraps.ts:34:33 + ;;@ core/memory/writeTraps.ts:33:33 (block - ;;@ core/memory/writeTraps.ts:35:4 + ;;@ core/memory/writeTraps.ts:34:4 (call $core/memory/banking/handleBanking (get_local $0) (get_local $1) @@ -11093,7 +11093,7 @@ (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:41:6 + ;;@ core/memory/writeTraps.ts:40:6 (if (tee_local $2 (i32.ge_s @@ -11102,7 +11102,7 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:41:36 + ;;@ core/memory/writeTraps.ts:40:36 (i32.lt_s (get_local $0) (i32.const 40960) @@ -11112,7 +11112,7 @@ (br_if $folding-inner0 (get_local $2) ) - ;;@ core/memory/writeTraps.ts:60:6 + ;;@ core/memory/writeTraps.ts:59:6 (if (tee_local $2 (i32.ge_s @@ -11121,24 +11121,24 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:60:42 + ;;@ core/memory/writeTraps.ts:59:42 (i32.lt_s (get_local $0) (i32.const 65024) ) ) ) - ;;@ core/memory/writeTraps.ts:60:2 + ;;@ core/memory/writeTraps.ts:59:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:60:83 + ;;@ core/memory/writeTraps.ts:59:83 (block - ;;@ core/memory/writeTraps.ts:62:4 + ;;@ core/memory/writeTraps.ts:61:4 (call $core/memory/store/eightBitStoreIntoGBMemory - ;;@ core/memory/writeTraps.ts:61:26 + ;;@ core/memory/writeTraps.ts:60:26 (i32.add (get_local $0) - ;;@ core/memory/writeTraps.ts:61:35 + ;;@ core/memory/writeTraps.ts:60:35 (i32.const -8192) ) (get_local $1) @@ -11146,7 +11146,7 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:71:6 + ;;@ core/memory/writeTraps.ts:70:6 (if (tee_local $2 (i32.ge_s @@ -11155,30 +11155,30 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:71:50 + ;;@ core/memory/writeTraps.ts:70:50 (i32.le_s (get_local $0) (i32.const 65183) ) ) ) - ;;@ core/memory/writeTraps.ts:71:2 + ;;@ core/memory/writeTraps.ts:70:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:71:102 + ;;@ core/memory/writeTraps.ts:70:102 (block (br_if $folding-inner1 - ;;@ core/memory/writeTraps.ts:74:8 + ;;@ core/memory/writeTraps.ts:73:8 (i32.lt_s (get_global $core/graphics/lcd/Lcd.currentLcdMode) - ;;@ core/memory/writeTraps.ts:74:29 + ;;@ core/memory/writeTraps.ts:73:29 (i32.const 2) ) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:84:6 + ;;@ core/memory/writeTraps.ts:83:6 (if (tee_local $2 (i32.ge_s @@ -11187,7 +11187,7 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:84:49 + ;;@ core/memory/writeTraps.ts:83:49 (i32.le_s (get_local $0) (i32.const 65279) @@ -11197,34 +11197,34 @@ (br_if $folding-inner1 (get_local $2) ) - ;;@ core/memory/writeTraps.ts:90:6 + ;;@ core/memory/writeTraps.ts:89:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:90:16 + ;;@ core/memory/writeTraps.ts:89:16 (i32.const 65296) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:90:26 + ;;@ core/memory/writeTraps.ts:89:26 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:90:36 + ;;@ core/memory/writeTraps.ts:89:36 (i32.const 65318) ) ) ) - ;;@ core/memory/writeTraps.ts:90:2 + ;;@ core/memory/writeTraps.ts:89:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:90:44 + ;;@ core/memory/writeTraps.ts:89:44 (block - ;;@ core/memory/writeTraps.ts:91:4 + ;;@ core/memory/writeTraps.ts:90:4 (call $core/sound/sound/batchProcessAudio) - ;;@ core/memory/writeTraps.ts:92:48 + ;;@ core/memory/writeTraps.ts:91:48 (return - ;;@ core/memory/writeTraps.ts:92:11 + ;;@ core/memory/writeTraps.ts:91:11 (call $core/sound/registers/SoundRegisterWriteTraps (get_local $0) (get_local $1) @@ -11232,31 +11232,31 @@ ) ) ) - ;;@ core/memory/writeTraps.ts:97:6 + ;;@ core/memory/writeTraps.ts:96:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:97:16 + ;;@ core/memory/writeTraps.ts:96:16 (i32.const 65328) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:97:26 + ;;@ core/memory/writeTraps.ts:96:26 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:97:36 + ;;@ core/memory/writeTraps.ts:96:36 (i32.const 65343) ) ) ) - ;;@ core/memory/writeTraps.ts:97:2 + ;;@ core/memory/writeTraps.ts:96:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:97:44 + ;;@ core/memory/writeTraps.ts:96:44 (call $core/sound/sound/batchProcessAudio) ) - ;;@ core/memory/writeTraps.ts:102:6 + ;;@ core/memory/writeTraps.ts:101:6 (if (tee_local $2 (i32.ge_s @@ -11265,106 +11265,106 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:102:48 + ;;@ core/memory/writeTraps.ts:101:48 (i32.le_s (get_local $0) (i32.const 65355) ) ) ) - ;;@ core/memory/writeTraps.ts:102:2 + ;;@ core/memory/writeTraps.ts:101:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:102:90 + ;;@ core/memory/writeTraps.ts:101:90 (block - ;;@ core/memory/writeTraps.ts:106:4 + ;;@ core/memory/writeTraps.ts:105:4 (if - ;;@ core/memory/writeTraps.ts:106:8 + ;;@ core/memory/writeTraps.ts:105:8 (i32.eq (get_local $0) (i32.const 65344) ) - ;;@ core/memory/writeTraps.ts:106:49 + ;;@ core/memory/writeTraps.ts:105:49 (block - ;;@ core/memory/writeTraps.ts:108:10 + ;;@ core/memory/writeTraps.ts:107:10 (call $core/graphics/lcd/Lcd.updateLcdControl (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:112:4 + ;;@ core/memory/writeTraps.ts:111:4 (if - ;;@ core/memory/writeTraps.ts:112:8 + ;;@ core/memory/writeTraps.ts:111:8 (i32.eq (get_local $0) (i32.const 65345) ) - ;;@ core/memory/writeTraps.ts:112:48 + ;;@ core/memory/writeTraps.ts:111:48 (block - ;;@ core/memory/writeTraps.ts:114:10 + ;;@ core/memory/writeTraps.ts:113:10 (call $core/graphics/lcd/Lcd.updateLcdStatus (get_local $1) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:119:4 + ;;@ core/memory/writeTraps.ts:118:4 (if - ;;@ core/memory/writeTraps.ts:119:8 + ;;@ core/memory/writeTraps.ts:118:8 (i32.eq (get_local $0) (i32.const 65348) ) - ;;@ core/memory/writeTraps.ts:119:60 + ;;@ core/memory/writeTraps.ts:118:60 (block - ;;@ core/memory/writeTraps.ts:120:6 + ;;@ core/memory/writeTraps.ts:119:6 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/memory/writeTraps.ts:120:34 + ;;@ core/memory/writeTraps.ts:119:34 (i32.const 0) ) - ;;@ core/memory/writeTraps.ts:121:6 + ;;@ core/memory/writeTraps.ts:120:6 (call $core/memory/store/eightBitStoreIntoGBMemory (get_local $0) - ;;@ core/memory/writeTraps.ts:121:40 + ;;@ core/memory/writeTraps.ts:120:40 (i32.const 0) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:126:4 + ;;@ core/memory/writeTraps.ts:125:4 (if - ;;@ core/memory/writeTraps.ts:126:8 + ;;@ core/memory/writeTraps.ts:125:8 (i32.eq (get_local $0) (i32.const 65349) ) - ;;@ core/memory/writeTraps.ts:126:57 + ;;@ core/memory/writeTraps.ts:125:57 (block - ;;@ core/memory/writeTraps.ts:127:6 + ;;@ core/memory/writeTraps.ts:126:6 (set_global $core/graphics/lcd/Lcd.coincidenceCompare (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:134:4 + ;;@ core/memory/writeTraps.ts:133:4 (if - ;;@ core/memory/writeTraps.ts:134:8 + ;;@ core/memory/writeTraps.ts:133:8 (i32.eq (get_local $0) (i32.const 65350) ) - ;;@ core/memory/writeTraps.ts:134:55 + ;;@ core/memory/writeTraps.ts:133:55 (block - ;;@ core/memory/writeTraps.ts:137:6 + ;;@ core/memory/writeTraps.ts:136:6 (call $core/memory/dma/startDmaTransfer (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:142:4 + ;;@ core/memory/writeTraps.ts:141:4 (block $break|0 (block $case3|0 (block $case2|0 @@ -11388,25 +11388,25 @@ (br $break|0) ) ) - ;;@ core/memory/writeTraps.ts:144:8 + ;;@ core/memory/writeTraps.ts:143:8 (set_global $core/graphics/graphics/Graphics.scrollX (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:147:8 + ;;@ core/memory/writeTraps.ts:146:8 (set_global $core/graphics/graphics/Graphics.scrollY (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:150:8 + ;;@ core/memory/writeTraps.ts:149:8 (set_global $core/graphics/graphics/Graphics.windowX (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:153:8 + ;;@ core/memory/writeTraps.ts:152:8 (set_global $core/graphics/graphics/Graphics.windowY (get_local $1) ) @@ -11415,90 +11415,90 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:162:2 + ;;@ core/memory/writeTraps.ts:161:2 (if - ;;@ core/memory/writeTraps.ts:162:6 + ;;@ core/memory/writeTraps.ts:161:6 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:162:17 + ;;@ core/memory/writeTraps.ts:161:17 (get_global $core/memory/memory/Memory.memoryLocationHdmaTrigger) ) - ;;@ core/memory/writeTraps.ts:162:51 + ;;@ core/memory/writeTraps.ts:161:51 (block - ;;@ core/memory/writeTraps.ts:163:4 + ;;@ core/memory/writeTraps.ts:162:4 (call $core/memory/dma/startHdmaTransfer (get_local $1) ) (br $folding-inner1) ) ) - ;;@ core/memory/writeTraps.ts:169:6 + ;;@ core/memory/writeTraps.ts:168:6 (if (i32.eqz (tee_local $2 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:169:17 + ;;@ core/memory/writeTraps.ts:168:17 (get_global $core/memory/memory/Memory.memoryLocationGBCWRAMBank) ) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:169:53 + ;;@ core/memory/writeTraps.ts:168:53 (i32.eq (get_local $0) - ;;@ core/memory/writeTraps.ts:169:64 + ;;@ core/memory/writeTraps.ts:168:64 (get_global $core/memory/memory/Memory.memoryLocationGBCVRAMBank) ) ) ) - ;;@ core/memory/writeTraps.ts:169:2 + ;;@ core/memory/writeTraps.ts:168:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:169:98 + ;;@ core/memory/writeTraps.ts:168:98 (if - ;;@ core/memory/writeTraps.ts:170:8 + ;;@ core/memory/writeTraps.ts:169:8 (get_global $core/memory/memory/Memory.isHblankHdmaActive) (block - ;;@ core/memory/writeTraps.ts:172:8 + ;;@ core/memory/writeTraps.ts:171:8 (if (tee_local $2 - ;;@ core/memory/writeTraps.ts:172:9 + ;;@ core/memory/writeTraps.ts:171:9 (i32.ge_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:172:36 + ;;@ core/memory/writeTraps.ts:171:36 (i32.const 16384) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:172:46 + ;;@ core/memory/writeTraps.ts:171:46 (i32.le_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:172:73 + ;;@ core/memory/writeTraps.ts:171:73 (i32.const 32767) ) ) ) - ;;@ core/memory/writeTraps.ts:172:8 + ;;@ core/memory/writeTraps.ts:171:8 (if (i32.eqz (get_local $2) ) - ;;@ core/memory/writeTraps.ts:173:8 + ;;@ core/memory/writeTraps.ts:172:8 (if (tee_local $2 - ;;@ core/memory/writeTraps.ts:173:9 + ;;@ core/memory/writeTraps.ts:172:9 (i32.ge_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:173:36 + ;;@ core/memory/writeTraps.ts:172:36 (i32.const 53248) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:173:46 + ;;@ core/memory/writeTraps.ts:172:46 (i32.le_s (get_global $core/memory/memory/Memory.hblankHdmaSource) - ;;@ core/memory/writeTraps.ts:173:73 + ;;@ core/memory/writeTraps.ts:172:73 (i32.const 57343) ) ) @@ -11510,30 +11510,30 @@ ) ) ) - ;;@ core/memory/writeTraps.ts:181:6 + ;;@ core/memory/writeTraps.ts:180:6 (if (tee_local $2 (i32.ge_s (get_local $0) - ;;@ core/memory/writeTraps.ts:181:16 + ;;@ core/memory/writeTraps.ts:180:16 (get_global $core/graphics/palette/Palette.memoryLocationBackgroundPaletteIndex) ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:181:64 + ;;@ core/memory/writeTraps.ts:180:64 (i32.le_s (get_local $0) - ;;@ core/memory/writeTraps.ts:181:74 + ;;@ core/memory/writeTraps.ts:180:74 (get_global $core/graphics/palette/Palette.memoryLocationSpritePaletteData) ) ) ) - ;;@ core/memory/writeTraps.ts:181:2 + ;;@ core/memory/writeTraps.ts:180:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:181:115 + ;;@ core/memory/writeTraps.ts:180:115 (block - ;;@ core/memory/writeTraps.ts:183:4 + ;;@ core/memory/writeTraps.ts:182:4 (call $core/graphics/palette/writeColorPaletteToMemory (get_local $0) (get_local $1) @@ -11541,7 +11541,7 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:188:6 + ;;@ core/memory/writeTraps.ts:187:6 (if (tee_local $2 (i32.ge_s @@ -11550,21 +11550,21 @@ ) ) (set_local $2 - ;;@ core/memory/writeTraps.ts:188:56 + ;;@ core/memory/writeTraps.ts:187:56 (i32.le_s (get_local $0) (i32.const 65287) ) ) ) - ;;@ core/memory/writeTraps.ts:188:2 + ;;@ core/memory/writeTraps.ts:187:2 (if (get_local $2) - ;;@ core/memory/writeTraps.ts:188:101 + ;;@ core/memory/writeTraps.ts:187:101 (block - ;;@ core/memory/writeTraps.ts:190:4 + ;;@ core/memory/writeTraps.ts:189:4 (call $core/timers/timers/batchProcessTimers) - ;;@ core/memory/writeTraps.ts:192:4 + ;;@ core/memory/writeTraps.ts:191:4 (block $break|1 (block $case3|1 (block $case2|1 @@ -11588,25 +11588,25 @@ (br $break|1) ) ) - ;;@ core/memory/writeTraps.ts:194:15 + ;;@ core/memory/writeTraps.ts:193:15 (call $core/timers/timers/Timers.updateDividerRegister (get_local $1) ) (br $folding-inner1) ) - ;;@ core/memory/writeTraps.ts:197:15 + ;;@ core/memory/writeTraps.ts:196:15 (call $core/timers/timers/Timers.updateTimerCounter (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:200:15 + ;;@ core/memory/writeTraps.ts:199:15 (call $core/timers/timers/Timers.updateTimerModulo (get_local $1) ) (br $folding-inner0) ) - ;;@ core/memory/writeTraps.ts:203:15 + ;;@ core/memory/writeTraps.ts:202:15 (call $core/timers/timers/Timers.updateTimerControl (get_local $1) ) @@ -11615,44 +11615,44 @@ (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:211:2 + ;;@ core/memory/writeTraps.ts:210:2 (if - ;;@ core/memory/writeTraps.ts:211:6 + ;;@ core/memory/writeTraps.ts:210:6 (i32.eq (get_local $0) (i32.const 65280) ) - ;;@ core/memory/writeTraps.ts:211:54 + ;;@ core/memory/writeTraps.ts:210:54 (call $core/joypad/joypad/Joypad.updateJoypad (get_local $1) ) ) - ;;@ core/memory/writeTraps.ts:216:2 + ;;@ core/memory/writeTraps.ts:215:2 (if - ;;@ core/memory/writeTraps.ts:216:6 + ;;@ core/memory/writeTraps.ts:215:6 (i32.eq (get_local $0) (i32.const 65295) ) - ;;@ core/memory/writeTraps.ts:216:60 + ;;@ core/memory/writeTraps.ts:215:60 (block - ;;@ core/memory/writeTraps.ts:217:15 + ;;@ core/memory/writeTraps.ts:216:15 (call $core/interrupts/interrupts/Interrupts.updateInterruptRequested (get_local $1) ) (br $folding-inner0) ) ) - ;;@ core/memory/writeTraps.ts:220:2 + ;;@ core/memory/writeTraps.ts:219:2 (if - ;;@ core/memory/writeTraps.ts:220:6 + ;;@ core/memory/writeTraps.ts:219:6 (i32.eq (get_local $0) (i32.const 65535) ) - ;;@ core/memory/writeTraps.ts:220:60 + ;;@ core/memory/writeTraps.ts:219:60 (block - ;;@ core/memory/writeTraps.ts:221:15 + ;;@ core/memory/writeTraps.ts:220:15 (call $core/interrupts/interrupts/Interrupts.updateInterruptEnabled (get_local $1) ) @@ -11667,7 +11667,7 @@ (i32.const 1) ) ) - ;;@ core/memory/writeTraps.ts:25:11 + ;;@ core/memory/writeTraps.ts:24:11 (i32.const 0) ) (func $core/memory/store/eightBitStoreIntoGBMemoryWithTraps (; 155 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) @@ -11892,12 +11892,12 @@ ) ) (func $core/interrupts/interrupts/requestVBlankInterrupt (; 158 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:217:2 + ;;@ core/interrupts/interrupts.ts:219:2 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested - ;;@ core/interrupts/interrupts.ts:217:42 + ;;@ core/interrupts/interrupts.ts:219:42 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:218:2 + ;;@ core/interrupts/interrupts.ts:220:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 0) ) @@ -11908,139 +11908,139 @@ (local $2 i32) (local $3 i32) (local $4 i32) - ;;@ core/graphics/lcd.ts:79:2 + ;;@ core/graphics/lcd.ts:77:2 (if - ;;@ core/graphics/lcd.ts:79:6 + ;;@ core/graphics/lcd.ts:77:6 (i32.eqz - ;;@ core/graphics/lcd.ts:79:7 + ;;@ core/graphics/lcd.ts:77:7 (get_global $core/graphics/lcd/Lcd.enabled) ) - ;;@ core/graphics/lcd.ts:79:20 + ;;@ core/graphics/lcd.ts:77:20 (block - ;;@ core/graphics/lcd.ts:81:4 + ;;@ core/graphics/lcd.ts:79:4 (set_global $core/graphics/graphics/Graphics.scanlineCycleCounter - ;;@ core/graphics/lcd.ts:81:36 + ;;@ core/graphics/lcd.ts:79:36 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:82:4 + ;;@ core/graphics/lcd.ts:80:4 (set_global $core/graphics/graphics/Graphics.scanlineRegister - ;;@ core/graphics/lcd.ts:82:32 + ;;@ core/graphics/lcd.ts:80:32 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:83:4 + ;;@ core/graphics/lcd.ts:81:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65348) - ;;@ core/graphics/lcd.ts:83:71 + ;;@ core/graphics/lcd.ts:81:71 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:89:4 + ;;@ core/graphics/lcd.ts:87:4 (set_local $3 - ;;@ core/graphics/lcd.ts:89:16 + ;;@ core/graphics/lcd.ts:87:16 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:89:31 + ;;@ core/graphics/lcd.ts:87:31 (i32.const 0) - ;;@ core/graphics/lcd.ts:88:16 + ;;@ core/graphics/lcd.ts:86:16 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:88:31 + ;;@ core/graphics/lcd.ts:86:31 (i32.const 1) - ;;@ core/graphics/lcd.ts:87:25 + ;;@ core/graphics/lcd.ts:85:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65345) ) ) ) ) - ;;@ core/graphics/lcd.ts:90:4 + ;;@ core/graphics/lcd.ts:88:4 (set_global $core/graphics/lcd/Lcd.currentLcdMode - ;;@ core/graphics/lcd.ts:90:25 + ;;@ core/graphics/lcd.ts:88:25 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:93:4 + ;;@ core/graphics/lcd.ts:91:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65345) (get_local $3) ) - ;;@ core/graphics/lcd.ts:94:4 + ;;@ core/graphics/lcd.ts:92:4 (return) ) ) - ;;@ core/graphics/lcd.ts:99:2 + ;;@ core/graphics/lcd.ts:97:2 (set_local $1 - ;;@ core/graphics/lcd.ts:99:21 + ;;@ core/graphics/lcd.ts:97:21 (get_global $core/graphics/lcd/Lcd.currentLcdMode) ) - ;;@ core/graphics/lcd.ts:105:2 + ;;@ core/graphics/lcd.ts:103:2 (if - ;;@ core/graphics/lcd.ts:105:6 + ;;@ core/graphics/lcd.ts:103:6 (i32.ge_s - ;;@ core/graphics/lcd.ts:98:2 + ;;@ core/graphics/lcd.ts:96:2 (tee_local $3 - ;;@ core/graphics/lcd.ts:98:30 + ;;@ core/graphics/lcd.ts:96:30 (get_global $core/graphics/graphics/Graphics.scanlineRegister) ) - ;;@ core/graphics/lcd.ts:105:26 + ;;@ core/graphics/lcd.ts:103:26 (i32.const 144) ) - ;;@ core/graphics/lcd.ts:105:31 + ;;@ core/graphics/lcd.ts:103:31 (set_local $2 - ;;@ core/graphics/lcd.ts:107:17 + ;;@ core/graphics/lcd.ts:105:17 (i32.const 1) ) - ;;@ core/graphics/lcd.ts:108:9 + ;;@ core/graphics/lcd.ts:106:9 (if - ;;@ core/graphics/lcd.ts:109:8 + ;;@ core/graphics/lcd.ts:107:8 (i32.ge_s (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) - ;;@ core/graphics/lcd.ts:109:50 + ;;@ core/graphics/lcd.ts:107:50 (call $core/graphics/graphics/Graphics.MIN_CYCLES_SPRITES_LCD_MODE) ) - ;;@ core/graphics/lcd.ts:109:81 + ;;@ core/graphics/lcd.ts:107:81 (set_local $2 - ;;@ core/graphics/lcd.ts:111:19 + ;;@ core/graphics/lcd.ts:109:19 (i32.const 2) ) - ;;@ core/graphics/lcd.ts:112:11 + ;;@ core/graphics/lcd.ts:110:11 (if - ;;@ core/graphics/lcd.ts:112:15 + ;;@ core/graphics/lcd.ts:110:15 (i32.ge_s (get_global $core/graphics/graphics/Graphics.scanlineCycleCounter) - ;;@ core/graphics/lcd.ts:112:57 + ;;@ core/graphics/lcd.ts:110:57 (call $core/graphics/graphics/Graphics.MIN_CYCLES_TRANSFER_DATA_LCD_MODE) ) - ;;@ core/graphics/lcd.ts:112:94 + ;;@ core/graphics/lcd.ts:110:94 (set_local $2 - ;;@ core/graphics/lcd.ts:114:19 + ;;@ core/graphics/lcd.ts:112:19 (i32.const 3) ) ) ) ) - ;;@ core/graphics/lcd.ts:118:2 + ;;@ core/graphics/lcd.ts:116:2 (if - ;;@ core/graphics/lcd.ts:118:6 + ;;@ core/graphics/lcd.ts:116:6 (i32.ne (get_local $1) (get_local $2) ) - ;;@ core/graphics/lcd.ts:118:30 + ;;@ core/graphics/lcd.ts:116:30 (block - ;;@ core/graphics/lcd.ts:120:4 + ;;@ core/graphics/lcd.ts:118:4 (set_local $0 - ;;@ core/graphics/lcd.ts:120:25 + ;;@ core/graphics/lcd.ts:118:25 (call $core/memory/load/eightBitLoadFromGBMemory (i32.const 65345) ) ) - ;;@ core/graphics/lcd.ts:123:4 + ;;@ core/graphics/lcd.ts:121:4 (set_global $core/graphics/lcd/Lcd.currentLcdMode (get_local $2) ) - ;;@ core/graphics/lcd.ts:125:4 + ;;@ core/graphics/lcd.ts:123:4 (set_local $1 - ;;@ core/graphics/lcd.ts:125:42 + ;;@ core/graphics/lcd.ts:123:42 (i32.const 0) ) - ;;@ core/graphics/lcd.ts:128:4 + ;;@ core/graphics/lcd.ts:126:4 (block $break|0 (block $case3|0 (block $case2|0 @@ -12064,21 +12064,21 @@ ) (br $break|0) ) - ;;@ core/graphics/lcd.ts:132:8 + ;;@ core/graphics/lcd.ts:130:8 (set_local $1 - ;;@ core/graphics/lcd.ts:132:33 + ;;@ core/graphics/lcd.ts:130:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:132:48 + ;;@ core/graphics/lcd.ts:130:48 (i32.const 3) - ;;@ core/graphics/lcd.ts:131:8 + ;;@ core/graphics/lcd.ts:129:8 (tee_local $0 - ;;@ core/graphics/lcd.ts:131:20 + ;;@ core/graphics/lcd.ts:129:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:131:35 + ;;@ core/graphics/lcd.ts:129:35 (i32.const 1) - ;;@ core/graphics/lcd.ts:130:20 + ;;@ core/graphics/lcd.ts:128:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:130:35 + ;;@ core/graphics/lcd.ts:128:35 (i32.const 0) (get_local $0) ) @@ -12086,24 +12086,24 @@ ) ) ) - ;;@ core/graphics/lcd.ts:133:8 + ;;@ core/graphics/lcd.ts:131:8 (br $break|0) ) - ;;@ core/graphics/lcd.ts:137:8 + ;;@ core/graphics/lcd.ts:135:8 (set_local $1 - ;;@ core/graphics/lcd.ts:137:33 + ;;@ core/graphics/lcd.ts:135:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:137:48 + ;;@ core/graphics/lcd.ts:135:48 (i32.const 4) - ;;@ core/graphics/lcd.ts:136:8 + ;;@ core/graphics/lcd.ts:134:8 (tee_local $0 - ;;@ core/graphics/lcd.ts:136:20 + ;;@ core/graphics/lcd.ts:134:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:136:33 + ;;@ core/graphics/lcd.ts:134:33 (i32.const 0) - ;;@ core/graphics/lcd.ts:135:20 + ;;@ core/graphics/lcd.ts:133:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:135:35 + ;;@ core/graphics/lcd.ts:133:35 (i32.const 1) (get_local $0) ) @@ -12111,24 +12111,24 @@ ) ) ) - ;;@ core/graphics/lcd.ts:138:8 + ;;@ core/graphics/lcd.ts:136:8 (br $break|0) ) - ;;@ core/graphics/lcd.ts:142:8 + ;;@ core/graphics/lcd.ts:140:8 (set_local $1 - ;;@ core/graphics/lcd.ts:142:33 + ;;@ core/graphics/lcd.ts:140:33 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:142:48 + ;;@ core/graphics/lcd.ts:140:48 (i32.const 5) - ;;@ core/graphics/lcd.ts:141:8 + ;;@ core/graphics/lcd.ts:139:8 (tee_local $0 - ;;@ core/graphics/lcd.ts:141:20 + ;;@ core/graphics/lcd.ts:139:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:141:33 + ;;@ core/graphics/lcd.ts:139:33 (i32.const 1) - ;;@ core/graphics/lcd.ts:140:20 + ;;@ core/graphics/lcd.ts:138:20 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:140:35 + ;;@ core/graphics/lcd.ts:138:35 (i32.const 0) (get_local $0) ) @@ -12136,55 +12136,55 @@ ) ) ) - ;;@ core/graphics/lcd.ts:143:8 + ;;@ core/graphics/lcd.ts:141:8 (br $break|0) ) - ;;@ core/graphics/lcd.ts:146:8 + ;;@ core/graphics/lcd.ts:144:8 (set_local $0 - ;;@ core/graphics/lcd.ts:146:20 + ;;@ core/graphics/lcd.ts:144:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:146:33 + ;;@ core/graphics/lcd.ts:144:33 (i32.const 1) - ;;@ core/graphics/lcd.ts:145:20 + ;;@ core/graphics/lcd.ts:143:20 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:145:33 + ;;@ core/graphics/lcd.ts:143:33 (i32.const 0) (get_local $0) ) ) ) ) - ;;@ core/graphics/lcd.ts:151:4 + ;;@ core/graphics/lcd.ts:149:4 (if (get_local $1) - ;;@ core/graphics/lcd.ts:151:32 + ;;@ core/graphics/lcd.ts:149:32 (call $core/interrupts/interrupts/requestLcdInterrupt) ) - ;;@ core/graphics/lcd.ts:156:4 + ;;@ core/graphics/lcd.ts:154:4 (if (i32.eqz (get_local $2) ) - ;;@ core/graphics/lcd.ts:156:26 + ;;@ core/graphics/lcd.ts:154:26 (call $core/memory/dma/updateHblankHdma) ) - ;;@ core/graphics/lcd.ts:162:4 + ;;@ core/graphics/lcd.ts:160:4 (if - ;;@ core/graphics/lcd.ts:162:8 + ;;@ core/graphics/lcd.ts:160:8 (i32.eq (get_local $2) - ;;@ core/graphics/lcd.ts:162:23 + ;;@ core/graphics/lcd.ts:160:23 (i32.const 1) ) - ;;@ core/graphics/lcd.ts:162:26 + ;;@ core/graphics/lcd.ts:160:26 (call $core/interrupts/interrupts/requestVBlankInterrupt) ) - ;;@ core/graphics/lcd.ts:168:4 + ;;@ core/graphics/lcd.ts:166:4 (set_local $4 - ;;@ core/graphics/lcd.ts:168:34 + ;;@ core/graphics/lcd.ts:166:34 (get_global $core/graphics/lcd/Lcd.coincidenceCompare) ) - ;;@ core/graphics/lcd.ts:169:8 + ;;@ core/graphics/lcd.ts:167:8 (if (i32.eqz (tee_local $1 @@ -12194,58 +12194,58 @@ ) ) (set_local $1 - ;;@ core/graphics/lcd.ts:169:29 + ;;@ core/graphics/lcd.ts:167:29 (i32.eq (get_local $2) - ;;@ core/graphics/lcd.ts:169:44 + ;;@ core/graphics/lcd.ts:167:44 (i32.const 1) ) ) ) - ;;@ core/graphics/lcd.ts:169:8 + ;;@ core/graphics/lcd.ts:167:8 (if (get_local $1) (set_local $1 - ;;@ core/graphics/lcd.ts:169:50 + ;;@ core/graphics/lcd.ts:167:50 (i32.eq (get_local $3) (get_local $4) ) ) ) - ;;@ core/graphics/lcd.ts:169:4 + ;;@ core/graphics/lcd.ts:167:4 (if (get_local $1) - ;;@ core/graphics/lcd.ts:171:6 + ;;@ core/graphics/lcd.ts:169:6 (if - ;;@ core/graphics/lcd.ts:171:10 + ;;@ core/graphics/lcd.ts:169:10 (call $core/helpers/index/checkBitOnByte - ;;@ core/graphics/lcd.ts:171:25 + ;;@ core/graphics/lcd.ts:169:25 (i32.const 6) - ;;@ core/graphics/lcd.ts:170:6 + ;;@ core/graphics/lcd.ts:168:6 (tee_local $0 - ;;@ core/graphics/lcd.ts:170:18 + ;;@ core/graphics/lcd.ts:168:18 (call $core/helpers/index/setBitOnByte - ;;@ core/graphics/lcd.ts:170:31 + ;;@ core/graphics/lcd.ts:168:31 (i32.const 2) (get_local $0) ) ) ) - ;;@ core/graphics/lcd.ts:171:40 + ;;@ core/graphics/lcd.ts:169:40 (call $core/interrupts/interrupts/requestLcdInterrupt) ) - ;;@ core/graphics/lcd.ts:174:11 + ;;@ core/graphics/lcd.ts:172:11 (set_local $0 - ;;@ core/graphics/lcd.ts:175:18 + ;;@ core/graphics/lcd.ts:173:18 (call $core/helpers/index/resetBitOnByte - ;;@ core/graphics/lcd.ts:175:33 + ;;@ core/graphics/lcd.ts:173:33 (i32.const 2) (get_local $0) ) ) ) - ;;@ core/graphics/lcd.ts:179:4 + ;;@ core/graphics/lcd.ts:177:4 (call $core/memory/store/eightBitStoreIntoGBMemory (i32.const 65345) (get_local $0) @@ -20146,20 +20146,20 @@ (i32.const 4) ) (func $core/interrupts/interrupts/setInterrupts (; 223 ;) (; has Stack IR ;) (type $iv) (param $0 i32) - ;;@ core/interrupts/interrupts.ts:209:2 + ;;@ core/interrupts/interrupts.ts:211:2 (if (i32.and (get_local $0) (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:209:13 + ;;@ core/interrupts/interrupts.ts:211:13 (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitchDelay - ;;@ core/interrupts/interrupts.ts:210:44 + ;;@ core/interrupts/interrupts.ts:212:44 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:211:9 + ;;@ core/interrupts/interrupts.ts:213:9 (set_global $core/interrupts/interrupts/Interrupts.masterInterruptSwitch - ;;@ core/interrupts/interrupts.ts:212:39 + ;;@ core/interrupts/interrupts.ts:214:39 (i32.const 0) ) ) @@ -21597,33 +21597,18 @@ (i32.const 65535) ) ) - ;;@ core/interrupts/interrupts.ts:166:2 - (if + (drop ;;@ core/interrupts/interrupts.ts:166:10 (call $core/cpu/cpu/Cpu.isHalted) - ;;@ core/interrupts/interrupts.ts:166:22 - (call $core/memory/store/sixteenBitStoreIntoGBMemory - ;;@ core/interrupts/interrupts.ts:167:32 - (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/interrupts/interrupts.ts:167:50 - (i32.and - (i32.add - (get_global $core/cpu/cpu/Cpu.programCounter) - ;;@ core/interrupts/interrupts.ts:167:71 - (i32.const 1) - ) - (i32.const 65535) - ) - ) - ;;@ core/interrupts/interrupts.ts:168:9 - (call $core/memory/store/sixteenBitStoreIntoGBMemory - ;;@ core/interrupts/interrupts.ts:169:32 - (get_global $core/cpu/cpu/Cpu.stackPointer) - ;;@ core/interrupts/interrupts.ts:169:50 - (get_global $core/cpu/cpu/Cpu.programCounter) - ) ) - ;;@ core/interrupts/interrupts.ts:175:2 + ;;@ core/interrupts/interrupts.ts:166:22 + (call $core/memory/store/sixteenBitStoreIntoGBMemory + ;;@ core/interrupts/interrupts.ts:169:32 + (get_global $core/cpu/cpu/Cpu.stackPointer) + ;;@ core/interrupts/interrupts.ts:169:50 + (get_global $core/cpu/cpu/Cpu.programCounter) + ) + ;;@ core/interrupts/interrupts.ts:177:2 (block $break|0 (block $case3|0 (block $case2|0 @@ -21642,53 +21627,53 @@ (br $break|0) ) ) - ;;@ core/interrupts/interrupts.ts:177:6 + ;;@ core/interrupts/interrupts.ts:179:6 (set_global $core/interrupts/interrupts/Interrupts.isVBlankInterruptRequested - ;;@ core/interrupts/interrupts.ts:177:46 + ;;@ core/interrupts/interrupts.ts:179:46 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:178:6 + ;;@ core/interrupts/interrupts.ts:180:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:178:27 + ;;@ core/interrupts/interrupts.ts:180:27 (i32.const 64) ) - ;;@ core/interrupts/interrupts.ts:179:6 + ;;@ core/interrupts/interrupts.ts:181:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:181:6 + ;;@ core/interrupts/interrupts.ts:183:6 (set_global $core/interrupts/interrupts/Interrupts.isLcdInterruptRequested - ;;@ core/interrupts/interrupts.ts:181:43 + ;;@ core/interrupts/interrupts.ts:183:43 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:182:6 + ;;@ core/interrupts/interrupts.ts:184:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:182:27 + ;;@ core/interrupts/interrupts.ts:184:27 (i32.const 72) ) - ;;@ core/interrupts/interrupts.ts:183:6 + ;;@ core/interrupts/interrupts.ts:185:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:185:6 + ;;@ core/interrupts/interrupts.ts:187:6 (set_global $core/interrupts/interrupts/Interrupts.isTimerInterruptRequested - ;;@ core/interrupts/interrupts.ts:185:45 + ;;@ core/interrupts/interrupts.ts:187:45 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:186:6 + ;;@ core/interrupts/interrupts.ts:188:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:186:27 + ;;@ core/interrupts/interrupts.ts:188:27 (i32.const 80) ) - ;;@ core/interrupts/interrupts.ts:187:6 + ;;@ core/interrupts/interrupts.ts:189:6 (br $break|0) ) - ;;@ core/interrupts/interrupts.ts:189:6 + ;;@ core/interrupts/interrupts.ts:191:6 (set_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested - ;;@ core/interrupts/interrupts.ts:189:46 + ;;@ core/interrupts/interrupts.ts:191:46 (i32.const 0) ) - ;;@ core/interrupts/interrupts.ts:190:6 + ;;@ core/interrupts/interrupts.ts:192:6 (set_global $core/cpu/cpu/Cpu.programCounter - ;;@ core/interrupts/interrupts.ts:190:27 + ;;@ core/interrupts/interrupts.ts:192:27 (i32.const 96) ) ) @@ -24188,12 +24173,12 @@ ) ) (func $core/interrupts/interrupts/requestJoypadInterrupt (; 269 ;) (; has Stack IR ;) (type $v) - ;;@ core/interrupts/interrupts.ts:232:2 + ;;@ core/interrupts/interrupts.ts:234:2 (set_global $core/interrupts/interrupts/Interrupts.isJoypadInterruptRequested - ;;@ core/interrupts/interrupts.ts:232:42 + ;;@ core/interrupts/interrupts.ts:234:42 (i32.const 1) ) - ;;@ core/interrupts/interrupts.ts:233:2 + ;;@ core/interrupts/interrupts.ts:235:2 (call $core/interrupts/interrupts/_requestInterrupt (i32.const 4) ) From e876109058dd954d580179132179f5c81afd2fad Mon Sep 17 00:00:00 2001 From: Aaron Turner Date: Sun, 18 Nov 2018 17:45:41 -0800 Subject: [PATCH 13/18] Finished Cycle Tracking and some Cleanup --- core/core.ts | 248 +- core/cpu/opcodes.ts | 2 +- core/cycles.ts | 85 + core/execute.ts | 166 + core/index.ts | 13 +- core/legacy.ts | 2 +- demo/debugger/index.js | 8 + dist/core/core.untouched.wasm | Bin 41899 -> 42254 bytes dist/core/core.untouched.wast | 41546 ++++++++++++++++---------------- 9 files changed, 21091 insertions(+), 20979 deletions(-) create mode 100644 core/cycles.ts create mode 100644 core/execute.ts diff --git a/core/core.ts b/core/core.ts index 285d0d47..265c4c6f 100644 --- a/core/core.ts +++ b/core/core.ts @@ -1,23 +1,14 @@ // Imports -import { WASMBOY_STATE_LOCATION } from './constants'; -import { Cpu, initializeCpu, executeOpcode } from './cpu/index'; -import { Graphics, initializeGraphics, initializePalette, updateGraphics, batchProcessGraphics } from './graphics/index'; -import { Interrupts, initializeInterrupts, checkInterrupts } from './interrupts/index'; +import { WASMBOY_WASM_PAGES, WASMBOY_STATE_LOCATION } from './constants'; +import { Config } from './config'; +import { resetCycles } from './cycles'; +import { Cpu, initializeCpu } from './cpu/index'; +import { Graphics, initializeGraphics, initializePalette } from './graphics/index'; +import { Interrupts, initializeInterrupts } from './interrupts/index'; import { Joypad } from './joypad/index'; import { Memory, initializeCartridge, initializeDma, eightBitStoreIntoGBMemory, eightBitLoadFromGBMemory } from './memory/index'; -import { Timers, initializeTimers, updateTimers, batchProcessTimers } from './timers/index'; -import { - Sound, - initializeSound, - Channel1, - Channel2, - Channel3, - Channel4, - updateSound, - getNumberOfSamplesInAudioBuffer -} from './sound/index'; -import { WASMBOY_WASM_PAGES } from './constants'; -import { Config } from './config'; +import { Timers, initializeTimers } from './timers/index'; +import { Sound, initializeSound, Channel1, Channel2, Channel3, Channel4 } from './sound/index'; import { hexLog, log } from './helpers/index'; import { u16Portable } from './portable/portable'; @@ -28,6 +19,9 @@ if (memory.size() < WASMBOY_WASM_PAGES) { // Function to track if the core has started let hasStarted: boolean = false; +export function setHasCoreStarted(value: boolean): void { + hasStarted = value; +} export function hasCoreStarted(): i32 { if (hasStarted) { return 1; @@ -165,214 +159,10 @@ function initialize(): void { } // Reset hasStarted, since we are now reset - hasStarted = false; -} - -// Public funciton to run opcodes until, -// a frame is ready, or error. -// Return values: -// -1 = error -// 0 = render a frame -export function executeFrame(): i32 { - let error: boolean = false; - let numberOfCycles: i32 = -1; - - while (!error && Cpu.currentCycles < Cpu.MAX_CYCLES_PER_FRAME()) { - numberOfCycles = executeStep(); - if (numberOfCycles < 0) { - error = true; - } - } - - // Find our exit reason - if (Cpu.currentCycles >= Cpu.MAX_CYCLES_PER_FRAME()) { - // Render a frame - - // Reset our currentCycles - Cpu.currentCycles -= Cpu.MAX_CYCLES_PER_FRAME(); + setHasCoreStarted(false); - return 0; - } - // TODO: Boot ROM handling - - // There was an error, return -1, and push the program counter back to grab the error opcode - Cpu.programCounter = u16Portable(Cpu.programCounter - 1); - return -1; -} - -// Public Function to run opcodes until, -// a frame is ready, audio bufer is filled, or error -// -1 = error -// 0 = render a frame -// 1 = output audio -export function executeFrameAndCheckAudio(maxAudioBuffer: i32): i32 { - let error: boolean = false; - let numberOfCycles: i32 = -1; - let audioBufferSize: i32 = 1024; - - if (maxAudioBuffer && maxAudioBuffer > 0) { - audioBufferSize = maxAudioBuffer; - } - - while (!error && Cpu.currentCycles < Cpu.MAX_CYCLES_PER_FRAME() && getNumberOfSamplesInAudioBuffer() < audioBufferSize) { - numberOfCycles = executeStep(); - if (numberOfCycles < 0) { - error = true; - } - } - - // Find our exit reason - if (Cpu.currentCycles >= Cpu.MAX_CYCLES_PER_FRAME()) { - // Render a frame - - // Reset our currentCycles - Cpu.currentCycles -= Cpu.MAX_CYCLES_PER_FRAME(); - - return 0; - } - if (getNumberOfSamplesInAudioBuffer() >= audioBufferSize) { - // Output Audio - return 1; - } - - // TODO: Boot ROM handling - - // There was an error, return -1, and push the program counter back to grab the error opcode - Cpu.programCounter = u16Portable(Cpu.programCounter - 1); - return -1; -} - -// Public function to run opcodes until, -// a breakpoint is reached -// -1 = error -// 0 = frame executed -// 1 = reached breakpoint -export function executeFrameUntilBreakpoint(breakpoint: i32): i32 { - let error: boolean = false; - let numberOfCycles: i32 = -1; - - while (!error && Cpu.currentCycles < Cpu.MAX_CYCLES_PER_FRAME() && Cpu.programCounter !== breakpoint) { - numberOfCycles = executeStep(); - if (numberOfCycles < 0) { - error = true; - } - } - - // Find our exit reason - if (Cpu.currentCycles >= Cpu.MAX_CYCLES_PER_FRAME()) { - // Render a frame - - // Reset our currentCycles - Cpu.currentCycles -= Cpu.MAX_CYCLES_PER_FRAME(); - - return 0; - } - if (Cpu.programCounter === breakpoint) { - // breakpoint - return 1; - } - - // TODO: Boot ROM handling - - // There was an error, return -1, and push the program counter back to grab the error opcode - Cpu.programCounter = u16Portable(Cpu.programCounter - 1); - return -1; -} - -// Function to execute an opcode, and update other gameboy hardware. -// http://www.codeslinger.co.uk/pages/projects/gameboy/beginning.html -export function executeStep(): i32 { - // Set has started to 1 since we ran a emulation step - hasStarted = true; - - // Check if we are in the halt bug - if (Cpu.isHaltBug) { - // Need to not increment program counter, - // thus, running the next opcode twice - - // E.g - // 0x76 - halt - // FA 34 12 - ld a,(1234) - // Becomes - // FA FA 34 ld a,(34FA) - // 12 ld (de),a - - let haltBugOpcode: i32 = eightBitLoadFromGBMemory(Cpu.programCounter); - // Execute opcode will handle the actual PC behavior - let haltBugCycles: i32 = executeOpcode(haltBugOpcode); - syncCycles(haltBugCycles); - Cpu.exitHaltAndStop(); - } - - // Interrupts should be handled before reading an opcode - // https://github.com/Gekkio/mooneye-gb/blob/master/docs/accuracy.markdown#what-is-the-exact-timing-of-cpu-servicing-an-interrupt - let interruptCycles: i32 = checkInterrupts(); - if (interruptCycles > 0) { - syncCycles(interruptCycles); - } - - // Get the opcode, and additional bytes to be handled - // Number of cycles defaults to 4, because while we're halted, we run 4 cycles (according to matt :)) - let numberOfCycles: i32 = 4; - let opcode: i32 = 0; - - // If we are not halted or stopped, run instructions - // If we are halted, this will be skipped and just sync the 4 cycles - if (!Cpu.isHalted() && !Cpu.isStopped) { - opcode = eightBitLoadFromGBMemory(Cpu.programCounter); - numberOfCycles = executeOpcode(opcode); - } - - // blarggFixes, don't allow register F to have the bottom nibble - Cpu.registerF = Cpu.registerF & 0xf0; - - // Check if there was an error decoding the opcode - if (numberOfCycles <= 0) { - return numberOfCycles; - } - - // Sync other GB Components with the number of cycles - syncCycles(numberOfCycles); - - return numberOfCycles; -} - -// Sync other GB Components with the number of cycles -export function syncCycles(numberOfCycles: i32): void { - // Check if we did a DMA TRansfer, if we did add the cycles - if (Memory.DMACycles > 0) { - numberOfCycles += Memory.DMACycles; - Memory.DMACycles = 0; - } - - // Finally, Add our number of cycles to the CPU Cycles - Cpu.currentCycles += numberOfCycles; - - // Check other Gameboy components - if (!Cpu.isStopped) { - if (Config.graphicsBatchProcessing) { - // Need to do this, since a lot of things depend on the scanline - // Batch processing will simply return if the number of cycles is too low - Graphics.currentCycles += numberOfCycles; - batchProcessGraphics(); - } else { - updateGraphics(numberOfCycles); - } - - if (Config.audioBatchProcessing) { - Sound.currentCycles += numberOfCycles; - } else { - updateSound(numberOfCycles); - } - } - - if (Config.timersBatchProcessing) { - // Batch processing will simply return if the number of cycles is too low - Timers.currentCycles += numberOfCycles; - batchProcessTimers(); - } else { - updateTimers(numberOfCycles); - } + // Reset our cycles ran + resetCycles(); } // Function to return an address to store into save state memory @@ -398,7 +188,10 @@ export function saveState(): void { Channel4.saveState(); // Reset hasStarted, since we are now reset - hasStarted = false; + setHasCoreStarted(false); + + // Reset our cycles ran + resetCycles(); } // Function to load state from memory for all of our classes @@ -416,5 +209,8 @@ export function loadState(): void { Channel4.loadState(); // Reset hasStarted, since we are now reset - hasStarted = false; + setHasCoreStarted(false); + + // Reset our cycles ran + resetCycles(); } diff --git a/core/cpu/opcodes.ts b/core/cpu/opcodes.ts index 767fcb8b..26e3672d 100644 --- a/core/cpu/opcodes.ts +++ b/core/cpu/opcodes.ts @@ -25,7 +25,7 @@ import { cpARegister, relativeJump } from './instructions'; -import { syncCycles } from '../core'; +import { syncCycles } from '../cycles'; import { Config } from '../config'; import { log, diff --git a/core/cycles.ts b/core/cycles.ts new file mode 100644 index 00000000..607178d9 --- /dev/null +++ b/core/cycles.ts @@ -0,0 +1,85 @@ +// Syncing and Tracking executed cycles + +import { Config } from './config'; +import { Cpu } from './cpu/index'; +import { Graphics, updateGraphics, batchProcessGraphics } from './graphics/index'; +import { Interrupts, checkInterrupts } from './interrupts/index'; +import { Joypad } from './joypad/index'; +import { Memory, eightBitStoreIntoGBMemory, eightBitLoadFromGBMemory } from './memory/index'; +import { Timers, updateTimers, batchProcessTimers } from './timers/index'; +import { Sound, updateSound } from './sound/index'; +import { hexLog, log } from './helpers/index'; +import { u16Portable } from './portable/portable'; + +export class Cycles { + // An even number bewlow the max 32 bit integer + static cyclesPerCycleSet: i32 = 2000000000; + static cycleSets: i32 = 0; + static cycles: i32 = 0; +} + +export function getCyclesPerCycleSet(): i32 { + return Cycles.cyclesPerCycleSet; +} + +export function getCycleSets(): i32 { + return Cycles.cycleSets; +} + +export function getCycles(): i32 { + return Cycles.cycles; +} + +export function trackCyclesRan(numberOfCycles: i32): void { + Cycles.cycles += numberOfCycles; + if (Cycles.cycles >= Cycles.cyclesPerCycleSet) { + Cycles.cycleSets += 1; + Cycles.cycles -= Cycles.cyclesPerCycleSet; + } +} + +export function resetCycles(): void { + Cycles.cyclesPerCycleSet = 2000000000; + Cycles.cycleSets = 0; + Cycles.cycles = 0; +} + +// Sync other GB Components with the number of cycles +export function syncCycles(numberOfCycles: i32): void { + // Check if we did a DMA TRansfer, if we did add the cycles + if (Memory.DMACycles > 0) { + numberOfCycles += Memory.DMACycles; + Memory.DMACycles = 0; + } + + // Finally, Add our number of cycles to the CPU Cycles + Cpu.currentCycles += numberOfCycles; + + // Check other Gameboy components + if (!Cpu.isStopped) { + if (Config.graphicsBatchProcessing) { + // Need to do this, since a lot of things depend on the scanline + // Batch processing will simply return if the number of cycles is too low + Graphics.currentCycles += numberOfCycles; + batchProcessGraphics(); + } else { + updateGraphics(numberOfCycles); + } + + if (Config.audioBatchProcessing) { + Sound.currentCycles += numberOfCycles; + } else { + updateSound(numberOfCycles); + } + } + + if (Config.timersBatchProcessing) { + // Batch processing will simply return if the number of cycles is too low + Timers.currentCycles += numberOfCycles; + batchProcessTimers(); + } else { + updateTimers(numberOfCycles); + } + + trackCyclesRan(numberOfCycles); +} diff --git a/core/execute.ts b/core/execute.ts new file mode 100644 index 00000000..86348f77 --- /dev/null +++ b/core/execute.ts @@ -0,0 +1,166 @@ +// Functions involving executing/running the emulator after initializtion + +import { setHasCoreStarted } from './core'; +import { syncCycles } from './cycles'; +import { Cpu, executeOpcode } from './cpu/index'; +import { Interrupts, checkInterrupts } from './interrupts/index'; +import { eightBitStoreIntoGBMemory, eightBitLoadFromGBMemory } from './memory/index'; +import { Sound, getNumberOfSamplesInAudioBuffer } from './sound/index'; +import { hexLog, log } from './helpers/index'; +import { u16Portable } from './portable/portable'; + +// Public funciton to run opcodes until, +// a frame is ready, or error. +// Return values: +// -1 = error +// 0 = render a frame +export function executeFrame(): i32 { + let response: i32 = executeFrameAndCheckAudio(); + + // Find our exit reason + if (response === -1) { + return -1; + } else if (response === 0) { + return 0; + } + + // We left because of audio, simply keep running + return executeFrame(); +} + +// Public Function to run opcodes until, +// a frame is ready, audio bufer is filled, or error +// -1 = error +// 0 = render a frame +// 1 = output audio +export function executeFrameAndCheckAudio(maxAudioBuffer: i32 = 0): i32 { + let error: boolean = false; + let numberOfCycles: i32 = -1; + let audioBufferSize: i32 = 1024; + + if (maxAudioBuffer && maxAudioBuffer > 0) { + audioBufferSize = maxAudioBuffer; + } + + while (!error && Cpu.currentCycles < Cpu.MAX_CYCLES_PER_FRAME() && getNumberOfSamplesInAudioBuffer() < audioBufferSize) { + numberOfCycles = executeStep(); + if (numberOfCycles < 0) { + error = true; + } + } + + // Find our exit reason + if (Cpu.currentCycles >= Cpu.MAX_CYCLES_PER_FRAME()) { + // Render a frame + + // Reset our currentCycles + Cpu.currentCycles -= Cpu.MAX_CYCLES_PER_FRAME(); + + return 0; + } + if (getNumberOfSamplesInAudioBuffer() >= audioBufferSize) { + // Output Audio + return 1; + } + + // TODO: Boot ROM handling + + // There was an error, return -1, and push the program counter back to grab the error opcode + Cpu.programCounter = u16Portable(Cpu.programCounter - 1); + return -1; +} + +// Public function to run opcodes until, +// a breakpoint is reached +// -1 = error +// 0 = frame executed +// 1 = reached breakpoint +export function executeFrameUntilBreakpoint(breakpoint: i32): i32 { + let error: boolean = false; + let numberOfCycles: i32 = -1; + + while (!error && Cpu.currentCycles < Cpu.MAX_CYCLES_PER_FRAME() && Cpu.programCounter !== breakpoint) { + numberOfCycles = executeStep(); + if (numberOfCycles < 0) { + error = true; + } + } + + // Find our exit reason + if (Cpu.currentCycles >= Cpu.MAX_CYCLES_PER_FRAME()) { + // Render a frame + + // Reset our currentCycles + Cpu.currentCycles -= Cpu.MAX_CYCLES_PER_FRAME(); + + return 0; + } + if (Cpu.programCounter === breakpoint) { + // breakpoint + return 1; + } + + // TODO: Boot ROM handling + + // There was an error, return -1, and push the program counter back to grab the error opcode + Cpu.programCounter = u16Portable(Cpu.programCounter - 1); + return -1; +} + +// Function to execute an opcode, and update other gameboy hardware. +// http://www.codeslinger.co.uk/pages/projects/gameboy/beginning.html +export function executeStep(): i32 { + // Set has started to 1 since we ran a emulation step + setHasCoreStarted(true); + + // Check if we are in the halt bug + if (Cpu.isHaltBug) { + // Need to not increment program counter, + // thus, running the next opcode twice + + // E.g + // 0x76 - halt + // FA 34 12 - ld a,(1234) + // Becomes + // FA FA 34 ld a,(34FA) + // 12 ld (de),a + + let haltBugOpcode: i32 = eightBitLoadFromGBMemory(Cpu.programCounter); + // Execute opcode will handle the actual PC behavior + let haltBugCycles: i32 = executeOpcode(haltBugOpcode); + syncCycles(haltBugCycles); + Cpu.exitHaltAndStop(); + } + + // Interrupts should be handled before reading an opcode + // https://github.com/Gekkio/mooneye-gb/blob/master/docs/accuracy.markdown#what-is-the-exact-timing-of-cpu-servicing-an-interrupt + let interruptCycles: i32 = checkInterrupts(); + if (interruptCycles > 0) { + syncCycles(interruptCycles); + } + + // Get the opcode, and additional bytes to be handled + // Number of cycles defaults to 4, because while we're halted, we run 4 cycles (according to matt :)) + let numberOfCycles: i32 = 4; + let opcode: i32 = 0; + + // If we are not halted or stopped, run instructions + // If we are halted, this will be skipped and just sync the 4 cycles + if (!Cpu.isHalted() && !Cpu.isStopped) { + opcode = eightBitLoadFromGBMemory(Cpu.programCounter); + numberOfCycles = executeOpcode(opcode); + } + + // blarggFixes, don't allow register F to have the bottom nibble + Cpu.registerF = Cpu.registerF & 0xf0; + + // Check if there was an error decoding the opcode + if (numberOfCycles <= 0) { + return numberOfCycles; + } + + // Sync other GB Components with the number of cycles + syncCycles(numberOfCycles); + + return numberOfCycles; +} diff --git a/core/index.ts b/core/index.ts index 8d2a3ee5..0515fd40 100644 --- a/core/index.ts +++ b/core/index.ts @@ -1,14 +1,7 @@ // Public Exports -export { - config, - executeFrame, - executeFrameAndCheckAudio, - executeFrameUntilBreakpoint, - executeStep, - saveState, - loadState, - hasCoreStarted -} from './core'; +export { config, hasCoreStarted, saveState, loadState } from './core'; +export { executeFrame, executeFrameAndCheckAudio, executeFrameUntilBreakpoint, executeStep } from './execute'; +export { getCyclesPerCycleSet, getCycleSets, getCycles, trackCyclesRan } from './cycles'; export { setJoypadState } from './joypad/joypad'; export { getNumberOfSamplesInAudioBuffer, clearAudioBuffer } from './sound/sound'; export { diff --git a/core/legacy.ts b/core/legacy.ts index 5e54a478..f5a7f699 100644 --- a/core/legacy.ts +++ b/core/legacy.ts @@ -6,7 +6,7 @@ *******************/ -export { executeFrame as update, executeStep as emulationStep } from './core'; +export { executeFrame as update, executeStep as emulationStep } from './execute'; export { getNumberOfSamplesInAudioBuffer as getAudioQueueIndex, clearAudioBuffer as resetAudioQueue } from './sound/sound'; diff --git a/demo/debugger/index.js b/demo/debugger/index.js index 0ebbe446..03739228 100644 --- a/demo/debugger/index.js +++ b/demo/debugger/index.js @@ -210,6 +210,14 @@ export default class App extends Component {
+ Try{' '} + + VaporBoy + {' '} + for a full featured, GB / GBC Emulator Progressive Web App. +
+ +