view June/woosh_D3.pd @ 115:61d267c71a18

freqCalcCyl2_D4Mach added. This includes the effect of mach number on the angle of sound radiated from the dipole. This is limited up to 0.3M. angleCalc converted to an object for both control and audio.
author Rod Selfridge <r.selfridge@qmul.ac.uk>
date Fri, 31 Jul 2015 07:15:40 +0100
parents 5c8267c02763
children
line wrap: on
line source
#N canvas 111 28 1171 835 10;
#X obj 541 -103 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
#X obj 604 -103 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
#X text 601 -194 Gain;
#X obj 540 -220 loadbang;
#N canvas 865 368 284 318 opLevels 0;
#X obj 85 188 dac~;
#X obj 30 70 catch~ l;
#X obj 155 76 catch~ r;
#X obj 155 106 *~ 0.45;
#X obj 30 104 *~ 0.45;
#X obj 30 210 prvu~;
#X obj 155 213 prvu~;
#X obj 100 69 / 127;
#X obj 100 34 inlet;
#X obj 30 239 outlet;
#X obj 155 241 outlet;
#X obj 155 30 r NoOfSources;
#X obj 30 131 /~ 15;
#X obj 155 132 /~ 15;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 13 0;
#X connect 4 0 12 0;
#X connect 5 0 9 0;
#X connect 6 0 10 0;
#X connect 7 0 3 1;
#X connect 7 0 4 1;
#X connect 8 0 7 0;
#X connect 11 0 12 1;
#X connect 11 0 13 1;
#X connect 12 0 0 0;
#X connect 12 0 5 0;
#X connect 13 0 0 1;
#X connect 13 0 6 0;
#X restore 540 -146 pd opLevels;
#X msg 540 -197 5;
#N canvas 601 144 807 545 speedCalc 0;
#X obj 59 -12 inlet;
#X obj 135 -11 inlet;
#X obj 217 -12 inlet;
#X obj 317 -12 inlet;
#X obj 59 11 s \$0_swLen;
#X obj 135 11 s \$0_armLen;
#X obj 317 10 s \$0_tipSpeed;
#X obj 142 237 r \$0_tipSpeed;
#X obj 211 437 outlet;
#X obj 211 414 r \$0_minSpeed;
#X obj 127 285 s \$0_minSpeed;
#X obj 310 414 r \$0_deltaSpeed;
#X obj 504 335 s \$0_deltaSpeed;
#X obj 310 437 outlet;
#X obj 212 104 r \$0_swLen;
#X obj 127 216 /;
#X floatatom 81 243 5 0 0 0 - - -;
#X obj 227 127 r \$0_armLen;
#X obj 212 194 +;
#X obj 227 149 t f b;
#X floatatom 212 216 5 0 0 0 - - -;
#X obj 99 143 r \$0_armLen;
#X obj 217 11 s \$0_sourceTot;
#X obj 519 274 r \$0_sourceTot;
#X obj 127 261 *;
#X floatatom 85 285 5 0 0 0 - - -;
#X obj 519 186 r \$0_minSpeed;
#X obj 504 253 -;
#X obj 504 163 r \$0_tipSpeed;
#X obj 504 296 /;
#X obj 519 207 t f b;
#X floatatom 521 315 5 0 0 0 - - -;
#X obj 546 230 delay 9;
#X text 244 198 Length of blade and arm;
#X obj 99 165 t f b;
#X obj 126 189 delay 9;
#X obj 254 173 delay 6;
#X text -49 216 Ratio of arm to total length;
#X text 69 308 Speed of blade at the hilt;
#X text 387 247 Difference between;
#X text 369 259 speed at tip and hilt;
#X text 459 357 Difference in speed for each source;
#X text 459 369 based on a linear scale;
#X text 417 16 as well as the difference in speed of each source;
#X text 431 2 Patch that calculates the minimum speed;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 22 0;
#X connect 3 0 6 0;
#X connect 7 0 24 1;
#X connect 9 0 8 0;
#X connect 11 0 13 0;
#X connect 14 0 18 0;
#X connect 15 0 16 0;
#X connect 15 0 24 0;
#X connect 17 0 19 0;
#X connect 18 0 20 0;
#X connect 18 0 15 1;
#X connect 19 0 18 1;
#X connect 19 1 36 0;
#X connect 21 0 34 0;
#X connect 23 0 29 1;
#X connect 24 0 10 0;
#X connect 24 0 25 0;
#X connect 26 0 30 0;
#X connect 27 0 29 0;
#X connect 28 0 27 0;
#X connect 29 0 31 0;
#X connect 29 0 12 0;
#X connect 30 0 27 1;
#X connect 30 1 32 0;
#X connect 32 0 27 0;
#X connect 34 0 15 0;
#X connect 34 1 35 0;
#X connect 35 0 15 0;
#X connect 36 0 18 0;
#X restore 534 140 pd speedCalc;
#X floatatom 443 164 8 0 0 0 - - -;
#X floatatom 688 162 8 0 0 0 - - -;
#X msg 14 -225 1;
#X msg 13 -94 100;
#X msg 12 -159 0.59;
#X obj 534 45 r bladeLen;
#X obj 557 68 r armLength;
#X obj 580 92 r NoOfSources;
#X obj 603 117 r topSpeed;
#X obj 14 -202 s bladeLen;
#X obj 12 -138 s armLength;
#X obj 13 -71 s NoOfSources;
#X obj 78 89 s topSpeed;
#X obj 26 63 hsl 100 20 0 100 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X floatatom 23 89 8 0 0 0 - - -;
#X text 47 -226 Blade Length;
#X text 46 -160 Arm Length;
#X text 41 -94 Number of Sources;
#X text 134 67 Top Speed;
#X obj 23 147 hsl 100 20 0 360 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X floatatom 20 179 8 0 0 0 - - -;
#X obj 75 178 s sweepAngle;
#X text 134 148 Sweep Angle;
#X obj 370 -13 r sweepAngle;
#X obj 277 -57 r bladeLen;
#X obj 323 -34 r armLength;
#X obj 508 164 s firstSpeed;
#X obj 603 163 s deltaSpeed;
#X floatatom 220 38 8 0 0 0 - - -;
#X floatatom 458 36 8 0 0 0 - - -;
#N canvas 833 342 426 335 thickCalc 0;
#X obj 173 139 r NoOfSources;
#X obj 23 16 inlet;
#X obj 26 64 inlet;
#X obj 26 86 s \$0_tipThick;
#X obj 158 115 -;
#X obj 158 164 /;
#X obj 158 187 outlet;
#X obj 23 39 s \$0_hiltThick;
#X floatatom 126 147 5 0 0 0 - - -;
#X obj 173 44 r \$0_tipThick;
#X obj 158 19 r \$0_hiltThick;
#X floatatom 94 189 8 0 0 0 - - -;
#X obj 173 72 t f b;
#X obj 200 95 delay 9;
#X text 58 237 Calculates the difference in thickness between sources
;
#X text 59 254 based on the blade tapering in a straight line;
#X connect 0 0 5 1;
#X connect 1 0 7 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 5 0 11 0;
#X connect 9 0 12 0;
#X connect 10 0 4 0;
#X connect 12 0 4 1;
#X connect 12 1 13 0;
#X connect 13 0 4 0;
#X restore 372 -123 pd thickCalc;
#X obj 372 -100 s deltaThick;
#X floatatom 317 -99 8 0 0 0 - - -;
#X obj 20 238 hsl 100 20 0 0.03 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 19 323 hsl 100 20 0 0.01 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X floatatom 17 268 8 0 0 0 - - -;
#X obj 71 267 s hiltThick;
#X floatatom 16 351 8 0 0 0 - - -;
#X obj 74 350 s tipThick;
#X text 134 240 Hilt Thickness;
#X text 126 324 Tip Thickness;
#X obj 372 -168 r hiltThick;
#X obj 441 -146 r tipThick;
#X obj 214 -180 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 214 -127 s GO;
#X obj 775 -93 tenSource;
#X obj 19 405 hsl 100 20 100 1 1 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 15 490 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X floatatom 16 431 8 0 0 0 - - -;
#X text 129 409 Distance to Observer;
#X floatatom 12 518 8 0 0 0 - - -;
#X text 137 484 Angle to Observer;
#X obj 809 -129 r distance;
#X obj 792 -150 r angle;
#X obj 775 -191 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 214 -226 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj 214 -207 metro 200;
#X obj 268 -231 hsl 100 20 300 50 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X obj 154 -180 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
-1 -1;
#X obj 154 -127 s setUp;
#X obj -30 37 r setUp;
#X obj -38 127 r setUp;
#X obj -34 215 r setUp;
#X obj -35 303 r setUp;
#X obj -36 384 r setUp;
#X obj -39 468 r setUp;
#X obj 775 -219 r setUp;
#X obj 75 432 s obsDistance;
#X obj 71 519 s obsAngle;
#N canvas 427 69 911 675 circumferCalc 0;
#X obj 266 13 inlet;
#X floatatom 365 172 5 0 0 0 - - -;
#X obj 80 13 inlet;
#X obj 170 13 inlet;
#X obj 247 146 +;
#X obj 316 172 / 360;
#X obj 247 171 * 3.14159;
#X obj 247 219 *;
#X obj 247 195 * 2;
#X obj 80 36 s \$0_bladeLen;
#X obj 170 36 s \$0_armLength;
#X obj 266 36 s \$0_sweepAngle;
#X obj 247 99 r \$0_bladeLen;
#X obj 262 123 r \$0_armLength;
#X obj 316 148 r \$0_sweepAngle;
#X floatatom 734 192 5 0 0 0 - - -;
#X obj 685 192 / 360;
#X floatatom 628 168 5 0 0 0 - - -;
#X obj 616 191 * 3.14159;
#X obj 616 239 *;
#X floatatom 560 267 8 0 0 0 - - -;
#X obj 616 215 * 2;
#X obj 616 143 r \$0_armLength;
#X obj 685 168 r \$0_sweepAngle;
#X obj 616 267 s \$0_minCirc;
#X obj 265 459 r \$0_minCirc;
#X obj 265 481 outlet;
#X obj 262 279 r \$0_minCirc;
#X floatatom 188 339 8 0 0 0 - - -;
#X obj 247 305 -;
#X obj 247 341 /;
#X obj 277 317 r NoOfSources;
#X floatatom 185 370 8 0 0 0 - - -;
#X obj 247 367 s \$0_deltaCirc;
#X obj 354 459 r \$0_deltaCirc;
#X obj 354 481 outlet;
#X obj 260 246 s maxCirc;
#X obj 191 172 s length;
#X text 122 176 Arc radius;
#X text 318 195 % of circle;
#X text 323 242 Circumference of arc of tip;
#X text 692 210 % of circle;
#X text 601 289 Circumference of arc of hilt;
#X floatatom 187 243 8 0 0 0 - - -;
#X text 199 390 Difference of circumference length for each source
;
#X text 199 405 based on linear spacing between sources;
#X connect 0 0 11 0;
#X connect 2 0 9 0;
#X connect 3 0 10 0;
#X connect 4 0 6 0;
#X connect 4 0 37 0;
#X connect 5 0 7 1;
#X connect 6 0 8 0;
#X connect 7 0 29 0;
#X connect 7 0 36 0;
#X connect 7 0 43 0;
#X connect 8 0 7 0;
#X connect 12 0 4 0;
#X connect 13 0 4 1;
#X connect 14 0 5 0;
#X connect 14 0 1 0;
#X connect 16 0 19 1;
#X connect 18 0 21 0;
#X connect 19 0 20 0;
#X connect 19 0 24 0;
#X connect 21 0 19 0;
#X connect 22 0 18 0;
#X connect 22 0 17 0;
#X connect 23 0 16 0;
#X connect 23 0 15 0;
#X connect 25 0 26 0;
#X connect 27 0 29 1;
#X connect 29 0 28 0;
#X connect 29 0 30 0;
#X connect 30 0 32 0;
#X connect 30 0 33 0;
#X connect 31 0 30 1;
#X connect 34 0 35 0;
#X restore 277 11 pd circumferCalc;
#X obj 277 37 s circumMin;
#X obj 370 36 s deltaCircum;
#N canvas 361 106 954 607 angleCalc 0;
#X obj -142 102 * 0.75;
#X obj 231 187 * 0.25;
#X obj -142 142 /;
#X msg -157 248 1 \$1;
#X obj -157 225 f;
#X obj -157 274 line 0;
#X obj -171 193 r GO;
#X msg -113 248 0;
#X obj -142 166 * 1000;
#X obj 169 334 line 0;
#X obj 169 207 delay \$1;
#X obj 142 155 f;
#X obj 142 112 r GO;
#X obj 142 181 t f b;
#X obj 169 283 i;
#X msg 169 305 1 \$1;
#X msg 214 305 0;
#X obj 231 229 /;
#X obj 231 251 * 1000;
#X obj -157 352 *;
#X obj -128 297 r sweepAngle;
#X obj -154 405 hsl 100 25 0 360 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj -128 319 * -0.75;
#X obj -157 376 +;
#X obj -128 343 * -1;
#X obj -127 191 s \$0_thisDe;
#X obj 157 134 r \$0_thisDe;
#X obj 169 372 *;
#X obj 219 332 r sweepAngle;
#X obj 172 396 hsl 100 25 -360 360 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X obj 214 283 r GO;
#X obj -142 78 r maxCirc;
#X obj 231 165 r maxCirc;
#X obj -127 121 r topSpeed;
#X obj 246 208 r topSpeed;
#X obj -35 535 s currentAngle;
#X obj -35 489 +;
#X floatatom -35 514 8 0 0 0 - - -;
#X obj -20 464 t f b;
#X obj 474 202 delay \$1;
#X obj 476 144 f;
#X obj 476 118 r GO;
#X obj 476 170 t f b;
#X obj 512 50 r maxCirc;
#X obj 527 72 r topSpeed;
#X obj 512 96 /;
#X obj 512 118 * 1000;
#X obj 474 224 s end;
#X obj -113 227 r end;
#X obj -20 431 r end;
#X obj 219 355 * -0.25;
#X text -206 42 0.75 represents the ratio of swing that;
#X text 106 71 0.25 represents the ratio of swing that;
#X text 106 85 the sword is decelerating;
#X text -115 146 Time taken for acceleration;
#X text -52 188 Send as a delay;
#X text 186 113 Recieve as a delay;
#X text -226 173 Start swing;
#X text -72 227 Reset angle;
#X text -72 239 once swing complete;
#X text -73 323 Start angle is;
#X text -73 335 3/4 of total angle;
#X text 452 243 Send bang message at the;
#X text 453 255 end of the swing to reset;
#X text 285 249 Time for last;
#X text 287 260 1/4 of swing;
#X text 245 294 Set to 0 at start;
#X text -206 56 the sword is before 0 degrees;
#X text -92 565 Output of complete swing \, split into 75% before 0
degrees and 25% past 0 degrees;
#X text 276 354 Once delay from start to 0 degrees complete;
#X text 276 366 count down from 0 to finish the total swing angle;
#X text 98 9 Patch that calculates the angle between 0 degrees for
the full length of the swing;
#X connect 0 0 2 0;
#X connect 1 0 17 0;
#X connect 2 0 8 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 19 0;
#X connect 6 0 4 0;
#X connect 7 0 5 0;
#X connect 8 0 4 1;
#X connect 8 0 25 0;
#X connect 9 0 27 0;
#X connect 10 0 14 0;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 10 1;
#X connect 13 1 10 0;
#X connect 14 0 15 0;
#X connect 15 0 9 0;
#X connect 16 0 9 0;
#X connect 17 0 18 0;
#X connect 18 0 14 1;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 21 0 36 0;
#X connect 22 0 24 0;
#X connect 22 0 19 1;
#X connect 23 0 21 0;
#X connect 24 0 23 1;
#X connect 26 0 11 1;
#X connect 27 0 29 0;
#X connect 28 0 50 0;
#X connect 29 0 38 0;
#X connect 30 0 16 0;
#X connect 31 0 0 0;
#X connect 32 0 1 0;
#X connect 33 0 2 1;
#X connect 34 0 17 1;
#X connect 36 0 37 0;
#X connect 37 0 35 0;
#X connect 38 0 36 1;
#X connect 38 1 36 0;
#X connect 39 0 47 0;
#X connect 40 0 42 0;
#X connect 41 0 40 0;
#X connect 42 0 39 1;
#X connect 42 1 39 0;
#X connect 43 0 45 0;
#X connect 44 0 45 1;
#X connect 45 0 46 0;
#X connect 46 0 40 1;
#X connect 48 0 7 0;
#X connect 49 0 38 0;
#X connect 50 0 27 1;
#X restore 431 -220 pd angleCalc;
#X obj 543 -175 hsl 100 25 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 390 1;
#X msg 775 -172 10;
#X obj 14 -249 loadbang;
#X obj 12 -180 loadbang;
#X obj 13 -116 loadbang;
#X obj 826 -113 r elev;
#X msg 15 -22 0;
#X obj 15 0 s elev;
#X text 134 496 (Azimuth);
#X obj 910 -81 tenSource;
#X obj 944 -117 r distance;
#X obj 927 -138 r angle;
#X obj 910 -179 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 910 -207 r setUp;
#X obj 961 -101 r elev;
#X obj 774 72 tenSource;
#X obj 808 36 r distance;
#X obj 791 15 r angle;
#X obj 774 -26 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 774 -54 r setUp;
#X obj 825 52 r elev;
#X obj 903 81 tenSource;
#X obj 937 45 r distance;
#X obj 920 24 r angle;
#X obj 903 -17 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 903 -45 r setUp;
#X obj 954 61 r elev;
#X obj 771 223 tenSource;
#X obj 805 187 r distance;
#X obj 788 166 r angle;
#X obj 771 125 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 771 97 r setUp;
#X obj 822 203 r elev;
#X obj 905 230 tenSource;
#X obj 939 194 r distance;
#X obj 922 173 r angle;
#X obj 905 132 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 905 104 r setUp;
#X obj 956 210 r elev;
#X msg 905 151 5;
#X msg 771 144 6;
#X msg 903 2 7;
#X msg 774 -7 8;
#X msg 910 -160 9;
#X obj 15 -45 loadbang;
#X obj 437 545 s thisTS;
#X obj 456 524 s thisSA;
#X obj 476 502 s thisHT;
#X obj 495 479 s thisTT;
#X obj 515 458 s thisOD;
#X obj 534 438 s thisOA;
#X obj 554 416 s thisG;
#X obj 23 37 r thisTS;
#X obj 20 126 r thisSA;
#X obj 17 215 r thisHT;
#X obj 16 303 r thisTT;
#X obj 16 384 r thisOD;
#X obj 13 469 r thisOA;
#X obj 488 -195 r thisG;
#X obj 437 392 unpack f f f f f f f;
#X msg 437 264 43 215 0.0085 0.0025 8 0 40;
#X msg 446 287 20 160 0.01 0.004 4 0 127;
#X obj 774 385 tenSource;
#X obj 808 349 r distance;
#X obj 791 328 r angle;
#X obj 774 287 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 774 259 r setUp;
#X obj 825 365 r elev;
#X obj 903 394 tenSource;
#X obj 937 358 r distance;
#X obj 920 337 r angle;
#X obj 903 296 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 903 268 r setUp;
#X obj 954 374 r elev;
#X obj 771 536 tenSource;
#X obj 805 500 r distance;
#X obj 788 479 r angle;
#X obj 771 438 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 771 410 r setUp;
#X obj 822 516 r elev;
#X obj 905 543 tenSource;
#X obj 939 507 r distance;
#X obj 922 486 r angle;
#X obj 905 445 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 905 417 r setUp;
#X obj 956 523 r elev;
#X msg 774 306 4;
#X msg 903 315 3;
#X msg 771 457 2;
#X msg 905 464 1;
#X msg 458 327 65 280 0.005 0.0025 20 60 20;
#X obj -37 -45 r setUp;
#X obj -40 -114 r setUp;
#X obj -37 -182 r setUp;
#X obj -38 -247 r setUp;
#X connect 3 0 5 0;
#X connect 4 0 0 0;
#X connect 4 1 1 0;
#X connect 5 0 80 0;
#X connect 6 0 7 0;
#X connect 6 0 33 0;
#X connect 6 1 8 0;
#X connect 6 1 34 0;
#X connect 9 0 16 0;
#X connect 10 0 18 0;
#X connect 11 0 17 0;
#X connect 12 0 6 0;
#X connect 13 0 6 1;
#X connect 14 0 6 2;
#X connect 15 0 6 3;
#X connect 20 0 19 0;
#X connect 20 0 21 0;
#X connect 26 0 27 0;
#X connect 26 0 28 0;
#X connect 30 0 76 2;
#X connect 31 0 76 0;
#X connect 32 0 76 1;
#X connect 37 0 38 0;
#X connect 37 0 39 0;
#X connect 40 0 42 0;
#X connect 40 0 43 0;
#X connect 41 0 44 0;
#X connect 41 0 45 0;
#X connect 48 0 37 0;
#X connect 49 0 37 1;
#X connect 50 0 51 0;
#X connect 53 0 55 0;
#X connect 53 0 74 0;
#X connect 54 0 57 0;
#X connect 54 0 75 0;
#X connect 59 0 52 2;
#X connect 60 0 52 1;
#X connect 61 0 81 0;
#X connect 62 0 63 0;
#X connect 63 0 50 0;
#X connect 64 0 63 1;
#X connect 65 0 66 0;
#X connect 67 0 20 0;
#X connect 68 0 26 0;
#X connect 69 0 40 0;
#X connect 70 0 41 0;
#X connect 71 0 53 0;
#X connect 72 0 54 0;
#X connect 73 0 61 0;
#X connect 76 0 35 0;
#X connect 76 0 77 0;
#X connect 76 1 36 0;
#X connect 76 1 78 0;
#X connect 80 0 4 0;
#X connect 81 0 52 0;
#X connect 82 0 9 0;
#X connect 83 0 11 0;
#X connect 84 0 10 0;
#X connect 85 0 52 3;
#X connect 86 0 87 0;
#X connect 90 0 89 2;
#X connect 91 0 89 1;
#X connect 92 0 123 0;
#X connect 93 0 92 0;
#X connect 94 0 89 3;
#X connect 96 0 95 2;
#X connect 97 0 95 1;
#X connect 98 0 122 0;
#X connect 99 0 98 0;
#X connect 100 0 95 3;
#X connect 102 0 101 2;
#X connect 103 0 101 1;
#X connect 104 0 121 0;
#X connect 105 0 104 0;
#X connect 106 0 101 3;
#X connect 108 0 107 2;
#X connect 109 0 107 1;
#X connect 110 0 120 0;
#X connect 111 0 110 0;
#X connect 112 0 107 3;
#X connect 114 0 113 2;
#X connect 115 0 113 1;
#X connect 116 0 119 0;
#X connect 117 0 116 0;
#X connect 118 0 113 3;
#X connect 119 0 113 0;
#X connect 120 0 107 0;
#X connect 121 0 101 0;
#X connect 122 0 95 0;
#X connect 123 0 89 0;
#X connect 124 0 86 0;
#X connect 132 0 20 0;
#X connect 133 0 26 0;
#X connect 134 0 40 0;
#X connect 135 0 41 0;
#X connect 136 0 53 0;
#X connect 137 0 54 0;
#X connect 138 0 80 0;
#X connect 139 0 125 0;
#X connect 139 1 126 0;
#X connect 139 2 127 0;
#X connect 139 3 128 0;
#X connect 139 4 129 0;
#X connect 139 5 130 0;
#X connect 139 6 131 0;
#X connect 140 0 139 0;
#X connect 141 0 139 0;
#X connect 143 0 142 2;
#X connect 144 0 142 1;
#X connect 145 0 166 0;
#X connect 146 0 145 0;
#X connect 147 0 142 3;
#X connect 149 0 148 2;
#X connect 150 0 148 1;
#X connect 151 0 167 0;
#X connect 152 0 151 0;
#X connect 153 0 148 3;
#X connect 155 0 154 2;
#X connect 156 0 154 1;
#X connect 157 0 168 0;
#X connect 158 0 157 0;
#X connect 159 0 154 3;
#X connect 161 0 160 2;
#X connect 162 0 160 1;
#X connect 163 0 169 0;
#X connect 164 0 163 0;
#X connect 165 0 160 3;
#X connect 166 0 142 0;
#X connect 167 0 148 0;
#X connect 168 0 154 0;
#X connect 169 0 160 0;
#X connect 170 0 139 0;
#X connect 171 0 86 0;
#X connect 172 0 10 0;
#X connect 173 0 11 0;
#X connect 174 0 9 0;