#N canvas 1263 60 370 899 10; #X declare -path ofelia/libs/of; #X declare -path ofelia/libs/ez; #N canvas 2061 115 813 870 \$0-grid 0; #X obj 630 34 declare -path ofelia/libs/of; #X obj 473 212 of.draw; #X obj 241 11 loadbang; #X obj 241 54 of.Window; #X obj 241 95 of.setWindowTitle Grid; #X msg 241 32 setPosition 30 100 \, setSize 800 400 \, create; #X obj 241 405 of.mousePressed; #X msg 241 426 bang; #X obj 630 13 declare -path ofelia/libs/ez; #X obj 518 131 nbx 5 14 -1e+037 1e+037 0 1 empty \$0-BPM BPM 0 -8 0 10 -257985 -1 -1 180 256; #N canvas 2033 348 604 622 pitch 0; #X obj 83 543 noteout; #X obj 96 577 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-pgmOut pgmOut 0 -8 0 10 -257985 -1 -1 47 256; #X obj 129 523 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-MIDI_Channel MIDI_Channel 0 -8 0 10 -257985 -1 -1 1 256; #X obj 96 596 pgmout; #X obj 83 183 + 20; #X obj 83 206 i; #X obj 140 333 hradio 15 1 0 15 empty \$0-Scale Scale 0 -8 0 10 -257985 -1 -1 11; #X obj 140 353 text size \$0-scales; #X obj 192 182 nbx 5 14 0 127 0 0 empty \$0-randomPitch randomPitch 0 -8 0 10 -257985 -1 -1 0 256; #X obj 177 264 random 0; #X obj 177 285 -; #X obj 83 316 +; #X obj 83 294 *; #X obj 125 426 text get \$0-scales; #X obj 83 382 t f b f; #X obj 125 404 f; #X obj 83 426 /; #X obj 125 448 f; #X obj 83 272 / 12; #X obj 83 448 * 12; #X obj 83 404 -; #X obj 83 360 i; #X obj 83 338 + 0.5; #X obj 83 250 t f b; #X obj 83 470 +; #X obj 83 228 +; #X obj 128 187 nbx 3 14 -1e+037 1e+037 0 0 empty \$0-Transpose Transpose 0 -8 0 10 -257985 -1 -1 40 256; #X obj 160 382 mod; #X obj 192 201 t f f; #X obj 222 222 * 2; #X obj 222 243 + 1; #X obj 217 312 text define -k \$0-scales; #A set 0 2 4 5 7 9 11 \; 0 1 4 5 7 8 11 \; 0 2 4 6 7 9 10 \; 0 2 3 5 7 8 11 \; 0 2 3 4 5 6 7 9 10 11 \; 0 2 4 6 8 10 \; 0 2 3 5 6 8 9 11 \; 0 2 4 7 9 \; 0 2 3 4 7 8 9 \; 0 2 4 7 7 9 12 \; 0 0 1 5 5 7 10 \; 0 2 3 7 7 9 10 \; 0 2 4 7 7 9 11 \; 0 2 4 6 6 9 11 \; 0 0 1 5 5 6 10 \; 0 2 3 7 7 9 12 \;; #X obj 83 162 spigot; #X obj 83 120 f; #X msg 102 97 0; #X obj 83 74 t b f; #X obj 108 119 - 1; #X obj 56 11 inlet; #X obj 95 11 inlet; #X obj 128 206 +; #X obj 164 53 t b f; #X obj 95 32 f; #X obj 122 32 + 3; #X obj 164 32 mod 12; #X obj 56 32 t l l; #X obj 83 491 makenote 100 2000; #X obj 118 141 == 1; #N canvas 649 707 450 297 scaleLabel 0; #X msg 34 82 major midle-east-minor lydian-dominant harmonic-minor chromatic-blues whole-tones diminished pentatonic pentatonic-blues Gaku-Joshi In-Sen Hira-Joshi Yo Ryo Iwato Tamuke; #X symbolatom 62 157 20 0 0 0 - - -; #X floatatom 34 41 5 0 0 0 - - -; #X obj 34 61 t b f; #X obj 34 28 hradio 8 1 0 15 empty \$0-scale scale 0 -8 0 10 -257985 -1 -1 10; #X obj 62 198 \$0; #X obj 62 177 t b s; #X obj 62 219 list; #X msg 62 240 \; \$1-scaleLabel label \$2; #X obj 34 136 list split; #X connect 0 0 9 0; #X connect 1 0 6 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X connect 3 1 9 1; #X connect 4 0 2 0; #X connect 5 0 7 0; #X connect 6 0 5 0; #X connect 6 1 7 1; #X connect 7 0 8 0; #X connect 9 1 1 0; #X restore 264 353 pd scaleLabel; #X obj 14 162 print Step; #N canvas 0 50 450 223 list-drip 0; #X obj 23 31 inlet; #X obj 23 141 list store; #X obj 23 75 until; #X obj 23 97 f; #X obj 53 97 + 1; #X msg 23 119 get \$1 1; #X obj 66 76 0; #X obj 23 163 outlet; #X obj 90 163 outlet; #X obj 23 53 t b b a; #X connect 0 0 9 0; #X connect 1 0 7 0; #X connect 1 1 8 0; #X connect 1 1 2 1; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 3 0 4 0; #X connect 4 0 3 1; #X connect 5 0 1 0; #X connect 6 0 3 1; #X connect 9 0 2 0; #X connect 9 1 6 0; #X connect 9 2 1 1; #X restore 83 53 pd list-drip; #X connect 1 0 3 0; #X connect 2 0 0 2; #X connect 2 0 3 1; #X connect 4 0 5 0; #X connect 5 0 25 0; #X connect 6 0 7 0; #X connect 6 0 15 1; #X connect 7 0 12 1; #X connect 7 0 16 1; #X connect 7 0 27 1; #X connect 8 0 28 0; #X connect 9 0 10 0; #X connect 10 0 11 1; #X connect 11 0 22 0; #X connect 12 0 11 0; #X connect 13 0 17 0; #X connect 14 0 20 0; #X connect 14 1 15 0; #X connect 14 2 27 0; #X connect 15 0 13 0; #X connect 16 0 19 0; #X connect 17 0 24 1; #X connect 18 0 12 0; #X connect 19 0 24 0; #X connect 20 0 16 0; #X connect 21 0 14 0; #X connect 22 0 21 0; #X connect 23 0 18 0; #X connect 23 1 9 0; #X connect 24 0 45 0; #X connect 25 0 23 0; #X connect 26 0 39 0; #X connect 27 0 13 1; #X connect 27 0 20 1; #X connect 28 0 10 1; #X connect 28 1 29 0; #X connect 29 0 30 0; #X connect 30 0 9 1; #X connect 32 0 4 0; #X connect 33 0 32 0; #X connect 33 0 36 0; #X connect 34 0 33 1; #X connect 35 0 33 0; #X connect 35 1 46 0; #X connect 36 0 33 1; #X connect 37 0 44 0; #X connect 38 0 41 0; #X connect 39 0 25 1; #X connect 40 0 26 0; #X connect 40 1 39 1; #X connect 41 0 43 0; #X connect 42 0 41 1; #X connect 43 0 40 0; #X connect 43 0 42 0; #X connect 44 0 48 0; #X connect 44 1 49 0; #X connect 45 0 0 0; #X connect 45 1 0 1; #X connect 46 0 32 1; #X connect 49 0 35 0; #X connect 49 1 34 0; #X restore 521 415 pd pitch; #X obj 537 372 sel 1; #X obj 490 101 tgl 15 0 empty \$0-Play Play 17 7 0 10 -257985 -1 -1 0 1; #X obj 241 74 of.setup; #X obj 644 327 nbx 5 14 1 1000 0 1 empty \$0-Nth_1 Nth_1 0 -8 0 10 -257985 -1 -1 12 256; #X obj 736 327 nbx 5 14 1 1000 0 1 empty \$0-Nth_2 Nth_2 0 -8 0 10 -257985 -1 -1 59 256; #X obj 382 163 nbx 5 14 1 1000 0 0 empty \$0-gridNumY gridNumY 0 -8 0 10 -257985 -1 -1 32 256; #N canvas 0 50 404 196 pack 0; #X obj 76 24 inlet; #X obj 115 24 inlet; #X obj 115 45 t b f; #X obj 76 160 outlet; #X obj 76 139 pack f f; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 2 1 4 1; #X connect 4 0 3 0; #X restore 268 321 pd pack; #X f 24; #N canvas 0 50 404 196 pack 0; #X obj 76 24 inlet; #X obj 115 24 inlet; #X obj 115 45 t b f; #X obj 76 160 outlet; #X obj 76 139 pack f f; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 2 1 4 1; #X connect 4 0 3 0; #X restore 241 182 pd pack; #X f 24; #X obj 241 203 ofelia d -k -c31 \$0-main; #A set local a = ofelia \; function a.list(fv) \; a.width \, a.height = of.getWidth() \, of.getHeight() \; a.gridNumX \, a.gridNumY = fv[1] \, fv[2] \; a.gridSizeX = a.width / a.gridNumX \; a.gridSizeY = a.height / a.gridNumY \; a.matrix = {} \; for x = 1 \, a.gridNumX do \; a.matrix[x] = {} \; for y = 1 \, a.gridNumY do \; a.matrix[x][y] = 0 \; end \; end \; return bang \; end \;; #X obj 586 299 tgl 15 0 empty \$0-Draw_Nth Draw_Nth 17 7 0 10 -257985 -1 -1 0 1; #X obj 473 254 f; #X obj 553 325 spigot; #X obj 249 163 nbx 5 14 1 1000 0 0 empty \$0-gridNumX gridNumX 0 -8 0 10 -257985 -1 -1 32 256; #X obj 409 302 nbx 5 14 1 1000 0 0 empty \$0-rasterY rasterY 0 -8 0 10 -257985 -1 -1 4 256; #X obj 268 302 nbx 5 14 1 1000 0 1 empty \$0-rasterX rasterX 0 -8 0 10 -257985 -1 -1 4 256; #X obj 241 446 ofelia d -c11 -k \$0-fboCellsMouse; #A set function ofelia.bang() \; local a = require("\$0-main") \; a.fboCells = of.Fbo() \; a.mouseX = (of.getMouseX() + a.gridSizeX) // a.gridSizeX \; a.mouseY = (of.getMouseY() + a.gridSizeY) // a.gridSizeY \; a.fboCells:allocate(a.gridSizeX * a.gridNumX \, a.gridSizeY * a.gridNumY) \; a.fboCells:beginFbo() \; of.clear(255 \, 0 \, 0 \, 0) \; a.fboCells:endFbo() \; a.fboCells:beginFbo() \; for x = 1 \, a.gridNumX do \; for y = 1 \, a.gridNumY do \; if x == a.mouseX and y == a.mouseY and a.matrix[x][y] == 0 then \; a.matrix[x][y] = 1 \; elseif x == a.mouseX and y == a.mouseY and a.matrix[x][y] == 1 then \; a.matrix[x][y] = 0 \; end \; if a.matrix[x][y] == 1 then \; of.setColor(100 \, 100 \, 150 \, 255) \; of.drawRectangle(x * a.gridSizeX - a.gridSizeX \, y * a.gridSizeY - a.gridSizeY \, a.gridSizeX \, a.gridSizeY) \; end \; end \; end \; a.fboCells:endFbo() \; return bang \; end \; ; #X obj 553 346 ofelia d -c31 -k \$0-fboCellsNth; #A set function ofelia.list(fv) \; local a = require("\$0-main") \; a.nth1 \, a.nth2 = fv[2] \, fv[3] \; a.fboCells = of.Fbo() \; a.fboCells:allocate(a.gridSizeX * a.gridNumX \, a.gridSizeY * a.gridNumY) \; a.fboCells:beginFbo() \; of.clear(255 \, 0 \, 0 \, 0) \; a.fboCells:endFbo() \; a.fboCells:beginFbo() \; for x = 1 \, a.gridNumX do \; for y = 1 \, a.gridNumY do \; if x == fv[1] and x * y % a.nth1 == 1 then \; a.matrix[x][y] = 1 \; elseif x == fv[1] and x * y % a.nth2 == 1 then \; a.matrix[x][y] = 1 \; elseif x == fv[1] then \; a.matrix[x][y] = 0 \; end \; if a.matrix[x][y] == 1 then \; of.setColor(100 \, 100 \, 150 \, 255) \; of.drawRectangle(x * a.gridSizeX - a.gridSizeX \, y * a.gridSizeY - a.gridSizeY \, a.gridSizeX \, a.gridSizeY) \; end \; end \; end \; a.fboCells:endFbo() \; end \;; #X obj 241 225 ofelia d -k -c11 \$0-fboLines; #A set function ofelia.bang() \; local a = require("\$0-main") \; a.fboLines = of.Fbo() \; a.fboLines:allocate(a.gridSizeX * a.gridNumX \, a.gridSizeY * a.gridNumY) \; a.fboLines:beginFbo() \; of.clear(255 \, 0 \, 0 \, 0) \; a.fboLines:endFbo() \; a.fboLines:beginFbo() \; local posX \, posY = 0 \, 0 \; for x = 0 \, a.gridNumX -1 do \; for y = 0 \, a.gridNumY -1 do \; posX \, posY = x*a.gridSizeX \, y*a.gridSizeY \; of.setColor(0) \; of.drawLine(0 \, posY \, a.width \, posY) \; end \; of.drawLine(posX \, 0 \, posX \, a.height) \; end \; a.fboLines:endFbo() \; return bang \; end \;; #X obj 268 342 ofelia d -c31 -k \$0-fboRaster; #A set function ofelia.list(fv) \; local a = require("\$0-main") \; a.rasterX \, a.rasterY = fv[1] \, fv[2] \; a.fboRaster = of.Fbo() \; a.fboRaster:allocate(a.gridSizeX * a.gridNumX \, a.gridSizeY * a.gridNumY) \; a.fboRaster:beginFbo() \; of.clear(255 \, 0 \, 0 \, 0) \; a.fboRaster:endFbo() \; a.fboRaster:beginFbo() \; for x = 1 \, a.gridNumX do \; for y = 1 \, a.gridNumY do \; if a.matrix[x][y] == 0 and x % a.rasterX == 1 or y % a.rasterY == 1 then \; of.setColor(255 \, 255 \, 255 \, 255) \; of.drawRectangle(x * a.gridSizeX - a.gridSizeX \, y * a.gridSizeY - a.gridSizeY \, a.gridSizeX \, a.gridSizeY) \; end \; end \; end \; a.fboRaster:endFbo() \; return bang \; end \;; #X obj 490 233 - 1; #N canvas 1358 369 533 536 counter 0; #X obj 32 43 inlet; #X obj 127 15 inlet; #X obj 139 77 inlet; #X obj 59 367 f; #X obj 59 146 metro 200; #X obj 127 36 pow -1; #X obj 127 57 * 30000; #X obj 128 322 r \$0-gridNumX; #X obj 85 367 + 1; #N canvas 1073 93 450 272 reverse 0; #X obj 18 65 sel 0 1; #X obj 18 128 t b b; #X obj 37 86 t b b; #X obj 18 9 inlet; #X obj 18 191 outlet; #X obj 45 170 outlet; #X msg 37 107 -1; #X obj 79 86 r \$0-gridNumX; #X obj 64 107 f; #X msg 45 149 1; #X msg 18 149 -1; #X obj 225 87 nbx 5 14 1 32 0 1 empty \$0-in in 0 -8 0 10 -257985 -1 -1 1 256; #X obj 166 87 nbx 5 14 1 32 0 1 empty \$0-out out 0 -8 0 10 -257985 -1 -1 32 256; #X obj 225 172 -; #X obj 225 129 t b f; #X obj 258 148 - 1; #X obj 18 44 f; #X obj 57 9 inlet; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 1 0 10 0; #X connect 1 1 9 0; #X connect 2 0 6 0; #X connect 2 1 8 0; #X connect 3 0 16 1; #X connect 3 0 16 0; #X connect 6 0 5 0; #X connect 7 0 8 1; #X connect 8 0 4 0; #X connect 9 0 5 0; #X connect 10 0 4 0; #X connect 11 0 14 0; #X connect 12 0 13 0; #X connect 13 0 8 1; #X connect 14 0 13 0; #X connect 14 1 15 0; #X connect 15 0 13 1; #X connect 16 0 0 0; #X connect 17 0 16 0; #X restore 139 98 pd reverse; #X obj 113 366 mod; #X obj 85 388 mod; #X obj 59 475 + 1; #X obj 59 496 outlet; #X obj 59 125 f -1; #X obj 59 430 random; #X obj 59 409 spigot; #X obj 116 430 == 0; #X obj 116 396 tgl 15 0 empty \$0-Random_Step Random_Step 17 7 0 10 -257985 -1 -1 0 1; #X obj 71 451 spigot 1; #X obj 59 167 f; #X obj 59 189 + 1; #X obj 59 211 & 255; #X obj 59 255 & 1; #X obj 59 233 t f f; #X obj 59 277 pack; #X obj 59 299 route 0 1; #X obj 131 299 *; #X obj 141 272 t b f; #X obj 84 320 pipe; #X obj 59 320 b; #X obj 84 341 b; #X obj 365 101 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-In In 0 -8 0 10 -257985 -1 -1 1 256; #X obj 216 162 pack 0 0; #X obj 216 183 list prepend \$0; #X obj 365 161 pack 0 0; #X obj 365 182 list prepend \$0; #X msg 216 141 1; #X obj 216 120 t b f; #X obj 291 262 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-In In 0 -8 0 10 -257985 -1 -1 1 256; #X obj 232 322 -; #X obj 308 301 - 1; #X obj 363 242 r \$0-gridNumX; #X obj 291 280 t b f f; #X obj 59 104 t b b; #X obj 363 284 t f b; #X msg 390 326 1; #X obj 216 101 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-Out Out 0 -8 0 10 -257985 -1 -1 32 256; #X obj 232 262 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-Out Out 0 -8 0 10 -257985 -1 -1 32 256; #X obj 32 64 t f f; #X obj 131 250 r \$0-Swing; #X msg 216 204 \; \$1-In_Range range \$2 \$3; #X msg 365 203 \; \$1-Out_Range range \$2 \$3; #X obj 59 84 sel 1; #X obj 364 46 r \$0-gridNumX; #X obj 363 263 pipe; #X obj 363 305 s \$0-Out_Range; #X obj 390 347 s \$0-In_Range; #X obj 364 67 t b f; #X connect 0 0 49 0; #X connect 1 0 5 0; #X connect 2 0 9 0; #X connect 3 0 10 0; #X connect 4 0 20 0; #X connect 5 0 6 0; #X connect 6 0 4 1; #X connect 6 0 28 0; #X connect 7 0 10 1; #X connect 7 0 11 1; #X connect 7 0 15 1; #X connect 8 0 3 1; #X connect 8 0 11 0; #X connect 9 0 14 1; #X connect 9 1 8 1; #X connect 10 0 8 0; #X connect 11 0 19 0; #X connect 12 0 13 0; #X connect 14 0 3 1; #X connect 15 0 12 0; #X connect 16 0 15 0; #X connect 17 0 19 1; #X connect 18 0 16 1; #X connect 18 0 17 0; #X connect 19 0 12 0; #X connect 20 0 21 0; #X connect 21 0 22 0; #X connect 22 0 20 1; #X connect 22 0 24 0; #X connect 23 0 25 0; #X connect 24 0 23 0; #X connect 24 1 25 1; #X connect 25 0 26 0; #X connect 26 0 30 0; #X connect 26 1 29 0; #X connect 27 0 29 1; #X connect 28 0 27 0; #X connect 28 1 27 1; #X connect 29 0 31 0; #X connect 30 0 3 0; #X connect 30 0 16 0; #X connect 31 0 3 0; #X connect 31 0 16 0; #X connect 32 0 35 0; #X connect 33 0 34 0; #X connect 34 0 51 0; #X connect 35 0 36 0; #X connect 36 0 52 0; #X connect 37 0 33 0; #X connect 38 0 37 0; #X connect 38 1 33 1; #X connect 39 0 43 0; #X connect 40 0 15 1; #X connect 40 0 11 1; #X connect 40 0 10 1; #X connect 41 0 40 1; #X connect 42 0 55 0; #X connect 43 0 40 0; #X connect 43 1 41 0; #X connect 43 2 12 1; #X connect 44 0 14 0; #X connect 44 1 9 1; #X connect 45 0 56 0; #X connect 45 1 46 0; #X connect 46 0 57 0; #X connect 47 0 38 0; #X connect 48 0 40 0; #X connect 49 0 4 0; #X connect 49 1 53 0; #X connect 50 0 27 0; #X connect 53 0 44 0; #X connect 54 0 58 0; #X connect 55 0 45 0; #X connect 58 0 32 0; #X connect 58 1 35 1; #X restore 490 170 pd counter; #X obj 547 150 tgl 15 0 empty \$0-Reverse Reverse 17 7 0 10 -257985 -1 -1 0 1; #X obj 473 275 ofelia d -k \$0-draw; #A set function ofelia.float(f) \; local a = require("\$0-main") \; of.setColor(255 \, 255 \, 255 \, 255) \; a.fboRaster:draw(0 \, 0) \; of.setColor(250 \, 250 \, 150 \, 255) \; of.drawRectangle(f * a.gridSizeX \, 0 \, a.gridSizeX \, a.gridSizeY * a.gridNumY) \; of.setColor(255 \, 255 \, 255 \, 255) \; a.fboCells:draw(0 \, 0) \; of.setColor(255 \, 255 \, 255 \, 255) \; a.fboLines:draw(0 \, 0) \; end \;; #X obj 505 458 \$0; #X obj 505 479 list; #X obj 505 437 t b f; #X obj 532 458 makefilename %d; #X obj 10 10 cnv 15 200 850 empty empty empty 20 12 0 14 -257985 -66577 0; #X obj 35 20 cnv 15 150 830 empty empty GRID 40 30 0 30 -4032 -66577 0; #X obj 51 103 tgl 15 0 \$0-Play empty Play 17 7 0 10 -257985 -1 -1 0 1; #X obj 110 105 nbx 5 14 -1e+037 1e+037 0 1 \$0-BPM empty BPM 0 -8 0 10 -257985 -1 -1 180 256; #X obj 110 400 nbx 5 14 1 1000 0 1 \$0-Nth_2 empty Nth_2 0 -8 0 10 -257985 -1 -1 59 256; #X obj 51 400 nbx 5 14 1 1000 0 1 \$0-Nth_1 empty Nth_1 0 -8 0 10 -257985 -1 -1 12 256; #X obj 51 364 tgl 15 0 \$0-Draw_Nth empty Draw_Nth 17 7 0 10 -257985 -1 -1 0 1; #X obj 109 435 nbx 5 14 1 100000 0 1 \$0-gridNumY empty Grid_Y 0 -8 0 10 -257985 -1 -1 32 256; #X obj 50 703 bng 15 250 50 0 \$0-Reset empty Reset 17 7 0 10 -257985 -1 -1; #X obj 51 128 tgl 15 0 \$0-Reverse empty Reverse 17 7 0 10 -257985 -1 -1 0 1; #X obj 51 153 tgl 15 0 \$0-Random_Step empty Random_Step 17 7 0 10 -257985 -1 -1 0 1; #X obj 50 599 bng 15 250 50 0 \$0-Horizontal_Flip empty Horizontal_Flip 17 7 0 10 -257985 -1 -1; #X obj 50 625 bng 15 250 50 0 \$0-Vertical_Flip empty Vertical_Flip 17 7 0 10 -257985 -1 -1; #X obj 50 521 bng 15 250 50 0 \$0-Shift_Left empty Shift_Left 17 7 0 10 -257985 -1 -1; #X obj 50 677 bng 15 250 50 0 \$0-Invert empty Invert 17 7 0 10 -257985 -1 -1; #X obj 50 495 bng 15 250 50 0 \$0-Shift_Right empty Shift_Right 17 7 0 10 -257985 -1 -1; #X obj 50 547 bng 15 250 50 0 \$0-Shift_Down empty Shift_Down 17 7 0 10 -257985 -1 -1; #X obj 50 573 bng 15 250 50 0 \$0-Shift_Up empty Shift_Up 17 7 0 10 -257985 -1 -1; #X obj 50 817 bng 15 250 50 0 \$0-Save_Pattern empty Save_Pattern 17 7 0 10 -257985 -1 -1; #X obj 50 739 hradio 15 1 0 8 \$0-Pattern empty Pattern 0 -8 0 10 -257985 -1 -1 0; #X obj 149 141 vsl 15 50 0 0.33 0 0 \$0-Swing empty Swing 0 -9 0 10 -257985 -1 -1 0 0; #X obj 51 250 hradio 8 1 1 15 \$0-Scale empty Scale 0 -8 0 10 -257985 -1 -1 11; #X obj 51 339 nbx 5 14 1 128 0 1 \$0-pgmOut empty Pgm_Out 0 -8 0 10 -257985 -1 -1 47 256; #X obj 110 339 nbx 5 14 1 16 0 1 \$0-MIDI_Channel empty MIDI_Channel 0 -8 0 10 -257985 -1 -1 1 256; #X obj 110 304 nbx 5 14 0 50 0 0 \$0-randomPitch empty Random_Pitch 0 -8 0 10 -257985 -1 -1 0 256; #X obj 51 304 nbx 5 14 -100 100 0 1 \$0-Transpose empty Transpose 0 -8 0 10 -257985 -1 -1 40 256; #X obj 50 259 cnv 15 100 20 empty \$0-scaleLabel In-Sen 0 12 0 10 -4032 -66577 0; #X obj 51 169 cnv 15 50 20 empty \$0-stepnumberLabel Step:9 0 12 0 10 -4032 -66577 0; #X obj 50 435 nbx 5 14 1 100000 0 1 \$0-gridNumX empty Grid_X 0 -8 0 10 -257985 -1 -1 32 256; #X msg 505 500 \; \$1-stepnumberLabel label Step:\$2; #X obj 51 215 nbx 5 14 1 32 0 0 \$0-In \$0-In_Range In 0 -8 0 10 -257985 -1 -1 1 256; #X obj 110 215 nbx 5 14 1 32 0 0 \$0-Out \$0-Out_Range Out 0 -8 0 10 -257985 -1 -1 32 256; #X obj 50 765 bng 15 250 50 0 \$0-Copy_Pattern empty Copy_Pattern 17 7 0 10 -257985 -1 -1; #X obj 50 791 bng 15 250 50 0 \$0-Paste_Pattern empty Paste_Pattern 17 7 0 10 -257985 -1 -1; #X obj 241 384 ofelia d -c11 -k \$0-fboCells; #A set function ofelia.bang() \; local a = require("\$0-main") \; a.fboCells = of.Fbo() \; a.fboCells:allocate(a.gridSizeX * a.gridNumX \, a.gridSizeY * a.gridNumY) \; a.fboCells:beginFbo() \; of.clear(255 \, 0 \, 0 \, 0) \; a.fboCells:endFbo() \; a.fboCells:beginFbo() \; for x = 1 \, a.gridNumX do \; for y = 1 \, a.gridNumY do \; if a.matrix[x][y] == 1 then \; of.setColor(100 \, 100 \, 150 \, 255) \; of.drawRectangle(x * a.gridSizeX - a.gridSizeX \, y * a.gridSizeY - a.gridSizeY \, a.gridSizeX \, a.gridSizeY) \; end \; end \; end \; a.fboCells:endFbo() \; return bang \; end \;; #X obj 241 363 r \$0-matrixControl; #X obj 521 394 ofelia d -c11 -k \$0-step; #A set function ofelia.float(x) \; local a = require("\$0-main") \; return a.matrix[x] \; end \;; #X obj 490 191 t f f f f f; #N canvas 1209 73 417 785 Grid_Operations 0; #X obj 28 60 ofelia d -c11 -k \$0-Shift_Right; #A set function ofelia.Shift_Right() \; local a = require("\$0-main") \; for x = 1 \, a.gridNumX-1 do \; for y = 1 \, a.gridNumY do \; a.matrix[((x * - 1) + a.gridNumX) % a.gridNumX + 1][y] \, a.matrix[((x * - 1) + a.gridNumX)][y] = a.matrix[((x*-1) + a.gridNumX)][y] \, a.matrix[((x * - 1) + a.gridNumX) % a.gridNumX + 1][y] \; end \; end \; return bang \; end \;; #X obj 28 143 ofelia d -c11 -k \$0-Shift_Left; #A set function ofelia.Shift_Left() \; local a = require("\$0-main") \; for x = 1 \, a.gridNumX-1 do \; for y = 1 \, a.gridNumY do \; a.matrix[(x)%a.gridNumX+1][y] \, a.matrix[x][y] = a.matrix[x][y] \, a.matrix[(x)%a.gridNumX+1][y] \; end \; end \; return bang \; end \;; #X obj 28 226 ofelia d -c11 -k \$0-Shift_Down; #A set function ofelia.Shift_Down() \; local a = require("\$0-main") \; for x = 1 \, a.gridNumX do \; for y = 1 \, a.gridNumY-1 do \; a.matrix[x][((y * - 1) + a.gridNumY) % a.gridNumY + 1] \, a.matrix[x][((y * - 1) + a.gridNumY)%a.gridNumY] = a.matrix[x][((y * - 1) + a.gridNumY)%a.gridNumY] \, a.matrix[x][((y * - 1) + a.gridNumY) % a.gridNumY + 1] \; end \; end \; return bang \; end \;; #X obj 28 309 ofelia d -c11 -k \$0-Shift_Up; #A set function ofelia.Shift_Up() \; local a = require("\$0-main") \; for x = 1 \, a.gridNumX do \; for y = 1 \, a.gridNumY-1 do \; a.matrix[x][y] \, a.matrix[x][(y)%a.gridNumY+1] = a.matrix[x][y%a.gridNumY+1] \, a.matrix[x][y] \; end \; end \; return bang \; end \;; #X obj 28 392 ofelia d -c11 -k \$0-Horizontal_Flip; #A set function ofelia.Horizontal_Flip() \; local a = require("\$0-main") \; for y = 1 \, a.gridNumY do \; local i \, j = 1 \, a.gridNumY \; while i < j do \; a.matrix[i][y] \, a.matrix[j][y] = a.matrix[j][y] \, a.matrix[i][y] \; i = i + 1 \; j = j - 1 \; end \; end \; return bang \; end \;; #X obj 28 475 ofelia d -c11 -k \$0-Vertical_Flip; #A set function ofelia.Vertical_Flip() \; local a = require("\$0-main") \; for x = 1 \, a.gridNumX do \; local i \, j = 1 \, a.gridNumX \; while i < j do \; a.matrix[x][i] \, a.matrix[x][j] = a.matrix[x][j] \, a.matrix[x][i] \; i = i + 1 \; j = j - 1 \; end \; end \; return bang \; end \;; #X obj 28 558 ofelia d -c11 -k \$0-Shuffle; #A set function ofelia.Shuffle() \; local a = require("\$0-main") \; for i = a.gridNumX \, 2 \, -1 do \; for j = a.gridNumY \, 2 \, -1 do \; local x = math.random(i) \; local y = math.random(j) \; a.matrix[i][j] \, a.matrix[x][y] = a.matrix[x][y] \, a.matrix[i][j] \; end \; end \; return bang \; end \;; #X obj 28 641 ofelia d -c11 -k \$0-Invert; #A set function ofelia.bang() \; local a = require("\$0-main") \; for x = 1 \, a.gridNumX do \; for y = 1 \, a.gridNumY do \; if a.matrix[x][y] == 0 then \; a.matrix[x][y] = 1 \; elseif a.matrix[x][y] == 1 then \; a.matrix[x][y] = 0 \; end \; end \; end \; return bang \; end \; ; #X obj 28 683 bng 15 250 50 0 empty \$0-Reset Reset 17 7 0 10 -257985 -1 -1; #X obj 28 600 bng 15 250 50 0 empty \$0-Invert Invert 17 7 0 10 -257985 -1 -1; #X obj 28 434 bng 15 250 50 0 empty \$0-Vertical_Flip Vertical_Flip 17 7 0 10 -257985 -1 -1; #X obj 28 351 bng 15 250 50 0 empty \$0-Horizontal_Flip Horizontal_Flip 17 7 0 10 -257985 -1 -1; #X obj 28 268 bng 15 250 50 0 empty \$0-Shift_Up Shift_Up 17 7 0 10 -257985 -1 -1; #X obj 28 185 bng 15 250 50 0 empty \$0-Shift_Down Shift_Down 17 7 0 10 -257985 -1 -1; #X obj 28 102 bng 15 250 50 0 empty \$0-Shift_Left Shift_Left 17 7 0 10 -257985 -1 -1; #X obj 28 19 bng 15 250 50 0 empty \$0-Shift_Right Shift_Right 17 7 0 10 -257985 -1 -1; #X obj 28 517 bng 15 250 50 0 empty \$0-Shuffle Shuffle 17 7 0 10 -257985 -1 -1; #X obj 28 724 ofelia d -c11 -k \$0-Reset; #A set function ofelia.bang() \; local a = require("\$0-main") \; a.fboCells = of.Fbo() \; a.fboCells:beginFbo() \; of.clear(255 \, 0 \, 0 \, 0) \; a.fboCells:endFbo() \; a.matrix = {} \; for x = 1 \, a.gridNumX do \; a.matrix[x] = {} \; for y = 1 \, a.gridNumY do \; a.matrix[x][y] = 0 \; end \; end \; return bang \; end \;; #X obj 28 745 s \$0-matrixControl; #X obj 28 662 s \$0-matrixControl; #X obj 28 579 s \$0-matrixControl; #X obj 28 496 s \$0-matrixControl; #X obj 28 413 s \$0-matrixControl; #X obj 28 330 s \$0-matrixControl; #X obj 28 247 s \$0-matrixControl; #X obj 28 164 s \$0-matrixControl; #X obj 28 81 s \$0-matrixControl; #X msg 28 620 Invert; #X msg 28 703 Reset; #X msg 28 537 Shuffle; #X msg 28 371 Horizontal_Flip; #X msg 28 39 Shift_Right; #X msg 28 122 Shift_Left; #X msg 28 288 Shift_Up; #X msg 28 205 Shift_Down; #X msg 28 454 Vertical_Flip; #X obj 227 539 bng 15 250 50 0 empty \$0-Shuffle_X Shuffle_X 17 7 0 10 -257985 -1 -1; #X obj 227 601 s \$0-matrixControl; #X obj 227 580 ofelia d -c11 -k \$0-Shuffle_X; #A set function ofelia.Shuffle_X() \; local a = require("\$0-main") \; for i = a.gridNumX \, 2 \, -1 do \; for j = 1 \, a.gridNumY do \; local x = math.random(i) \; local y = j \; a.matrix[i][y] \, a.matrix[x][y] = a.matrix[x][y] \, a.matrix[i][y] \; end \; end \; return bang \; end \;; #X obj 217 645 bng 15 250 50 0 empty \$0-Shuffle_Y Shuffle_Y 17 7 0 10 -257985 -1 -1; #X obj 217 707 s \$0-matrixControl; #X obj 217 686 ofelia d -c11 -k \$0-Shuffle_Y; #A set function ofelia.Shuffle_Y() \; local a = require("\$0-main") \; for i = 1 \, a.gridNumX do \; for j = a.gridNumY \, 2 \, -1 do \; local x = i \; local y = math.random(j) \; a.matrix[x][j] \, a.matrix[x][y] = a.matrix[x][y] \, a.matrix[x][j] \; end \; end \; return bang \; end \;; #X msg 227 559 Shuffle_X; #X msg 217 665 Shuffle_Y; #X connect 0 0 26 0; #X connect 1 0 25 0; #X connect 2 0 24 0; #X connect 3 0 23 0; #X connect 4 0 22 0; #X connect 5 0 21 0; #X connect 6 0 20 0; #X connect 7 0 19 0; #X connect 8 0 28 0; #X connect 9 0 27 0; #X connect 10 0 35 0; #X connect 11 0 30 0; #X connect 12 0 33 0; #X connect 13 0 34 0; #X connect 14 0 32 0; #X connect 15 0 31 0; #X connect 16 0 29 0; #X connect 17 0 18 0; #X connect 27 0 7 0; #X connect 28 0 17 0; #X connect 29 0 6 0; #X connect 30 0 4 0; #X connect 31 0 0 0; #X connect 32 0 1 0; #X connect 33 0 3 0; #X connect 34 0 2 0; #X connect 35 0 5 0; #X connect 36 0 42 0; #X connect 38 0 37 0; #X connect 39 0 43 0; #X connect 41 0 40 0; #X connect 42 0 38 0; #X connect 43 0 41 0; #X restore 241 467 pd Grid_Operations; #N canvas 156 485 863 392 pattern 0; #X obj 11 229 ofelia d -c11 -k \$0-setMatrix; #A set function ofelia.bang() \; local a = require("\$0-main") \; return a.matrix \; end \;; #X obj 11 209 bng 15 250 50 0 empty \$0-Save_Pattern Save_Pattern 17 7 0 10 -257985 -1 -1; #X floatatom 107 80 5 0 0 0 - - -; #X obj 107 206 s \$0-matrixControl; #X obj 107 122 t b l; #X obj 134 164 list trim; #X obj 134 185 ofelia set \$0-main; #X obj 134 143 list prepend matrix; #X obj 107 18 hradio 15 1 0 8 empty \$0-Pattern Pattern 0 -8 0 10 -257985 -1 -1 0; #X obj 122 38 r \$0-gridSize; #X obj 107 100 array get \$0-array; #X obj 264 202 nbx 5 14 1 100000 0 0 empty \$0-gridNumX gridNumX 0 -8 0 10 -257985 -1 -1 32 256; #X obj 264 234 t b f; #X obj 264 263 *; #X floatatom 264 347 5 0 0 0 - - -; #X obj 264 367 s \$0-gridSize; #X obj 367 314 \$0; #X obj 367 293 t b f; #X obj 367 335 pack; #X obj 367 272 * 8; #X obj 367 251 r \$0-gridSize; #X msg 367 356 \; \$1-array resize \$2; #X obj 305 233 nbx 5 14 1 100000 0 0 empty \$0-gridNumY gridNumY 0 -8 0 10 -257985 -1 -1 32 256; #N canvas 1001 46 450 250 (subpatch) 0; #X array \$0-array 8192 float 3; #A 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 1000 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 2000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 4000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 6000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 7000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 8000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X coords 0 -1 8192 1 200 140 1 0 0; #X restore 257 23 graph; #X obj 264 326 spigot; #X obj 264 284 t f f; #X obj 291 305 != 0; #X obj 107 59 *; #X floatatom 159 80 5 0 0 0 - - -; #N canvas 1001 46 450 250 (subpatch) 0; #X array \$0-copyArray 1024 float 3; #A 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #A 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; #X coords 0 -1 1024 1 200 140 1 0 0; #X restore 478 23 graph; #X obj 496 315 \$0; #X obj 496 293 t b f; #X obj 496 335 pack; #X msg 496 356 \; \$1-copyArray resize \$2; #X obj 496 272 r \$0-gridSize; #X obj 648 180 bng 15 250 50 0 empty \$0-Copy_Pattern Copy_Pattern 17 7 0 10 -257985 -1 -1; #X obj 649 367 s \$0-matrixControl; #X obj 649 283 t b l; #X obj 676 325 list trim; #X obj 676 346 ofelia set \$0-main; #X obj 676 304 list prepend matrix; #X obj 649 241 bng 15 250 50 0 empty \$0-Paste_Pattern Paste_Pattern 17 7 0 10 -257985 -1 -1; #X obj 649 261 array get \$0-copyArray; #X obj 648 220 array set \$0-copyArray; #X obj 648 200 ofelia d -c11 -k \$0-setMatrix2; #A set function ofelia.bang() \; local a = require("\$0-main") \; return a.matrix \; end \;; #X obj 11 250 array set \$0-array; #X obj 71 287 text define test; #X obj 70 323 text set test; #X obj 12 284 print; #X connect 0 0 45 0; #X connect 1 0 0 0; #X connect 2 0 10 0; #X connect 4 0 3 0; #X connect 4 1 7 0; #X connect 5 0 6 0; #X connect 7 0 5 0; #X connect 8 0 27 0; #X connect 9 0 27 1; #X connect 9 0 28 0; #X connect 10 0 4 0; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 12 1 13 1; #X connect 13 0 25 0; #X connect 14 0 15 0; #X connect 16 0 18 0; #X connect 17 0 16 0; #X connect 17 1 18 1; #X connect 18 0 21 0; #X connect 19 0 17 0; #X connect 20 0 19 0; #X connect 22 0 13 0; #X connect 24 0 14 0; #X connect 25 0 24 0; #X connect 25 1 26 0; #X connect 26 0 24 1; #X connect 27 0 2 0; #X connect 27 0 45 1; #X connect 28 0 10 1; #X connect 30 0 32 0; #X connect 31 0 30 0; #X connect 31 1 32 1; #X connect 32 0 33 0; #X connect 34 0 31 0; #X connect 35 0 44 0; #X connect 37 0 36 0; #X connect 37 1 40 0; #X connect 38 0 39 0; #X connect 40 0 38 0; #X connect 41 0 42 0; #X connect 42 0 37 0; #X connect 44 0 43 0; #X restore 241 488 pd pattern; #X obj 241 116 of.setBackgroundColor 200 250 250 255; #X obj 50 651 bng 15 250 50 0 \$0-Shuffle empty Shuffle 17 7 0 10 -257985 -1 -1; #X obj 109 470 nbx 5 14 1 1000 0 1 \$0-rasterY empty Raster_Y 0 -8 0 10 -257985 -1 -1 4 256; #X obj 50 470 nbx 5 14 1 1000 0 1 \$0-rasterX empty Raster_X 0 -8 0 10 -257985 -1 -1 4 256; #X obj 241 246 t b b; #X obj 238 618 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 -1; #X obj 238 659 s \$0-matrixControl; #X obj 238 720 s \$0-matrixControl; #X obj 238 679 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 -1; #X obj 238 597 metro 100; #X obj 139 515 tgl 15 0 empty empty Conway 17 7 0 10 -257985 -1 -1 0 1; #X obj 238 699 ofelia d -c11 -k \$0-ConwayWithBorders; #A set function ofelia.bang() \; local a = require("\$0-main") \; local m = #a.matrix \; local cell2 = {} \; for i = 1 \, m do \; cell2[i] = {} \; for j = 1 \, m do \; cell2[i][j] = a.matrix[i][j] \; end \; end \; \; for i = 1 \, m do \; for j = 1 \, m do \; local count \; if cell2[i][j] == 0 then \; count = 0 \; else \; count = -1 \; end \; for x = -1 \, 1 do \; for y = -1 \, 1 do \; if i+x >= 1 and i+x <= m and j+y >= 1 and j+y <= a.gridNumY and cell2[(i+x-1)%m+1][(j+y -1)%a.gridNumY+1] == 1 then \; count = count + 1 \; end \; end \; end \; if count < 2 or count > 3 then \; a.matrix[i][j] = 0 \; end \; if count == 3 then \; a.matrix[i][j] = 1 \; end \; end \; end \; return bang \; end \;; #X obj 238 638 ofelia d -c11 -k \$0-ConwayWithoutBorders; #A set function ofelia.bang() \; local a = require("\$0-main") \; local m = #a.matrix \; local cell2 = {} \; for i = 1 \, m do \; cell2[i] = {} \; for j = 1 \, m do \; cell2[i][j] = a.matrix[i][j] \; end \; end \; \; for i = 1 \, m do \; for j = 1 \, m do \; local count \; if cell2[i][j] == 0 then \; count = 0 \; else count = -1 \; end \; for x = -1 \, 1 do \; for y = -1 \, 1 do \; if cell2[(i+x-1)%m+1][(j+y -1)%a.gridNumY+1] == 1 then \; count = count + 1 \; end \; end \; end \; if count < 2 or count > 3 then \; a.matrix[i][j] = 0 \; end \; if count == 3 then \; a.matrix[i][j] = 1 \; end \; end \; end \; return bang \; end \;; #X obj 112 672 bng 15 250 50 0 \$0-Shuffle_X empty Shuffle_X 17 7 0 10 -257985 -1 -1; #X obj 113 649 bng 15 250 50 0 \$0-Shuffle_Y empty Shuffle_Y 17 7 0 10 -257985 -1 -1; #X connect 1 0 21 0; #X connect 2 0 5 0; #X connect 4 0 78 0; #X connect 5 0 3 0; #X connect 6 0 7 0; #X connect 7 0 26 0; #X connect 9 0 31 1; #X connect 11 0 10 1; #X connect 12 0 31 0; #X connect 13 0 4 0; #X connect 14 0 27 1; #X connect 15 0 27 2; #X connect 16 0 18 1; #X connect 17 0 29 0; #X connect 18 0 19 0; #X connect 19 0 28 0; #X connect 20 0 22 1; #X connect 21 0 33 0; #X connect 22 0 27 0; #X connect 23 0 18 0; #X connect 24 0 17 1; #X connect 25 0 17 0; #X connect 28 0 82 0; #X connect 30 0 21 1; #X connect 31 0 75 0; #X connect 32 0 31 2; #X connect 34 0 35 0; #X connect 35 0 67 0; #X connect 36 0 34 0; #X connect 36 1 37 0; #X connect 37 0 35 1; #X connect 73 0 72 0; #X connect 74 0 10 0; #X connect 75 0 30 0; #X connect 75 1 36 0; #X connect 75 2 74 0; #X connect 75 3 11 0; #X connect 75 4 22 0; #X connect 78 0 18 0; #X connect 82 0 72 0; #X connect 82 1 17 0; #X connect 83 0 90 0; #X connect 86 0 89 0; #X connect 87 0 83 0; #X connect 88 0 87 0; #X connect 89 0 85 0; #X connect 90 0 84 0; #X coords 0 0 1 1 200 850 1 10 10; #X restore 80 23 pd \$0-grid;