r@100: #N canvas 5 78 1418 816 10; r@98: #X obj 571 -73 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0; r@98: #X obj 634 -73 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0; r@98: #X text 631 -164 Gain; r@98: #X obj 570 -190 loadbang; r@98: #N canvas 865 368 284 318 opLevels 0; r@98: #X obj 85 188 dac~; r@98: #X obj 30 70 catch~ l; r@98: #X obj 155 76 catch~ r; r@98: #X obj 155 106 *~ 0.45; r@98: #X obj 30 104 *~ 0.45; r@98: #X obj 30 210 prvu~; r@98: #X obj 155 213 prvu~; r@98: #X obj 100 69 / 127; r@98: #X obj 100 34 inlet; r@98: #X obj 30 239 outlet; r@98: #X obj 155 241 outlet; r@98: #X obj 155 132 /~ 1; r@98: #X obj 30 131 /~ 1; r@98: #X obj 204 29 inlet; r@98: #X connect 1 0 4 0; r@98: #X connect 2 0 3 0; r@98: #X connect 3 0 11 0; r@98: #X connect 4 0 12 0; r@98: #X connect 5 0 9 0; r@98: #X connect 6 0 10 0; r@98: #X connect 7 0 3 1; r@98: #X connect 7 0 4 1; r@98: #X connect 8 0 7 0; r@98: #X connect 11 0 0 1; r@98: #X connect 11 0 6 0; r@98: #X connect 12 0 0 0; r@98: #X connect 12 0 5 0; r@98: #X connect 13 0 12 1; r@98: #X connect 13 0 11 1; r@98: #X restore 570 -116 pd opLevels; r@98: #X msg 570 -167 5; r@98: #X msg 44 -195 1; r@98: #X obj 44 -172 s bladeLen; r@98: #X obj -158 -163 s NoOfSources; r@100: #X obj 148 339 s topSpeed; r@100: #X obj 96 313 hsl 100 20 0 100 0 0 empty empty empty -2 -8 0 10 -262144 r@100: -1 -1 157 1; r@100: #X floatatom 93 339 8 0 0 0 - - -; r@98: #X text 77 -196 Blade Length; r@98: #X text 76 -130 Arm Length; r@98: #X text -130 -186 Number of Sources; r@100: #X text 204 317 Top Speed; r@99: #X obj 840 -121 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10 r@100: -262144 -1 -1 7425 1; r@98: #X floatatom 837 -89 8 0 0 0 - - -; r@98: #N canvas 528 427 426 335 thickCalc 0; r@98: #X obj 173 139 r NoOfSources; r@98: #X obj 158 115 -; r@98: #X obj 158 164 /; r@98: #X floatatom 126 147 5 0 0 0 - - -; r@98: #X floatatom 94 189 8 0 0 0 - - -; r@98: #X obj 173 72 t f b; r@98: #X obj 200 95 delay 9; r@98: #X text 58 237 Calculates the difference in thickness between sources r@98: ; r@98: #X text 59 254 based on the blade tapering in a straight line; r@98: #X obj 158 19 r hiltThick; r@98: #X obj 173 44 r tipThick; r@98: #X obj 158 187 s deltaThick; r@98: #X connect 0 0 2 1; r@98: #X connect 1 0 2 0; r@98: #X connect 1 0 3 0; r@98: #X connect 2 0 4 0; r@98: #X connect 2 0 11 0; r@98: #X connect 5 0 1 1; r@98: #X connect 5 1 6 0; r@98: #X connect 6 0 1 0; r@98: #X connect 9 0 1 0; r@98: #X connect 10 0 5 0; r@98: #X restore 402 -93 pd thickCalc; r@100: #X obj 90 400 hsl 100 20 0 0.03 0 0 empty empty empty -2 -8 0 10 -262144 r@99: -1 -1 2805 1; r@100: #X obj 89 485 hsl 100 20 0 0.01 0 0 empty empty empty -2 -8 0 10 -262144 r@99: -1 -1 2475 1; r@100: #X floatatom 87 430 8 0 0 0 - - -; r@100: #X obj 141 429 s hiltThick; r@100: #X floatatom 86 513 8 0 0 0 - - -; r@100: #X obj 144 512 s tipThick; r@100: #X text 204 402 Hilt Thickness; r@100: #X text 196 486 Tip Thickness; r@98: #X obj 244 -150 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1 r@98: -1; r@98: #X obj 244 -97 s GO; r@100: #X obj -196 326 hsl 100 20 100 1 1 0 empty empty empty -2 -8 0 10 -262144 r@99: -1 -1 6920 1; r@100: #X obj -200 411 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10 r@99: -262144 -1 -1 7425 1; r@100: #X floatatom -199 352 8 0 0 0 - - -; r@100: #X text -86 330 Distance to Observer; r@100: #X floatatom -203 439 8 0 0 0 - - -; r@100: #X text -78 405 Angle to Observer; r@98: #X obj 244 -196 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 r@98: 0 1; r@98: #X obj 244 -177 metro 200; r@98: #X obj 298 -201 hsl 100 20 300 50 0 0 empty empty empty -2 -8 0 10 r@98: -262144 -1 -1 0 1; r@98: #X obj 184 -150 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985 r@98: -1 -1; r@98: #X obj 184 -97 s setUp; r@100: #X obj 40 287 r setUp; r@98: #X obj 779 -141 r setUp; r@100: #X obj 36 377 r setUp; r@100: #X obj 35 465 r setUp; r@100: #X obj -251 305 r setUp; r@100: #X obj -254 389 r setUp; r@100: #X obj -140 353 s obsDistance; r@100: #X obj -144 440 s obsAngle; r@98: #N canvas 303 28 1094 768 angleCalc 0; r@98: #X obj -129 105 * 0.75; r@98: #X obj 325 234 * 0.25; r@98: #X obj -129 145 /; r@98: #X obj -144 199 * 1000; r@98: #X obj 263 254 delay \$1; r@98: #X obj 236 202 f; r@98: #X obj 236 159 r GO; r@98: #X obj 236 228 t f b; r@98: #X msg 227 367 0; r@98: #X obj 325 276 /; r@98: #X obj 325 298 * 1000; r@98: #X obj -127 225 s \$0_thisDe; r@98: #X obj 251 181 r \$0_thisDe; r@98: #X obj 145 237 r sweepAngle; r@98: #X obj -129 81 r maxCirc; r@98: #X obj 325 212 r maxCirc; r@98: #X obj -114 124 r topSpeed; r@98: #X obj 340 255 r topSpeed; r@98: #X obj 644 360 delay \$1; r@98: #X obj 646 302 f; r@98: #X obj 639 248 r GO; r@98: #X obj 646 328 t f b; r@98: #X obj 682 208 r maxCirc; r@98: #X obj 697 230 r topSpeed; r@98: #X obj 682 254 /; r@98: #X obj 682 276 * 1000; r@98: #X obj 644 407 s end; r@98: #X obj -77 312 r end; r@98: #X obj 145 260 * -0.25; r@98: #X text -193 45 0.75 represents the ratio of swing that; r@98: #X text 200 118 0.25 represents the ratio of swing that; r@98: #X text 200 132 the sword is decelerating; r@98: #X text -102 149 Time taken for acceleration; r@98: #X text -54 221 Send as a delay; r@98: #X text 280 160 Recieve as a delay; r@98: #X text -36 312 Reset angle; r@98: #X text -38 325 once swing complete; r@98: #X text 622 426 Send bang message at the; r@98: #X text 623 438 end of the swing to reset; r@98: #X text 379 296 Time for last; r@98: #X text 381 307 1/4 of swing; r@98: #X text -193 59 the sword is before 0 degrees; r@98: #X text -121 700 Output of complete swing \, split into 75% before r@98: 0 degrees and 25% past 0 degrees; r@98: #X text 568 517 Once delay from start to 0 degrees complete; r@98: #X text 564 535 count down from 0 to finish the total swing angle; r@98: #X text 98 9 Patch that calculates the angle between 0 degrees for r@98: the full length of the swing; r@98: #X obj -144 482 line~; r@98: #X obj 86 601 metro 10; r@98: #X obj 86 632 snapshot~; r@98: #X floatatom 85 656 8 0 0 0 - - -; r@98: #X obj 172 397 line~; r@98: #X msg 172 350 \$1 \$2; r@98: #X obj 151 319 pack; r@98: #X obj 86 570 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 r@98: 1; r@98: #X floatatom -108 266 5 0 0 0 - - -; r@98: #X msg -90 438 \$1; r@98: #X obj -48 365 r sweepAngle; r@98: #X obj -48 387 * 0.75; r@98: #X msg -144 427 0 \$1; r@98: #X obj -62 341 r setUp; r@98: #X obj 151 294 f; r@98: #X obj -4 549 +~; r@98: #X obj 227 342 r setUp; r@98: #X floatatom -63 474 5 0 0 0 - - -; r@98: #X text 11 464 comment; r@98: #X obj -63 409 f; r@98: #X floatatom -26 434 5 0 0 0 - - -; r@98: #X obj 286 343 r end; r@98: #X obj 632 276 delay 9; r@98: #X obj 644 383 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 r@98: -1 -1; r@98: #X obj -144 174 f; r@98: #X obj -163 143 r GO; r@98: #X obj -4 633 s~ swordAngle; r@98: #X text 241 325 Set to 0 at end; r@98: #X obj 86 545 loadbang; r@98: #X obj 68 509 r obsAngle; r@98: #X obj -4 576 +~ 1; r@98: #X text 141 470 Adding in the observer angle here offsets the swing r@98: angle by the angle the observer is at. This makes all the future calculations r@98: as if the observer is positioned at 0 degrees to the swordSwing.; r@98: #X connect 0 0 2 0; r@98: #X connect 1 0 9 0; r@98: #X connect 2 0 70 1; r@98: #X connect 3 0 11 0; r@98: #X connect 3 0 54 0; r@98: #X connect 3 0 58 0; r@98: #X connect 4 0 60 0; r@98: #X connect 5 0 7 0; r@98: #X connect 6 0 5 0; r@98: #X connect 7 0 4 1; r@98: #X connect 7 1 4 0; r@98: #X connect 8 0 50 0; r@98: #X connect 9 0 10 0; r@98: #X connect 10 0 52 1; r@98: #X connect 12 0 5 1; r@98: #X connect 13 0 28 0; r@98: #X connect 14 0 0 0; r@98: #X connect 15 0 1 0; r@98: #X connect 16 0 2 1; r@98: #X connect 17 0 9 1; r@98: #X connect 18 0 69 0; r@98: #X connect 19 0 21 0; r@98: #X connect 20 0 68 0; r@98: #X connect 21 0 18 1; r@98: #X connect 21 1 18 0; r@98: #X connect 22 0 24 0; r@98: #X connect 23 0 24 1; r@98: #X connect 24 0 25 0; r@98: #X connect 25 0 19 1; r@98: #X connect 27 0 65 0; r@98: #X connect 28 0 60 1; r@98: #X connect 46 0 61 0; r@98: #X connect 47 0 48 0; r@98: #X connect 48 0 49 0; r@98: #X connect 50 0 61 1; r@98: #X connect 51 0 50 0; r@98: #X connect 52 0 51 0; r@98: #X connect 53 0 47 0; r@98: #X connect 55 0 46 0; r@98: #X connect 55 0 63 0; r@98: #X connect 56 0 57 0; r@98: #X connect 57 0 65 1; r@98: #X connect 57 0 66 0; r@98: #X connect 58 0 46 0; r@98: #X connect 59 0 65 0; r@98: #X connect 60 0 52 0; r@98: #X connect 61 0 76 0; r@98: #X connect 62 0 8 0; r@98: #X connect 65 0 55 0; r@98: #X connect 67 0 8 0; r@98: #X connect 68 0 19 0; r@98: #X connect 69 0 26 0; r@98: #X connect 70 0 3 0; r@98: #X connect 71 0 70 0; r@98: #X connect 74 0 53 0; r@98: #X connect 75 0 76 1; r@98: #X connect 76 0 72 0; r@98: #X connect 76 0 48 0; r@98: #X restore 401 -126 pd angleCalc; r@98: #X obj 573 -145 hsl 100 25 0 127 0 0 empty empty empty -2 -8 0 10 -262144 r@99: -1 -1 3118 1; r@98: #X obj 44 -219 loadbang; r@98: #X obj 42 -150 loadbang; r@98: #X obj -158 -208 loadbang; r@98: #X msg -156 -114 0; r@98: #X obj -156 -92 s elev; r@100: #X text -81 417 (Azimuth); r@98: #X obj -156 -137 loadbang; r@98: #X obj 467 575 s thisTS; r@98: #X obj 486 554 s thisSA; r@98: #X obj 506 532 s thisHT; r@98: #X obj 525 509 s thisTT; r@98: #X obj 545 488 s thisOD; r@98: #X obj 564 468 s thisOA; r@98: #X obj 584 446 s thisG; r@100: #X obj 93 287 r thisTS; r@98: #X obj 837 -142 r thisSA; r@100: #X obj 87 377 r thisHT; r@100: #X obj 86 465 r thisTT; r@100: #X obj -199 305 r thisOD; r@100: #X obj -202 390 r thisOA; r@98: #X obj 518 -165 r thisG; r@98: #X obj 467 422 unpack f f f f f f f; r@98: #X obj -208 -137 r setUp; r@98: #X obj -211 -206 r setUp; r@98: #X obj -7 -152 r setUp; r@98: #X obj -8 -217 r setUp; r@98: #X text 404 422 Presets; r@98: #X msg 476 317 20 160 0.01 0.004 2 0 127; r@98: #X msg 467 294 43 215 0.0085 0.0025 4 90 40; r@98: #X msg 486 340 30 280 0.0095 0.0032 2 60 120; r@98: #X text 736 303 Currently the noise sources are not connected but still r@98: getting a zipping type sound. It seems to get worse with sources lower r@98: down the blade - this needs looked into; r@98: #X obj 467 265 loadbang; r@98: #X obj 184 -202 loadbang; r@98: #X obj 184 -178 delay 13; r@98: #X obj 419 347 t b; r@98: #X obj 399 370 s setUp; r@100: #X obj -204 485 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10 r@98: -262144 -1 -1 0 1; r@100: #X floatatom -207 513 8 0 0 0 - - -; r@100: #X text -82 479 Angle to Observer; r@100: #X obj -258 463 r setUp; r@100: #X obj -206 464 r thisOE; r@100: #X obj -148 514 s obsElev; r@100: #X text -85 491 (Elevation); r@99: #X obj 838 -43 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10 r@99: -262144 -1 -1 3300 1; r@98: #X floatatom 835 -11 8 0 0 0 - - -; r@98: #X obj 777 -63 r setUp; r@98: #X obj 835 -64 r thisSA; r@99: #X obj 833 70 hsl 100 20 -90 90 0 0 empty empty empty -2 -8 0 10 -262144 r@100: -1 -1 4950 1; r@98: #X floatatom 830 102 8 0 0 0 - - -; r@98: #X obj 772 50 r setUp; r@98: #X obj 830 49 r thisSA; r@99: #X obj 831 148 hsl 100 20 -90 90 0 0 empty empty empty -2 -8 0 10 -262144 r@99: -1 -1 3300 1; r@98: #X floatatom 828 180 8 0 0 0 - - -; r@98: #X obj 770 128 r setUp; r@98: #X obj 828 127 r thisSA; r@100: #N canvas 419 64 689 650 allSource 0; r@98: #X obj 187 127 r distance; r@98: #X obj 170 106 r angle; r@98: #X obj 153 65 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 r@98: -1; r@98: #X obj 153 37 r setUp; r@98: #X obj 204 147 r elev; r@98: #X msg 153 84 10; r@98: #X obj 153 170 tenSource; r@98: #X connect 0 0 6 2; r@98: #X connect 1 0 6 1; r@98: #X connect 2 0 5 0; r@98: #X connect 3 0 2 0; r@98: #X connect 4 0 6 3; r@98: #X connect 5 0 6 0; r@98: #X restore 401 -65 pd allSource; r@98: #X obj 885 101 s presweepElev; r@98: #X obj 883 179 s postsweepElev; r@98: #X text 944 71 pre-sweep elevation; r@98: #X text 942 148 post-sweep elevation; r@98: #X text 951 -120 pre-sweep azimuth; r@98: #X text 949 -42 post-sweep azimuth; r@98: #X obj 892 -90 s presweepAzim; r@98: #X obj 890 -12 s postsweepAzim; r@98: #X obj 42 -108 s start_armLength; r@98: #X msg 42 -129 0.35; r@98: #X obj 420 -40 sweepTime; r@99: #X obj 682 -173 hsl 100 25 1 100 0 0 empty empty empty -2 -8 0 10 -262144 r@99: -1 -1 900 1; r@99: #X floatatom 698 -133 5 0 0 0 - - -; r@98: #X msg -158 -186 10; r@99: #X obj 679 -217 loadbang; r@99: #X msg 679 -194 5; r@99: #N canvas 72 23 1360 722 maxCircCalc 0; r@99: #X obj 440 104 +; r@99: #X obj 468 128 s length; r@99: #X obj 153 86 r presweepAzim; r@99: #X obj 644 76 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1 r@99: -1; r@99: #X obj 644 129 s GO; r@99: #X obj 584 76 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985 -1 r@99: -1; r@99: #X obj 584 129 s setUp; r@99: #X obj 153 132 * 6.28312; r@99: #X obj 153 110 / 360; r@99: #X obj 153 174 *; r@99: #X floatatom 91 198 5 0 0 0 - - -; r@99: #X text 194 175 Circumference of the nearest source on blade; r@99: #X text 307 191 up to 0 azimuth; r@99: #X obj 153 200 s minPreCirc; r@99: #X obj 437 279 * 6.28312; r@99: #X obj 437 257 / 360; r@99: #X obj 437 321 *; r@99: #X floatatom 375 345 5 0 0 0 - - -; r@99: #X text 478 322 Circumference of the nearest source on blade; r@99: #X obj 437 233 r postsweepAzim; r@99: #X obj 437 347 s minPostCirc; r@99: #X obj 149 252 r presweepAzim; r@99: #X obj 149 276 / 360; r@99: #X obj 149 342 *; r@99: #X floatatom 85 364 8 0 0 0 - - -; r@99: #X obj 440 57 r bladeLen; r@99: #X obj 455 81 r start_armLength; r@99: #X obj 437 434 * 6.28312; r@99: #X obj 437 412 / 360; r@99: #X obj 437 478 *; r@99: #X floatatom 399 501 5 0 0 0 - - -; r@99: #X obj 437 388 r postsweepAzim; r@99: #X obj 164 362 r minPreCirc; r@99: #X obj 149 383 -; r@99: #X obj 149 426 /; r@99: #X floatatom 111 454 5 0 0 0 - - -; r@99: #X obj 164 403 r NoOfSources; r@99: #X obj 149 454 s deltaPreCirc; r@99: #X obj 437 519 -; r@99: #X obj 437 562 /; r@99: #X obj 452 539 r NoOfSources; r@99: #X obj 452 498 r minPostCirc; r@99: #X obj 437 590 s deltaPostCirc; r@99: #X floatatom 397 591 5 0 0 0 - - -; r@99: #X text 33 334 Max Circumference; r@99: #X text 323 472 Max Circumference; r@99: #X obj 1076 361 r presweepElev; r@99: #X obj 1091 384 r postsweepElev; r@99: #X obj 1076 419 +; r@99: #X obj 1076 441 * 0.5; r@99: #X obj 1075 488 * 6.28312; r@99: #X obj 1075 466 / 360; r@99: #X obj 1074 514 cos; r@99: #X floatatom 1020 613 5 0 0 0 - - -; r@99: #X floatatom 1126 425 5 0 0 0 - - -; r@99: #X obj 1074 536 *; r@99: #X floatatom 531 128 5 0 0 0 - - -; r@99: #X obj 1101 514 r start_armLength; r@99: #X obj 149 298 * 6.28319; r@99: #X obj 1074 562 s compSrcRadius; r@99: #X obj 452 300 r compSrcRadius; r@99: #X obj 168 153 r compSrcRadius; r@99: #X obj 364 101 r arcConst; r@99: #X obj 425 129 *; r@99: #X floatatom 387 153 5 0 0 0 - - -; r@99: #X obj 994 538 s arcConst; r@99: #X obj 425 153 s compRadius; r@99: #X obj 164 320 r compRadius; r@99: #X obj 452 456 r compRadius; r@99: #X connect 0 0 1 0; r@99: #X connect 0 0 56 0; r@99: #X connect 0 0 63 1; r@99: #X connect 2 0 8 0; r@99: #X connect 3 0 4 0; r@99: #X connect 5 0 6 0; r@99: #X connect 7 0 9 0; r@99: #X connect 8 0 7 0; r@99: #X connect 9 0 10 0; r@99: #X connect 9 0 13 0; r@99: #X connect 14 0 16 0; r@99: #X connect 15 0 14 0; r@99: #X connect 16 0 17 0; r@99: #X connect 16 0 20 0; r@99: #X connect 19 0 15 0; r@99: #X connect 21 0 22 0; r@99: #X connect 22 0 58 0; r@99: #X connect 23 0 24 0; r@99: #X connect 23 0 33 0; r@99: #X connect 25 0 0 0; r@99: #X connect 26 0 0 1; r@99: #X connect 27 0 29 0; r@99: #X connect 28 0 27 0; r@99: #X connect 29 0 30 0; r@99: #X connect 29 0 38 0; r@99: #X connect 31 0 28 0; r@99: #X connect 32 0 33 1; r@99: #X connect 33 0 34 0; r@99: #X connect 34 0 35 0; r@99: #X connect 34 0 37 0; r@99: #X connect 36 0 34 1; r@99: #X connect 38 0 39 0; r@99: #X connect 39 0 42 0; r@99: #X connect 39 0 43 0; r@99: #X connect 40 0 39 1; r@99: #X connect 41 0 38 1; r@99: #X connect 46 0 48 0; r@99: #X connect 47 0 48 1; r@99: #X connect 48 0 49 0; r@99: #X connect 48 0 54 0; r@99: #X connect 49 0 51 0; r@99: #X connect 50 0 52 0; r@99: #X connect 51 0 50 0; r@99: #X connect 52 0 55 0; r@99: #X connect 52 0 65 0; r@99: #X connect 55 0 53 0; r@99: #X connect 55 0 59 0; r@99: #X connect 57 0 55 1; r@99: #X connect 58 0 23 0; r@99: #X connect 60 0 16 1; r@99: #X connect 61 0 9 1; r@99: #X connect 62 0 63 0; r@99: #X connect 63 0 64 0; r@99: #X connect 63 0 66 0; r@99: #X connect 67 0 23 1; r@99: #X connect 68 0 29 1; r@99: #X restore 392 -16 pd maxCircCalc; r@99: #X msg 906 -144 80; r@99: #X obj 398 27 centreAngles; r@100: #X obj -89 55 hsl 128 15 -50 50 0 0 empty empty empty -2 -8 0 10 -262144 r@100: -1 -1 7758 1; r@100: #X obj -90 125 hsl 128 15 -50 50 0 0 empty empty empty -2 -8 0 10 -262144 r@100: -1 -1 6439 1; r@100: #X obj -90 192 hsl 128 15 -50 50 0 0 empty empty empty -2 -8 0 10 -262144 r@100: -1 -1 7458 1; r@100: #X obj -92 78 s Xobs; r@100: #X obj -93 145 s Yobs; r@100: #X obj -93 214 s Zobs; r@100: #X floatatom -132 78 5 0 0 0 - - -; r@100: #X floatatom -132 146 5 0 0 0 - - -; r@100: #X floatatom -133 214 5 0 0 0 - - -; r@100: #X msg -84 31 0; r@100: #X msg -90 166 0; r@100: #X msg -86 101 0.7; r@100: #X obj -137 29 r setUp; r@100: #X obj -142 102 r setUp; r@100: #X obj -146 169 r setUp; r@100: #X msg -34 100 0; r@100: #X msg 955 -148 90; r@100: #X msg -48 166 4; r@100: #X msg -42 27 4; r@100: #X msg 898 47 0; r@98: #X connect 3 0 5 0; r@98: #X connect 4 0 0 0; r@98: #X connect 4 1 1 0; r@99: #X connect 5 0 49 0; r@98: #X connect 6 0 7 0; r@98: #X connect 10 0 9 0; r@98: #X connect 10 0 11 0; r@98: #X connect 16 0 17 0; r@99: #X connect 16 0 112 0; r@98: #X connect 19 0 21 0; r@98: #X connect 19 0 22 0; r@98: #X connect 20 0 23 0; r@98: #X connect 20 0 24 0; r@98: #X connect 27 0 28 0; r@98: #X connect 29 0 31 0; r@98: #X connect 29 0 46 0; r@98: #X connect 30 0 33 0; r@98: #X connect 30 0 47 0; r@98: #X connect 35 0 36 0; r@98: #X connect 36 0 27 0; r@98: #X connect 37 0 36 1; r@98: #X connect 38 0 39 0; r@98: #X connect 40 0 10 0; r@98: #X connect 41 0 16 0; r@98: #X connect 42 0 19 0; r@98: #X connect 43 0 20 0; r@98: #X connect 44 0 29 0; r@98: #X connect 45 0 30 0; r@99: #X connect 49 0 4 0; r@99: #X connect 50 0 6 0; r@99: #X connect 51 0 115 0; r@99: #X connect 52 0 119 0; r@99: #X connect 53 0 54 0; r@99: #X connect 56 0 53 0; r@99: #X connect 64 0 10 0; r@99: #X connect 66 0 19 0; r@99: #X connect 67 0 20 0; r@99: #X connect 68 0 29 0; r@99: #X connect 69 0 30 0; r@99: #X connect 70 0 49 0; r@99: #X connect 71 0 57 0; r@99: #X connect 71 1 58 0; r@99: #X connect 71 2 59 0; r@99: #X connect 71 3 60 0; r@99: #X connect 71 4 61 0; r@99: #X connect 71 5 62 0; r@99: #X connect 71 6 63 0; r@99: #X connect 72 0 53 0; r@99: #X connect 73 0 119 0; r@99: #X connect 74 0 115 0; r@99: #X connect 75 0 6 0; r@99: #X connect 77 0 71 0; r@99: #X connect 77 0 84 0; r@99: #X connect 78 0 71 0; r@99: #X connect 78 0 84 0; r@99: #X connect 79 0 71 0; r@99: #X connect 79 0 84 0; r@99: #X connect 81 0 78 0; r@99: #X connect 82 0 83 0; r@99: #X connect 83 0 38 0; r@99: #X connect 84 0 85 0; r@99: #X connect 86 0 87 0; r@99: #X connect 86 0 91 0; r@99: #X connect 89 0 86 0; r@99: #X connect 90 0 86 0; r@99: #X connect 93 0 94 0; r@99: #X connect 93 0 113 0; r@99: #X connect 95 0 93 0; r@99: #X connect 97 0 98 0; r@99: #X connect 97 0 106 0; r@99: #X connect 99 0 97 0; r@99: #X connect 100 0 97 0; r@99: #X connect 101 0 102 0; r@99: #X connect 101 0 107 0; r@99: #X connect 103 0 101 0; r@99: #X connect 104 0 101 0; r@99: #X connect 115 0 114 0; r@99: #X connect 117 0 4 1; r@99: #X connect 117 0 118 0; r@99: #X connect 119 0 8 0; r@99: #X connect 120 0 121 0; r@99: #X connect 121 0 117 0; r@99: #X connect 123 0 16 0; r@100: #X connect 125 0 128 0; r@100: #X connect 125 0 131 0; r@100: #X connect 126 0 129 0; r@100: #X connect 126 0 132 0; r@100: #X connect 127 0 130 0; r@100: #X connect 127 0 133 0; r@100: #X connect 134 0 125 0; r@100: #X connect 135 0 127 0; r@100: #X connect 136 0 126 0; r@100: #X connect 137 0 125 0; r@100: #X connect 138 0 126 0; r@100: #X connect 139 0 127 0; r@100: #X connect 140 0 126 0; r@100: #X connect 141 0 16 0; r@100: #X connect 142 0 127 0; r@100: #X connect 143 0 125 0; r@100: #X connect 144 0 97 0;