From 1a2b3ffec1a637ddf29023791bf6b0b854848fef Mon Sep 17 00:00:00 2001 From: Johnathon Selstad Date: Wed, 3 Nov 2021 17:01:56 -0700 Subject: [PATCH 1/4] Initial Mesh Loading Experiment This just loads the tetmesh, doesn't simulate it yet... --- src/MSHLoader.js | 159 + src/Test.obj_.msh | 15118 ++++++++++++++++++++++++++++++++++++++++++++ src/main.js | 12 + 3 files changed, 15289 insertions(+) create mode 100644 src/MSHLoader.js create mode 100644 src/Test.obj_.msh diff --git a/src/MSHLoader.js b/src/MSHLoader.js new file mode 100644 index 0000000..e0fbdf8 --- /dev/null +++ b/src/MSHLoader.js @@ -0,0 +1,159 @@ +import { + BufferAttribute, + BufferGeometry, + FileLoader, + Float32BufferAttribute, + Loader, + LoaderUtils, + Vector3 +} from '../node_modules/three/build/three.module.js'; + +/** + * Description: A THREE loader for MSH ASCII files, as created by fTetWild and other Tetrahedralization programs. + * + * Only supports ASCII encoded files. + * + * The loader returns an indexed buffer geometry. + * + * Limitations: + * ASCII decoding assumes file is UTF-8. + * + * Usage: + * const loader = new MSHLoader(); + * loader.load( './models/MSH/slotted_disk.msh', function ( geometry ) { + * scene.add( new THREE.Mesh( geometry ) ); + * }); + * + */ + +class MSHLoader extends Loader { + + constructor( manager ) { + + super( manager ); + + } + + load( url, onLoad, onProgress, onError ) { + + const scope = this; + + const loader = new FileLoader( this.manager ); + loader.setPath( this.path ); + loader.setResponseType( 'arraybuffer' ); + loader.setRequestHeader( this.requestHeader ); + loader.setWithCredentials( this.withCredentials ); + + loader.load( url, function ( text ) { + + try { + + onLoad( scope.parse( text ) ); + + } catch ( e ) { + + if ( onError ) { + + onError( e ); + + } else { + + console.error( e ); + + } + + scope.manager.itemError( url ); + + } + + }, onProgress, onError ); + + } + + parse( data ) { + + function parseASCII( data ) { + + const geometry = new BufferGeometry(); + + const indices = []; + const vertices = []; + + let numVertices = 0; + let numElements = 0; + + let inNodes = false; + let inElements = false; + + let lines = data.split('\n'); + for (let l = 0; l < lines.length; l++) { + if(lines[l].startsWith('$Nodes')) { + inNodes = true; numVertices = parseInt(lines[++l].trim()); + console.log(numVertices); continue; + } else if(lines[l].startsWith('$EndNodes')) { + inNodes = false; continue; + } + if(lines[l].startsWith('$Elements')) { + inElements = true; + numElements = parseInt(lines[++l].trim()); + console.log(numElements); + continue; + } else if(lines[l].startsWith('$EndElements')) { + inElements = false; continue; + } + + if (inNodes) { + let currentLine = lines[l].trim().split(' '); + if (currentLine.length === 4) { + //indices.push(parseInt(currentLine[0])); + vertices.push(parseFloat(currentLine[1]), parseFloat(currentLine[2]), parseFloat(currentLine[3])); + } else { + console.error('Invalid node line: ' + lines[l]); + } + } + + if (inElements) { + let currentLine = lines[l].trim().split(' '); + if (currentLine.length === 7) { + //indices.push(parseInt(currentLine[0])); + //1 4 0 1185 1192 1440 1135 + let verts = [parseInt(currentLine[3])-1, parseInt(currentLine[4])-1, parseInt(currentLine[5])-1, parseInt(currentLine[6])-1]; + indices.push(verts[0], verts[1], verts[2]); + indices.push(verts[1], verts[2], verts[3]); + indices.push(verts[0], verts[1], verts[3]); + indices.push(verts[0], verts[2], verts[3]); + } else { + console.error('Invalid Element line: ' + lines[l]); + } + } + + } + + geometry.setIndex( indices ); + geometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) ); + + return geometry; + + } + + function ensureString( buffer ) { + + if ( typeof buffer !== 'string' ) { + + return LoaderUtils.decodeText( new Uint8Array( buffer ) ); + + } + + return buffer; + + } + + // start + + return parseASCII( ensureString( data ) ); + + } + +} + +export { MSHLoader }; diff --git a/src/Test.obj_.msh b/src/Test.obj_.msh new file mode 100644 index 0000000..948c0cf --- /dev/null +++ b/src/Test.obj_.msh @@ -0,0 +1,15118 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +2353 +1 -40 20 1.17888e-14 +2 -40 20.1732 -3.02865 +3 -40 20.1775 3.10411 +4 -40 20.7737 -6.7604 +5 -40 20.7051 6.36375 +6 -40 21.7447 -10.0815 +7 -40 21.7447 10.0815 +8 -40 23.0061 -13.0663 +9 -40 23.1219 13.3142 +10 -40 24.7624 -16.2192 +11 -40 25.0678 16.6396 +12 -40 26.7758 -18.9904 +13 -40 26.7758 18.9904 +14 -40 29.0919 -21.514 +15 -39.9433 29.1589 21.6676 +16 -40 31.6806 -23.7571 +17 -40 31.6806 23.7571 +18 -40 34.5081 -25.6905 +19 -40 34.5572 25.7164 +20 -40 37.5376 -27.289 +21 -40 37.5376 27.289 +22 -40 40.8387 -28.5604 +23 -39.9629 40.864 28.5671 +24 -40 44.0423 -29.4025 +25 -40 44.0423 29.4025 +26 -40 47.4328 -29.89 +27 -40 47.9173 29.9038 +28 -40 50.5569 -29.9792 +29 -40 50.8567 29.9878 +30 -40 53.9727 -29.7201 +31 -40 53.9743 29.72 +32 -40 57.6266 -29.0144 +33 -40 57.6266 29.0144 +34 -40 60.4305 -28.1033 +35 -40 60.5665 28.0592 +36 -40 64 -26.533 +37 -40 64 26.533 +38 -40 66.9333 -24.7642 +39 -40 66.9333 24.7642 +40 -40 69.6993 22.6205 +41 -40 72.1023 -20.2852 +42 -40 72.1023 20.2852 +43 -40 74.3409 -17.5241 +44 -40 74.3862 17.4536 +45 -40 76.0784 -14.8205 +46 -39.9878 76.2175 14.5587 +47 -40 77.8237 -11.1457 +48 -40 77.6337 11.6781 +49 -40 78.7848 -8.45198 +50 -40 78.7848 8.45198 +51 -40 79.5606 -5.11567 +52 -40 79.5606 5.11567 +53 -40 79.9511 -1.57365 +54 -40 79.9511 1.06506 +55 24.185 55.6905 -5.40001 +56 -38.4985 47.7929 31.7637 +57 -38.0245 17.7992 3.3598 +58 -38.3965 56.3522 -31.3233 +59 -39.0403 56.6042 30.5326 +60 -38.1159 18.4654 -6.97335 +61 -37.9779 18.4064 7.40597 +62 -37.8118 34.1299 -28.5094 +63 -38.2671 33.9278 27.81 +64 -37.8232 22.1703 -17.0242 +65 -37.7467 21.714 16.4362 +66 -37.8714 30.0926 -25.779 +67 -38.0923 30.0186 25.4104 +68 -37.8251 81.3253 -9.15996 +69 -37.6693 81.5708 8.94494 +70 -37.6043 38.4699 -30.7865 +71 -38.4294 39.0502 30.0547 +72 -37.4293 26.0066 -22.7819 +73 -38.1288 26.6575 22.3902 +74 -37.4275 18.5092 -10.1757 +75 -37.1886 18.3871 10.6368 +76 -37.2593 52.01 -33.2213 +77 -38.0099 52.0098 32.4063 +78 -37.9422 77.1514 -17.9774 +79 -37.3571 77.8958 17.9575 +80 -37.0646 43.0778 -32.779 +81 -37.476 43.2942 32.3923 +82 -37.3896 80.6775 -12.6033 +83 -37.2189 80.85 12.671 +84 -37.0562 69.6144 -27.1854 +85 -36.9843 69.9159 27.0514 +86 -37.5189 65.21 -29.3427 +87 -37.2111 65.8549 29.3388 +88 -36.5872 22.4119 -19.9248 +89 -36.9026 22.4873 19.4722 +90 -37.067 73.4912 -23.9444 +91 -36.5462 73.7267 24.4529 +92 -37.3854 61.1812 -31.2144 +93 -37.405 61.2431 31.1631 +94 -36.8604 19.061 -13.524 +95 -36.4394 18.6658 13.6781 +96 -36.5617 84.1064 7.91444e-14 +97 -36.3447 15.7138 -1.10276 +98 -36.1882 15.5621 1.52672 +99 -36.0541 47.3729 -34.4941 +100 -36.7326 48.2788 33.8349 +101 -36.1203 84.3908 -3.2796 +102 -36.2424 84.2666 3.33103 +103 -35.8953 81.2032 -15.3389 +104 -35.8001 81.0804 15.7812 +105 -35.9109 30.9887 -29.0738 +106 -35.9316 30.365 28.6498 +107 -36.6742 16.3074 -3.99112 +108 -35.8662 15.5513 4.96984 +109 -36.1926 77.209 -21.1976 +110 -36.2049 77.1514 21.2604 +111 -36.464 56.2931 -33.5899 +112 -35.9523 56.0728 34.1691 +113 -35.4912 34.8779 -31.7505 +114 -35.7991 34.5733 31.2718 +115 -35.8172 26.9666 -26.1497 +116 -35.9419 26.4769 25.5693 +117 -36.1395 83.8808 -6.66344 +118 -35.866 84.1658 6.71801 +119 -35.9879 16.2414 -7.9463 +120 -35.7814 16.0424 8.10125 +121 -35.3272 19.0579 -17.1065 +122 -35.2189 18.8165 16.8727 +123 -35.6822 39.1024 -33.2792 +124 -35.6709 39.6896 33.4386 +125 -34.7936 84.555 -9.62403 +126 -34.5302 84.7066 9.9543 +127 -34.8726 22.4749 -22.8905 +128 -35.1815 22.6204 22.6067 +129 -34.9324 68.9935 -30.2773 +130 -34.7413 69.2889 30.3175 +131 -34.5133 52.2964 -36.0713 +132 -34.928 52.2071 35.7094 +133 -35.0162 80.7221 -18.1327 +134 -34.7011 80.9287 18.3878 +135 -34.8541 73.2859 -27.2513 +136 -34.4947 73.2243 27.7193 +137 -34.9156 15.8361 -10.5787 +138 -34.1958 15.349 11.2554 +139 -34.7727 65.0747 -32.6017 +140 -34.7935 65.1484 32.5514 +141 -34.2858 43.3004 -35.7409 +142 -34.6558 43.3958 35.4311 +143 -33.8572 84.557 -12.5192 +144 -34.4244 83.7431 13.1753 +145 -33.9654 77.7751 -23.9084 +146 -33.9801 77.3223 24.444 +147 -34.3576 60.0866 -34.8398 +148 -34.5193 60.172 34.6585 +149 -33.7542 18.9863 -19.9293 +150 -33.579 18.8306 19.9614 +151 -33.7337 15.8371 -13.9245 +152 -33.6475 15.8936 14.2904 +153 -33.3503 30.7486 -31.8601 +154 -33.2793 30.076 31.506 +155 -33.5942 27.006 -28.9969 +156 -33.7634 26.4551 28.3445 +157 -33.7077 86.8783 -0.014871 +158 -33.6867 13.1233 -1.25553 +159 -32.965 47.4247 -37.4684 +160 -33.3143 47.7929 37.2195 +161 -33.1506 35.1324 -34.3184 +162 -32.5702 34.9118 34.7543 +163 -33.465 12.97 2.69733 +164 -32.942 87.3668 -4.08488 +165 -33.0542 87.2564 4.33288 +166 -32.6951 81.4599 -20.917 +167 -32.6945 81.1644 21.3872 +168 -33.0725 22.8486 -25.8652 +169 -33.0725 22.8486 25.8652 +170 -33.3204 56.4611 -36.6893 +171 -32.4039 56.5595 37.458 +172 -32.8698 84.503 -15.0306 +173 -33.0173 84.1628 15.5636 +174 -33.0489 12.8494 -5.05601 +175 -32.8593 12.8632 6.3029 +176 -32.154 87.5069 -7.53813 +177 -32.234 87.4004 7.73447 +178 -32.5373 39.0502 -36.3514 +179 -32.8416 39.2365 36.1032 +180 -32.3157 15.8936 -17.1012 +181 -32.4306 15.9404 16.953 +182 -32.415 72.9694 -30.3257 +183 -32.1603 73.5141 30.1961 +184 -32.6075 13.076 -8.42122 +185 -31.9592 12.6717 9.1291 +186 -32.3471 69.757 -32.5675 +187 -32.2945 69.7358 32.638 +188 -31.9855 18.9412 -22.5903 +189 -32.233 19.4627 22.9617 +190 -32.095 76.9814 -27.2131 +191 -31.8212 77.2715 27.2569 +192 -31.7664 65.21 -35.4902 +193 -31.6752 65.2016 35.5679 +194 -32.2955 51.9246 -38.0699 +195 -32.2179 51.9692 38.1387 +196 -31.9087 83.9898 -18.0091 +197 -31.3526 84.2229 18.5681 +198 -31.6202 42.751 -38.0034 +199 -31.8124 42.7651 37.8345 +200 -31.4078 12.9009 -11.6823 +201 -31.3089 87.1981 -11.5701 +202 -31.3089 87.1981 11.5701 +203 -30.952 81.0227 -24.0394 +204 -31.0572 80.7487 24.2892 +205 -30.9984 26.7476 -31.5881 +206 -30.9182 26.6575 31.6099 +207 -31.1457 61.1642 -37.4581 +208 -31.2354 61.2386 37.3518 +209 -30.8813 12.9026 12.938 +210 -30.6669 30.4867 -34.3198 +211 -30.5751 31.0081 34.6702 +212 -30.6779 15.8936 -19.8903 +213 -30.9087 16.156 19.9403 +214 -30.6571 22.8486 -28.687 +215 -30.7894 22.7109 28.3842 +216 -30.0707 13.0016 -14.9773 +217 -29.9483 34.2803 -36.7882 +218 -29.3518 34.8536 37.4909 +219 -30 20 1.17888e-14 +220 -29.9791 48.8813 -29.9791 +221 -29.9791 79.9792 1.1187 +222 -29.9643 51.0338 29.9643 +223 -29.9623 51.5037 -29.9623 +224 -29.9623 79.9623 -1.50371 +225 -29.788 19.0058 -25.5051 +226 -30.0196 19.4631 25.7887 +227 -29.9511 10 -1.60335 +228 -29.9511 10 1.71266 +229 -29.9511 48.2873 40 +230 -29.9511 48.2874 -40 +231 -29.9511 51.5264 40 +232 -29.9511 51.6672 -40 +233 -29.9511 90 -1.71266 +234 -29.9511 90 1.71266 +235 -29.8587 20.1413 -2.90838 +236 -29.8587 47.0916 29.8587 +237 -29.8219 20.1782 3.09634 +238 -29.768 84.1064 -21.2278 +239 -30.001 83.6258 21.598 +240 -29.7293 45.9792 -29.7293 +241 -29.7293 79.7294 4.02078 +242 -29.715 54.1252 -29.715 +243 -29.715 79.715 -4.12519 +244 -29.715 54.1252 29.715 +245 -29.5606 10 -5.11567 +246 -29.5373 10 5.2161 +247 -29.5606 44.8843 40 +248 -29.5606 44.8844 -40 +249 -29.5353 55.2243 40 +250 -29.5647 55.0805 -40 +251 -29.5712 90 -5.02316 +252 -29.5141 90 5.31579 +253 -29.8808 87.1836 -14.9241 +254 -30.176 86.9246 14.9238 +255 -29.2729 73.2313 -33.1936 +256 -29.4 73.713 32.7304 +257 -29.4361 20.5639 -5.78935 +258 -29.4361 44.2106 29.4361 +259 -29.4279 76.7388 -30.2783 +260 -29.3624 77.3599 29.7969 +261 -29.3009 20.6992 6.37335 +262 -29.2343 56.7345 29.2343 +263 -29.2343 56.7345 -29.2343 +264 -29.2343 79.2344 -6.7345 +265 -29.3325 69.5915 -35.4101 +266 -29.2449 69.9894 35.2422 +267 -30.3073 38.8969 -38.1248 +268 -30.251 38.8812 38.1656 +269 -29.1965 43.1034 -29.1965 +270 -29.1965 79.1965 6.89662 +271 -29.2373 13.1948 16.974 +272 -29.1358 15.9225 -22.0957 +273 -28.8001 16.1392 22.8498 +274 -28.8194 80.5081 -27.1523 +275 -28.5058 80.9693 26.9562 +276 -28.7848 10 -8.45198 +277 -28.7848 10 8.45198 +278 -28.7848 41.548 40 +279 -28.7848 41.548 -40 +280 -28.7848 58.452 40 +281 -28.7848 58.452 -40 +282 -28.7848 90 -8.45198 +283 -28.7848 90 8.45198 +284 -28.7285 41.3586 28.7285 +285 -28.7285 21.2715 -8.64141 +286 -28.5161 21.4839 9.31834 +287 -28.5161 59.3184 -28.5161 +288 -28.5566 78.6069 -9.1733 +289 -28.5161 59.3184 28.5161 +290 -28.7838 65.5898 -37.7556 +291 -29.0281 65.8176 37.4504 +292 -28.3782 40.2697 -28.3782 +293 -28.3782 78.3782 9.73033 +294 -28.4379 86.8803 -18.1352 +295 -28.5748 86.6169 18.4189 +296 -28.2661 13.0732 -18.2722 +297 -27.6146 26.5284 -34.4169 +298 -28.2906 26.8048 34.0574 +299 -28.2523 23.4446 -31.5193 +300 -28.42 22.817 30.8441 +301 -27.7754 84.1064 -23.7757 +302 -28.0202 83.4296 24.3659 +303 -27.7331 38.56 27.7331 +304 -27.8326 22.1674 -11.1603 +305 -27.6337 10 -11.6781 +306 -27.6337 10 11.6781 +307 -27.6337 38.3219 40 +308 -27.5416 38.1346 -40 +309 -27.6337 61.6781 40 +310 -27.6337 61.6781 -40 +311 -27.6337 90 -11.6781 +312 -27.6337 90 11.6781 +313 -27.248 30.7029 -37.1946 +314 -27.7454 30.744 36.8564 +315 -27.5644 19.3553 -28.2911 +316 -27.6932 19.2482 28.0498 +317 -27.5558 22.4442 11.8607 +318 -27.5558 61.8607 -27.5558 +319 -27.5558 77.5558 -11.8607 +320 -27.5558 61.8607 27.5558 +321 -27.2705 37.4973 -27.2705 +322 -27.2705 77.2705 12.5027 +323 -27.2316 13.3193 20.2266 +324 -27.1113 15.9226 -24.535 +325 -27.1122 16.3453 25.0934 +326 -26.3589 77.5501 -32.3099 +327 -26.4877 77.4261 32.3201 +328 -26.401 73.2461 -35.5223 +329 -25.773 73.9659 35.46 +330 -26.4461 35.8365 26.4461 +331 -26.4199 23.5801 -14.2069 +332 -26.3911 23.6089 14.2567 +333 -26.3496 64.3422 -26.3496 +334 -26.3772 76.4485 -14.2851 +335 -26.3496 64.3422 26.3496 +336 -26.3181 87.1981 -20.5828 +337 -26.447 80.7343 -29.2443 +338 -26.2471 81.1903 28.9052 +339 -26.2163 10.0632 14.5612 +340 -26.1224 35.248 40 +341 -26.1224 35.248 -40 +342 -25.9435 65.0303 40 +343 -26.1224 64.752 -40 +344 -26.0666 89.9112 -14.8392 +345 -26.1807 89.9396 14.6338 +346 -26.5247 69.0982 -37.7961 +347 -25.9924 70.1537 37.6087 +348 -25.7551 34.6353 -25.7551 +349 -25.7665 75.7666 15.3473 +350 -25.9836 83.5801 -26.3481 +351 -25.2915 84.6895 25.5655 +352 -26.1507 13.0525 -21.1627 +353 -25.3571 87.1981 21.7056 +354 -24.8658 22.9195 -33.8657 +355 -24.8596 22.3598 33.3962 +356 -24.9957 19.5199 -30.7344 +357 -24.9921 19.1651 30.3953 +358 -24.8952 25.1048 16.74 +359 -24.8952 66.7401 -24.8952 +360 -24.8952 74.8952 -16.74 +361 -24.8952 66.74 24.8952 +362 -24.6748 26.6529 -36.6771 +363 -25.058 26.7844 36.4958 +364 -24.8647 33.2146 24.8646 +365 -24.9561 25.0439 -16.6338 +366 -24.8594 40 -5.32223 +367 -24.8492 40.0509 -0.00774861 +368 -24.42 15.8699 -27.1743 +369 -24.6197 15.4894 26.4427 +370 -24.3049 12.8107 22.8911 +371 -24.0935 10 -17.85 +372 -24.2705 10 17.6336 +373 -24.2705 32.3664 40 +374 -24.336 32.4683 -40 +375 -23.9543 68.0202 40 +376 -24.4969 67.2814 -39.9862 +377 -23.9618 90 -18.0111 +378 -24.4564 90 17.3442 +379 -24.3367 29.2858 -38.3822 +380 -24.8569 29.7324 38.2844 +381 -24.1745 32.2351 -24.1745 +382 -24.3006 74.3259 17.5735 +383 -23.2693 77.4 -34.7241 +384 -23.354 77.5945 34.5057 +385 -23.5073 81.0176 -31.3634 +386 -23.6184 80.982 31.3149 +387 -23.8386 13.0843 -23.8018 +388 -23.5024 87.173 -23.7386 +389 -23.6374 73.5263 -37.2181 +390 -22.9154 73.772 37.5161 +391 -23.1276 26.8725 19.1041 +392 -23.1624 69.0657 -23.1624 +393 -23.1624 73.1625 -19.0657 +394 -23.1624 69.0657 23.1624 +395 -23.3625 84.0342 -28.1929 +396 -23.1779 84.4335 27.832 +397 -23.1451 30.9132 23.145 +398 -23.2224 26.7777 -18.9834 +399 -22.6482 30.3349 -22.6482 +400 -22.8786 72.8786 19.3952 +401 -22.4014 87.2202 24.7416 +402 -21.9396 18.938 -32.4331 +403 -21.6635 19.2142 32.8795 +404 -22.1022 10 -20.2852 +405 -21.909 10 20.4731 +406 -22.0739 29.6872 40 +407 -22.2607 29.9086 -40 +408 -21.8515 70.5289 40 +409 -22.1022 70.2853 -40 +410 -22.1022 90 -20.2852 +411 -22.2473 90 20.1079 +412 -21.9101 22.9895 -35.9034 +413 -22.1151 23.6233 36.2123 +414 -21.5443 15.69 -29.2722 +415 -21.8263 15.4998 28.8233 +416 -21.7305 40 -5.4 +417 -21.7305 40 8.88178e-15 +418 -22.2311 26.4063 -38.0193 +419 -21.3961 25.9268 38.1966 +420 -21.2132 28.7868 21.2132 +421 -21.2132 28.7868 -21.2132 +422 -21.2132 71.2132 -21.2132 +423 -21.2132 71.2132 21.2132 +424 -21.3333 13.2053 -26.2398 +425 -21.2819 12.5595 25.3547 +426 -20.7122 80.7487 -33.5488 +427 -20.4045 80.7575 33.712 +428 -20.3673 84.3833 -30.0193 +429 -20.4965 84.0256 30.3542 +430 -20.1368 77.2418 -36.7547 +431 -19.9945 77.2566 36.8145 +432 -20.2539 62.9746 -5.40002 +433 -20.2539 62.9746 -1.54666e-05 +434 -20.1337 87.2356 -26.5955 +435 -19.5633 87.028 27.273 +436 -20.7328 74.1638 -38.476 +437 -19.7347 10 -22.5861 +438 -19.6458 10 22.6725 +439 -19.3401 27.0917 40 +440 -19.5919 27.286 -40 +441 -19.6458 72.6725 40 +442 -19.6458 72.6725 -40 +443 -19.6458 90 -22.6725 +444 -19.6458 90 22.6725 +445 -19.6035 50.5469 -5.40001 +446 -19.6035 50.5469 -7.10021e-06 +447 -19.5452 72.7593 -22.7593 +448 -19.1082 19.4734 -34.6615 +449 -19.0626 19.1297 34.3905 +450 -19.2068 15.8936 -31.1104 +451 -18.8067 15.5317 30.916 +452 -19.0868 73.145 23.1451 +453 -18.826 26.6494 23.3411 +454 -19.0657 26.8376 -23.1624 +455 -19.0586 53.2539 -5.40001 +456 -19.0586 53.2539 -8.9226e-06 +457 -18.8124 22.8486 -37.5352 +458 -18.7998 22.8486 37.5409 +459 -18.8254 13.0796 27.9408 +460 -18.3676 83.7808 -31.9171 +461 -18.2394 83.3963 32.3756 +462 -17.7649 74.1746 -24.1746 +463 -17.9983 80.2811 -35.4475 +464 -17.4278 80.7144 35.3817 +465 -17.5345 12.8019 -28.4017 +466 -16.7054 77.8252 -37.9893 +467 -16.6507 78.2276 37.6955 +468 -17.1074 62.9746 -5.32863 +469 -17.1074 62.9746 -1.54666e-05 +470 -16.9333 10 -24.7642 +471 -16.9333 10 24.7642 +472 -16.7817 25.0552 39.9426 +473 -16.9333 25.2359 -40 +474 -16.9333 74.7641 40 +475 -16.9333 90 -24.7642 +476 -16.9333 90 24.7642 +477 -16.7854 74.8646 24.8647 +478 -16.7401 25.1048 24.8952 +479 -16.9157 25.2357 -24.7644 +480 -16.3821 15.8936 -32.6861 +481 -16.2518 16.0062 32.8509 +482 -15.7149 12.944 29.6235 +483 -16.5978 87.2362 -28.9089 +484 -16.1758 86.9231 29.5213 +485 -16.0897 19.2513 -35.995 +486 -16.1419 19.1726 35.8946 +487 -15.1903 75.87 -25.8699 +488 -15.6077 83.7772 -33.3524 +489 -15.6025 83.8186 33.315 +490 -14.2536 80.7487 -36.7501 +491 -14.1005 80.7479 36.8034 +492 -14.4547 23.6445 26.2813 +493 -14.4074 23.6899 -26.3101 +494 -14.1635 76.4461 26.4461 +495 -14 10 -26.533 +496 -14 10 26.533 +497 -14 23.467 40 +498 -14.2038 23.5371 -39.966 +499 -14 76.533 40 +500 -14.4336 76.2715 -40 +501 -14 90 -26.533 +502 -14 90 26.533 +503 -13.6184 13.1722 -30.9184 +504 -13.376 16.0161 -34.1364 +505 -13.5476 16.4033 34.4207 +506 -12.7706 18.9053 -36.9857 +507 -12.6798 19.0215 37.1232 +508 -12.5027 77.2706 -27.2705 +509 -12.3779 87.2189 31.0007 +510 -12.394 13.0003 31.212 +511 -12.0801 40 -5.4 +512 -12.0801 40 8.88178e-15 +513 -12.1796 84.2667 -34.2874 +514 -11.9816 84.3403 34.2859 +515 -11.8607 22.4442 27.5558 +516 -11.8607 22.4442 -27.5558 +517 -11.44 77.7331 27.7331 +518 -10.4101 81.2173 -37.5935 +519 -10.9484 81.5618 37.1449 +520 -10.9392 10.0267 -27.9309 +521 -10.6328 10 28.0376 +522 -10.8842 22.0441 40 +523 -10.8842 22.0441 -40 +524 -10.8842 77.9559 -40 +525 -10.8842 90 -27.9559 +526 -10.6385 90 28.0358 +527 -10.777 16.2003 -35.2003 +528 -10.3951 16.0618 35.2005 +529 -9.95312 50.5469 -5.40001 +530 -9.95312 50.5469 -7.10021e-06 +531 -9.60971 78.413 -28.413 +532 -9.41559 18.7245 -37.8176 +533 -9.27079 18.5928 37.7364 +534 -9.54835 87.1981 -32.0142 +535 -9.46816 12.8019 -32.0073 +536 -9.4082 53.2539 -5.40001 +537 -9.4082 53.2539 -8.9226e-06 +538 -9.31838 21.4839 28.5161 +539 -9.31836 21.4839 -28.5161 +540 -8.95117 40 -5.4 +541 -8.95117 40 8.88178e-15 +542 -8.77004 84.5271 -35.0479 +543 -8.48597 84.6696 34.9673 +544 -8.64141 78.7285 28.7285 +545 -8.34973 12.9203 32.4654 +546 -7.73113 87.3057 32.3385 +547 -7.46525 81.7726 -37.813 +548 -8.11392 81.3111 38.0822 +549 -7.62655 10 -29.0144 +550 -7.62655 10 29.0144 +551 -7.62655 20.9856 40 +552 -7.76222 21.0297 -40 +553 -7.95436 78.9081 39.9422 +554 -7.62655 79.0144 -40 +555 -7.62655 90 -29.0144 +556 -7.62655 90 29.0144 +557 -7.47461 62.9746 -5.40002 +558 -7.47461 62.9746 -1.54666e-05 +559 -7.26915 16.0702 -35.9835 +560 -7.17097 15.4727 35.4095 +561 -6.89661 79.1965 -29.1965 +562 -6.73452 20.7656 29.2343 +563 -6.7345 20.7657 -29.2343 +564 -6.40686 18.302 -38.0744 +565 -6.40733 18.1733 37.9618 +566 -5.78935 79.4361 29.4361 +567 -5.62747 83.8483 -36.3459 +568 -5.72606 84.3022 35.9054 +569 -5.60464 13.1814 -33.3189 +570 -4.60604 13.178 33.4617 +571 -5.37664 87.1916 -32.9501 +572 -4.32812 62.9746 -5.40002 +573 -4.39632 62.9746 -0.0436986 +574 -4.13937 10 -29.7058 +575 -4.48027 10 29.6519 +576 -4.26944 20.3053 40 +577 -4.35061 20.3218 -40 +578 -4.26944 79.6946 40 +579 -4.26944 79.6947 -40 +580 -4.4496 90 -29.6581 +581 -4.53041 90 29.6418 +582 -4.12521 20.285 29.715 +583 -4.12519 20.285 -29.715 +584 -3.85365 16.5852 -36.9443 +585 -3.76328 16.4815 36.8655 +586 -4.02076 79.7294 -29.7293 +587 -3.73114 87.0327 33.3698 +588 -2.90838 79.8587 29.8587 +589 -2.52672 83.8215 -36.7148 +590 -2.675 83.3747 37.082 +591 -2.25391 53.8164 -5.40001 +592 -2.25391 53.8164 -9.30127e-06 +593 -2.25391 56.4733 -5.40001 +594 -2.18229 56.5578 -1.11468e-05 +595 -1.50371 20.0377 -29.9623 +596 -1.11868 79.9792 -29.9791 +597 -1.03376 20.0356 29.9643 +598 -0.602005 10 -29.9805 +599 -0.939254 10 29.9807 +600 -0.865162 20.0129 40 +601 -0.77914 20.0145 -40 +602 -0.856682 79.9877 40 +603 -0.612767 79.9808 -40 +604 -0.856682 90 -29.9878 +605 -0.856682 90 29.9878 +606 -0.808821 15.8936 -36.5527 +607 -0.808821 15.8936 36.5527 +608 -1.34796 86.949 -33.6195 +609 -0.450037 86.825 33.7808 +610 -1.2673 12.8956 -33.455 +611 -0.738399 12.8019 33.3702 +612 -0.375576 57.3415 -5.34466 +613 3.67394e-15 80 30 +614 0.101562 54.9502 -1.00645e-05 +615 0.303711 57.5781 -1.18337e-05 +616 0.425184 55.0616 -5.40001 +617 0.565162 83.9614 -36.6726 +618 0.808821 84.1064 36.5527 +619 0.678241 18.3198 -38.6169 +620 0.356279 18.0299 38.3734 +621 1.07514 55.2485 -1.02654e-05 +622 1.1187 20.0209 -29.9791 +623 1.50373 79.9623 -29.9623 +624 1.69458 57.8682 -5.40001 +625 1.90356 57.8818 -1.20381e-05 +626 1.84777 55.3629 -5.40001 +627 2.09616 86.8883 -33.6582 +628 2.29145 43.4183 -5.36434 +629 2.3208 42.7368 -1.84244e-06 +630 2.39513 44.899 -0.0791345 +631 2.21649 15.488 -36.0764 +632 2.52258 16.4789 36.9686 +633 2.44385 42.0356 -5.4 +634 2.48943 45.5259 -5.32727 +635 2.52449 41.7202 -0.039699 +636 2.8193 10 -29.8537 +637 2.3461 10 29.8963 +638 2.26367 20.1013 40 +639 2.46547 20.1072 -40 +640 2.56725 79.8899 40 +641 2.56725 79.89 -40 +642 2.65154 89.9611 -29.9263 +643 2.56725 90 29.89 +644 2.60303 55.4067 -1.03719e-05 +645 2.78223 41.1514 -5.4 +646 2.90838 20.1413 29.8587 +647 2.95361 40.9194 -6.18967e-07 +648 3.00607 55.3438 -5.40001 +649 3.09635 79.8218 29.8218 +650 3.51849 40.3475 -5.4 +651 3.60493 55.0121 -5.40001 +652 3.28423 55.2335 -0.0156594 +653 3.58907 87.0876 33.2995 +654 3.68838 12.8019 -33.2068 +655 3.02811 12.8019 33.2507 +656 3.69249 57.9301 -1.20706e-05 +657 3.8289 54.7417 -9.92419e-06 +658 3.75645 51.6329 -5.40001 +659 3.75781 51.918 -8.02324e-06 +660 3.84907 54.418 -5.40001 +661 3.80486 40.1874 -1.26174e-07 +662 3.94737 53.7483 -5.40001 +663 3.93469 53.901 -9.35822e-06 +664 4.02079 20.2707 -29.7293 +665 4.33241 83.5995 -36.7347 +666 4.05134 83.7552 36.634 +667 4.12521 79.715 -29.715 +668 3.93542 57.9137 -5.40001 +669 4.32419 39.9511 -5.4 +670 3.91918 17.9906 -38.1384 +671 3.96407 18.4498 38.5327 +672 4.354 62.3425 -5.40002 +673 4.45243 63.315 -2.39633 +674 4.38769 62.2147 -1.4955e-05 +675 4.45257 63.3154 -0.067467 +676 4.53535 63.5022 -5.40002 +677 4.8725 39.8198 1.21315e-07 +678 4.60783 61.4131 -1.44154e-05 +679 4.69566 61.3368 -5.40001 +680 4.8429 64.0705 -1.88616 +681 4.90001 64.1236 -1.62401e-05 +682 4.91837 57.7314 -0.0503109 +683 5.04713 60.8392 -3.92176 +684 5.06738 64.3281 -5.40002 +685 5.14121 60.7909 -1.39966e-05 +686 5.2169 86.696 -33.5133 +687 5.26953 57.6133 -5.40001 +688 5.21661 60.6972 -5.40001 +689 5.40027 44.7015 -5.4 +690 5.45514 44.589 -0.0613921 +691 5.39464 64.5972 -1.6559e-05 +692 5.47216 43.2954 -5.4 +693 5.48885 43.2157 -2.1648e-06 +694 5.9106 47.3347 -4.93775e-06 +695 5.88739 15.477 -35.6459 +696 5.63454 15.643 35.8637 +697 5.78519 39.7093 -5.36486 +698 5.78935 20.5639 29.4361 +699 5.63138 42.7061 -5.4 +700 5.80322 42.6323 -1.77209e-06 +701 5.94556 60.3287 -0.0783523 +702 5.88727 60.3579 -5.40001 +703 6.23135 10 -29.3306 +704 6.35353 10.0624 29.2986 +705 5.95771 20.5975 40 +706 5.82197 20.578 -40 +707 6.06146 79.3752 40 +708 6.31564 79.3084 -40 +709 6.42007 90 -29.2809 +710 5.70551 90 29.4387 +711 5.96374 64.8887 -5.40002 +712 6.08221 64.9294 -1.67826e-05 +713 6.09357 57.0691 -5.40001 +714 5.85977 57.2711 -1.1627e-05 +715 6.04211 42.4305 -5.4 +716 6.62966 81.6427 -38.077 +717 6.43446 81.611 38.1436 +718 6.16602 39.6836 2.13006e-07 +719 6.27707 42.3282 -0.0571996 +720 6.72147 65.0407 -5.40002 +721 6.56152 56.4971 -1.11059e-05 +722 5.97649 12.5294 32.5141 +723 6.89308 42.2112 -5.4 +724 6.69127 56.2132 -5.40001 +725 6.7345 79.2343 29.2343 +726 6.73452 79.2344 -29.2343 +727 6.61189 50.7999 -5.38126 +728 6.96196 60.2525 -5.40001 +729 6.92474 60.2502 -1.36325e-05 +730 6.88672 42.2324 -1.50288e-06 +731 6.89663 20.8035 -29.1965 +732 6.74223 51.4439 -7.7041e-06 +733 6.8999 55.6128 -1.05106e-05 +734 7.00516 55.0801 -5.40001 +735 7.04053 53.8757 -5.40001 +736 7.04593 54.0383 -9.45066e-06 +737 7.06944 65.0306 -1.68507e-05 +738 7.91693 83.8186 -35.9254 +739 7.29457 83.851 36.046 +740 7.58736 64.936 -1.93219 +741 7.62337 64.8912 -5.40002 +742 7.64917 39.7781 -5.4 +743 7.84095 39.8172 1.23089e-07 +744 7.7832 64.8643 -1.67387e-05 +745 7.1321 18.3188 -37.9578 +746 7.50932 18.3895 37.9471 +747 7.98382 60.614 -5.40001 +748 7.9646 60.6022 -1.38695e-05 +749 8.30284 13.0507 -32.5943 +750 8.04904 87.3382 -32.2484 +751 7.38124 86.7565 33.0256 +752 8.26861 42.3999 -5.4 +753 8.34395 42.3668 -1.59335e-06 +754 8.5127 64.3721 -1.64074e-05 +755 8.61156 61.1589 -2.78485 +756 8.64141 21.2715 28.7285 +757 8.64252 61.2531 -5.40001 +758 8.80292 63.9994 -3.12381 +759 8.81018 15.8936 -35.4843 +760 9.12529 15.4804 34.957 +761 8.81304 61.4636 -1.44494e-05 +762 8.86035 63.9111 -5.40002 +763 8.90465 63.8174 -0.011917 +764 9.05344 62.0048 -5.40001 +765 9.05469 63.387 -5.40002 +766 9.09293 62.1777 -1.49301e-05 +767 9.11335 63.0267 -1.55017e-05 +768 9.11213 62.6309 -5.40002 +769 9.86697 42.9943 -5.4 +770 9.84176 42.9824 -2.00774e-06 +771 9.27051 10 -28.5317 +772 9.27051 10 28.5317 +773 9.27051 21.4683 40 +774 9.27051 21.4683 -40 +775 9.40058 78.481 40 +776 9.27051 78.5317 -40 +777 9.20068 89.9448 -28.5502 +778 9.27051 90 28.5317 +779 9.31836 78.5161 28.5161 +780 9.31838 78.5161 -28.5161 +781 8.93136 12.6013 31.923 +782 9.74619 81.3063 -37.7033 +783 10.0349 81.2953 37.6276 +784 9.55357 40.2379 -5.4 +785 9.69592 40.2867 -1.93037e-07 +786 9.73034 21.6219 -28.3782 +787 10.6001 84.3741 -34.6957 +788 10.309 84.348 34.8188 +789 10.936 87.3378 31.3847 +790 11.1073 18.7184 -37.3504 +791 11.5784 19.1355 37.5689 +792 11.44 22.2669 27.7331 +793 11.5977 41.1074 -5.4 +794 11.5977 41.1074 -7.45522e-07 +795 11.5977 43.8144 -5.4 +796 11.5977 43.8145 -0.00324509 +797 11.925 77.5245 27.5246 +798 11.8607 77.5558 -27.5558 +799 11.9118 15.8936 -34.5668 +800 12.1762 15.5697 34.1115 +801 12.2599 87.1981 -31.0453 +802 11.7291 12.5316 -30.9175 +803 12.4218 12.7898 30.9928 +804 12.4625 10 -27.289 +805 12.4625 10 27.289 +806 12.4625 22.711 40 +807 12.2213 22.6172 -40 +808 12.4831 77.349 39.9478 +809 12.4625 77.289 -40 +810 12.4625 90 -27.289 +811 12.4625 90 27.289 +812 12.766 22.8667 -27.1333 +813 12.8849 80.7895 -37.2236 +814 12.7632 81.3149 36.787 +815 13.75 83.389 -34.5288 +816 13.245 84.3855 33.7698 +817 14.1635 23.5539 26.4461 +818 14.454 76.2817 26.2818 +819 14.4356 76.293 -26.2929 +820 14.8548 19.4506 -36.6623 +821 15.1708 19.5185 36.5748 +822 14.7886 15.5527 -33.0532 +823 15.5855 16.5371 33.6673 +824 14.9557 87.1981 29.8402 +825 15.3139 12.8019 29.6778 +826 15.1903 24.1301 -25.8699 +827 15.785 77.8786 -38.3311 +828 14.743 79.0074 37.8783 +829 15.4919 10 -25.6905 +830 15.374 10.0158 25.7746 +831 15.6514 24.4186 40 +832 15.1612 24.043 -39.9444 +833 15.4919 75.6904 40 +834 15.4919 75.6905 -40 +835 15.5802 90 -25.6301 +836 15.4919 90 25.6905 +837 16.3158 80.5766 -36.0207 +838 16.1615 81.0533 35.6721 +839 15.6615 12.9259 -29.6302 +840 16.592 86.7253 -29.5477 +841 16.3821 84.1064 -32.6861 +842 16.3821 84.1064 32.6861 +843 16.74 74.8952 24.8952 +844 16.7401 74.8952 -24.8952 +845 16.7854 25.1353 24.8647 +846 18.0579 22.9043 -37.9046 +847 17.7435 22.5422 37.7852 +848 17.4711 18.8156 -34.9247 +849 18.0508 19.5334 35.2667 +850 16.928 25.2744 -24.7257 +851 17.515 16.034 -32.214 +852 17.8119 15.8936 31.9295 +853 18.6372 10 -23.4817 +854 18.3194 10 23.7571 +855 18.3194 26.2429 40 +856 18.3341 26.2557 -40 +857 18.3194 73.757 40 +858 18.3194 73.7571 -40 +859 18.5943 90 -23.5189 +860 18.3584 90 23.7233 +861 18.5991 12.907 27.8479 +862 18.2616 87.1009 28.0704 +863 19.1586 77.6116 -36.9734 +864 18.6495 77.6829 37.1878 +865 18.8992 73.2865 23.2865 +866 19.0657 73.1624 -23.1624 +867 19.0868 26.8549 23.1451 +868 19.3908 83.6038 -31.4941 +869 18.7823 84.4813 30.9146 +870 19.2136 80.6218 -34.5307 +871 19.0646 81.4761 33.7924 +872 19.1757 26.947 -23.0609 +873 19.976 87.1981 -26.7408 +874 19.5336 12.7248 -26.9675 +875 20.7763 22.5316 -36.2069 +876 20.7547 22.5073 36.2002 +877 19.959 15.5053 -30.1442 +878 20.5047 16.5276 30.9108 +879 20.7043 41.893 -1.27437e-06 +880 20.1417 18.8223 -33.4534 +881 20.6178 19.3521 33.6847 +882 20.7616 42.4397 -5.4 +883 20.7642 41.4529 -5.4 +884 20.7594 42.4305 -2.47001 +885 20.9037 42.8786 -1.93789e-06 +886 20.9081 10 -21.514 +887 20.9081 10 21.514 +888 20.9301 28.51 40 +889 21.0193 28.4889 -39.9355 +890 20.77 71.6394 39.9967 +891 20.9081 71.514 -40 +892 21.1273 90 -21.2751 +893 20.9081 90 21.514 +894 20.9216 40.9465 -6.37156e-07 +895 21.0654 40.6883 -5.39074 +896 21.6097 87.1841 25.4733 +897 21.2092 43.3863 -5.4 +898 21.2132 28.7868 -21.2132 +899 21.2132 28.7868 21.2132 +900 21.2132 71.2132 21.2132 +901 21.2132 71.2132 -21.2132 +902 21.2982 43.4834 -2.34502e-06 +903 22.063 73.9055 -37.9126 +904 22.2406 74.0629 37.6968 +905 21.9828 44.0366 -5.4 +906 21.7394 40.0352 -5.38292 +907 21.4449 40.2536 -0.0511165 +908 21.9006 43.9889 -0.0902363 +909 21.9781 83.5232 -29.8317 +910 21.7747 84.4885 28.8796 +911 22.2848 39.7799 1.48195e-07 +912 22.2866 77.1842 -35.5412 +913 22.0561 77.1514 35.7257 +914 22.1935 80.53 -32.7729 +915 21.7045 81.3614 32.2801 +916 22.1998 12.883 -25.0711 +917 22.3486 13.0233 25.1358 +918 22.3962 39.7534 -5.31982 +919 22.6543 46.7324 -5.4 +920 22.6543 46.7324 -4.5323e-06 +921 23.0455 39.6877 -5.25783 +922 22.8608 44.3105 -5.35192 +923 23.1113 44.3242 -2.91109e-06 +924 23.1451 26.8549 -19.0868 +925 23.1451 69.0868 23.1451 +926 23.1451 69.0868 -23.145 +927 23.1451 73.145 19.0868 +928 22.8783 15.6775 -28.2297 +929 23.2344 16.333 28.708 +930 23.1624 30.9343 -23.1624 +931 23.4907 26.5958 18.7414 +932 23.1624 30.9343 23.1624 +933 23.3066 73.2449 -18.9551 +934 23.0733 10 -19.1548 +935 23.1276 10 19.0957 +936 23.1689 30.9493 40 +937 23.0603 30.831 -39.9564 +938 23.0307 69.2013 40 +939 23.2242 68.9904 -40 +940 23.0028 90 -19.2317 +941 23.2378 90 18.9717 +942 23.2282 26.6575 -37.6242 +943 23.0118 26.4458 37.6057 +944 23.231 39.6978 2.03419e-07 +945 22.8333 87.1274 -24.4564 +946 23.3251 39.7137 -2.92463 +947 23.5315 44.2878 -5.4 +948 23.0452 18.8432 -31.5462 +949 23.7277 19.6844 31.867 +950 23.8112 22.3963 -34.1734 +951 23.7241 22.6292 34.4419 +952 23.9915 39.9245 -5.4 +953 24.0078 44.1396 -0.0456036 +954 24.1503 40.0076 -5.14099e-09 +955 24.1771 44.0455 -5.4 +956 24.9728 70.2989 -38.1882 +957 24.3722 87.1981 22.806 +958 23.9718 84.2001 -27.4581 +959 24.494 83.8041 27.486 +960 24.6134 12.8975 -22.7259 +961 24.7575 12.9538 22.6467 +962 24.6236 43.7284 -0.0135677 +963 24.5195 40.2877 -5.4 +964 24.8307 43.5003 -5.4 +965 25.1485 24.8515 -16.3147 +966 24.8647 66.7854 24.8647 +967 24.8647 66.7854 -24.8646 +968 24.8647 74.8646 16.7854 +969 24.7572 73.6892 -36.3863 +970 25.1559 73.1818 36.4431 +971 24.8952 33.26 -24.8952 +972 24.8952 25.1048 16.74 +973 24.8952 33.2599 24.8952 +974 24.8952 74.8952 -16.74 +975 24.8379 40.6017 -4.05047e-07 +976 24.9806 80.5133 -30.7168 +977 24.7461 80.7487 30.6798 +978 25.0514 40.9361 -5.4 +979 25.1455 42.9939 -0.0209714 +980 25.0615 77.2679 -33.5808 +981 25.1282 76.6908 33.9661 +982 25.2556 42.6701 -5.4 +983 25.228 41.3677 -9.20726e-07 +984 25.2376 10 -16.2192 +985 25.2376 10 16.2192 +986 25.2376 33.7808 40 +987 25.2376 33.7808 -40 +988 25.2376 66.2192 40 +989 25.2376 66.2193 -40 +990 25.2376 90 -16.2192 +991 25.2376 90 16.2192 +992 25.2491 41.3873 -1.74138 +993 25.3157 41.7349 -5.31435 +994 25.3276 42.2428 -1.50989e-06 +995 25.3438 46.7324 -5.4 +996 25.3438 46.7324 -4.5323e-06 +997 25.3303 15.419 -25.6838 +998 25.2424 16.2093 26.7926 +999 25.748 64.8379 -5.40002 +1000 25.748 64.8379 -1.6721e-05 +1001 26.0202 29.7573 -37.5378 +1002 25.9308 30.6483 38.1197 +1003 26.2924 87.1981 -20.5627 +1004 25.9929 18.747 -29.0639 +1005 26.294 19.1858 29.3023 +1006 26.3496 35.6578 -26.3496 +1007 26.3311 23.6689 14.3727 +1008 26.4368 35.8368 26.5014 +1009 26.4466 76.3673 -14.3061 +1010 26.4461 23.5539 -14.1635 +1011 26.4461 64.1635 26.4461 +1012 26.4461 64.1635 -26.4461 +1013 26.4165 76.4164 14.2126 +1014 26.1069 26.3215 -35.4325 +1015 26.4155 26.0907 35.0371 +1016 26.3273 22.4016 -32.2907 +1017 26.9412 23.0901 32.3717 +1018 26.5648 84.3061 -24.8208 +1019 26.709 83.9574 25.1489 +1020 26.9873 10 -13.082 +1021 26.9659 10 13.1325 +1022 26.922 36.7633 40 +1023 27.0169 36.988 -40 +1024 26.851 63.3623 40 +1025 27.0285 62.9845 -40 +1026 26.9212 90 -13.238 +1027 26.922 90 13.2366 +1028 27.1762 12.8019 -19.3796 +1029 27.1762 12.8019 19.3796 +1030 27.2174 86.906 19.8682 +1031 27.5812 38.2064 -27.5812 +1032 27.5558 22.4442 11.8607 +1033 27.6001 38.2563 27.6213 +1034 27.5558 77.5558 -11.8607 +1035 27.5483 80.4006 -28.5421 +1036 27.7638 80.5568 28.181 +1037 27.8957 69.3063 -36.7087 +1038 27.611 69.2591 36.9621 +1039 27.7331 61.44 27.7331 +1040 27.7331 61.4401 -27.7331 +1041 27.7331 77.7331 11.44 +1042 27.7331 22.2669 -11.44 +1043 27.6097 15.4985 -23.3413 +1044 27.3597 16.0771 24.4519 +1045 28.0943 76.7955 -31.4757 +1046 28.0018 77.1514 31.2842 +1047 27.8849 73.0885 -34.4608 +1048 28.3971 72.5358 34.3777 +1049 28.2553 10 -10.0815 +1050 28.2553 10 10.0815 +1051 28.2553 39.9185 40 +1052 28.2553 39.9185 -40 +1053 28.2553 60.0815 40 +1054 28.2553 60.0815 -40 +1055 28.2553 90 -10.0815 +1056 28.2553 90 10.0815 +1057 28.7712 33.9439 -37.5505 +1058 28.6362 34.0311 37.7013 +1059 28.5161 40.6816 -28.5161 +1060 28.5161 21.4839 9.31836 +1061 28.5161 40.6816 28.5161 +1062 28.5161 78.5161 -9.31834 +1063 28.7285 21.2715 -8.64141 +1064 28.7285 58.6414 28.7285 +1065 28.7285 58.6414 -28.7285 +1066 28.744 78.7439 8.57909 +1067 28.6129 19.1689 -27.0142 +1068 28.7238 19.1389 26.8666 +1069 28.8583 83.9753 -22.6282 +1070 29.0226 83.7656 22.7047 +1071 28.9908 86.7568 -17.476 +1072 29.3583 30.3383 -35.3435 +1073 29.2245 30.2901 35.4335 +1074 29.2204 10 -6.7949 +1075 29.2204 10 6.7949 +1076 29.1423 42.9394 40 +1077 29.2204 43.2051 -40 +1078 29.2699 56.5085 40 +1079 29.2204 56.7949 -40 +1080 29.218 90 -6.80285 +1081 29.2204 90 6.7949 +1082 29.2343 20.7656 6.7345 +1083 29.2343 43.2655 29.2343 +1084 29.2343 43.2655 -29.2343 +1085 29.2343 79.2343 -6.73448 +1086 29.3582 22.8486 -30.015 +1087 29.1362 22.2342 29.6117 +1088 29.4361 20.5639 -5.78935 +1089 29.4361 55.7893 29.4361 +1090 29.4361 55.7894 -29.4361 +1091 29.4361 79.4361 5.78935 +1092 29.457 64.8379 -5.40002 +1093 29.457 64.8379 -1.6721e-05 +1094 29.3742 26.1183 -32.6184 +1095 29.5453 25.9854 32.3523 +1096 29.5828 86.9566 15.9913 +1097 29.5379 13.2281 -16.4824 +1098 29.2515 12.5804 15.5684 +1099 29.715 45.8748 29.715 +1100 29.715 79.715 -4.12517 +1101 30.1411 16.3158 -21.3168 +1102 29.8774 16.0044 21.2351 +1103 29.8143 10 -3.24758 +1104 29.8045 10 3.41974 +1105 29.7973 46.539 40 +1106 29.8103 46.6825 -40 +1107 29.8351 52.8833 40 +1108 29.8163 53.2131 -40 +1109 29.8045 90 -3.41974 +1110 29.832 90 2.93783 +1111 29.8218 20.1781 3.09635 +1112 29.8218 46.9037 -29.8219 +1113 29.8587 20.1413 -2.90838 +1114 29.9028 51.9998 29.9028 +1115 29.8587 52.9084 -29.8587 +1116 29.8587 79.8587 2.90838 +1117 30.0696 80.5492 -25.717 +1118 29.9524 80.7487 25.6392 +1119 30.0002 49.0422 29.967 +1120 29.9754 79.9754 -0.712175 +1121 29.9991 10 0.0155772 +1122 30 20 1.17888e-14 +1123 29.993 49.8774 40 +1124 30 50 -30 +1125 29.9856 50.2518 -40 +1126 29.9804 90 -0.342779 +1127 30.1435 64.9198 -36.9761 +1128 29.8344 64.8757 37.2276 +1129 30.5433 86.9061 -14.2495 +1130 30.9691 76.8753 -28.5758 +1131 30.9391 77.0644 28.4374 +1132 30.4859 84.2188 -19.9645 +1133 30.6082 84.2444 19.7343 +1134 30.7766 69.3517 -34.3242 +1135 30.8728 69.1494 34.3375 +1136 31.0476 12.9568 -12.7372 +1137 31.0512 38.6406 -37.4745 +1138 31.2322 39.0965 37.4673 +1139 31.0019 73.3425 -31.5205 +1140 31.0836 73.3425 31.4333 +1141 30.6963 18.8504 -24.1883 +1142 30.7186 18.9097 24.2425 +1143 31.3089 12.8019 11.5701 +1144 31.6305 87.1199 -10.9367 +1145 31.3396 87.1981 11.5815 +1146 31.9666 56.9971 -37.7499 +1147 31.814 57.2658 37.8261 +1148 31.1888 15.7813 -18.8284 +1149 30.9876 15.3374 18.3027 +1150 32.1213 48.0753 -38.2259 +1151 32.2211 47.9464 38.1346 +1152 31.7694 34.4369 -35.3076 +1153 31.8613 34.8926 35.4378 +1154 31.8211 22.4119 -26.9026 +1155 31.8898 22.9726 27.4177 +1156 32.3634 80.5068 -22.8082 +1157 32.0543 80.9949 22.5829 +1158 32.5162 13.0745 -8.69761 +1159 32.5803 30.5082 -32.4974 +1160 32.3478 31.0662 33.0594 +1161 32.1964 26.1435 -29.8586 +1162 32.1234 26.3869 30.1492 +1163 32.6433 83.8558 -16.9154 +1164 32.415 84.0331 17.0394 +1165 32.5373 60.9498 -36.3514 +1166 32.5373 60.9498 36.3514 +1167 32.5648 87.1981 -7.3245 +1168 32.7648 86.989 7.41649 +1169 32.8967 13.2566 8.0128 +1170 32.3047 88.1277 -0.271813 +1171 32.7058 15.7769 -16.0361 +1172 32.523 15.3907 15.5378 +1173 33.3574 43.6736 -36.6719 +1174 33.3139 43.7353 36.7231 +1175 33.0692 12.5146 0.738941 +1176 33.2002 77.6576 -25.076 +1177 33.1224 77.6792 25.1592 +1178 33.0758 19.1889 -21.3568 +1179 33.3849 19.0771 20.6445 +1180 33.2826 13.1183 -5.34748 +1181 33.5035 13.1563 4.19637 +1182 33.8255 86.6043 -3.48943 +1183 33.2803 87.1981 2.95287 +1184 33.0057 65.0185 -34.3909 +1185 32.8273 65.1431 34.5033 +1186 32.9368 51.8829 -37.5368 +1187 32.7065 52.0936 37.7159 +1188 33.5677 13.0409 -2.12853 +1189 33.7017 73.4609 -28.5018 +1190 34.0569 73.062 28.3781 +1191 33.6279 69.4042 -31.5014 +1192 33.7043 69.636 31.2511 +1193 33.5621 84.3619 -13.8105 +1194 33.7573 84.3103 13.4323 +1195 33.4153 81.3521 -19.9288 +1196 33.7047 81.1649 19.7555 +1197 34.0019 38.5907 -34.8043 +1198 33.8891 39.6341 35.2259 +1199 34.1842 22.8486 -24.377 +1200 33.7878 22.4394 24.419 +1201 34.2393 15.9611 -12.9561 +1202 34.3614 16.155 13.0977 +1203 34.9579 55.8138 -35.2212 +1204 34.3207 56.1356 35.7936 +1205 34.8844 34.9871 -32.5059 +1206 34.9582 34.937 32.3979 +1207 34.6402 84.4285 -10.5755 +1208 34.5381 84.601 10.2884 +1209 34.5528 25.9499 -26.909 +1210 34.8767 26.702 27.2113 +1211 34.8486 19.2513 -18.4415 +1212 34.8594 19.0701 18.0624 +1213 35.119 47.3944 -35.4602 +1214 34.7342 47.9381 35.8851 +1215 35.2659 31.1631 -29.9809 +1216 34.684 30.5636 30.2867 +1217 35.267 77.5248 -22.2605 +1218 35.2567 77.4064 22.4417 +1219 35.428 16.2801 -10.2283 +1220 35.1965 16.0116 10.1906 +1221 35.3656 14.7065 0.808825 +1222 34.3839 86.2537 -0.212355 +1223 35.6227 60.9498 -33.3335 +1224 35.3061 60.7602 33.6935 +1225 35.2583 81.0571 -17.0297 +1226 35.4416 80.8954 16.9744 +1227 35.9606 83.7885 -7.95311 +1228 36.1962 83.5265 7.91087 +1229 36.1716 16.1579 -6.67315 +1230 36.0081 15.9987 6.7729 +1231 35.9923 73.7426 -25.2631 +1232 35.9412 73.4571 25.6382 +1233 35.5872 65.4275 -31.4977 +1234 36.1842 65.21 30.9735 +1235 36.5044 42.7635 -33.3324 +1236 36.3673 42.9885 33.5505 +1237 36.1244 22.6286 -21.0835 +1238 36.2049 22.8486 21.2604 +1239 36.5002 83.7778 -4.98103 +1240 35.8852 84.3689 5.32056 +1241 35.7891 69.8514 -28.6627 +1242 36.3159 69.3517 28.4019 +1243 35.9886 18.9705 -15.4833 +1244 35.7975 18.7742 15.5008 +1245 36.551 16.0339 -3.03459 +1246 36.7222 16.3071 3.65684 +1247 36.4346 51.7317 -34.1632 +1248 36.2313 51.879 34.3713 +1249 36.7912 83.7677 -1.93856 +1250 36.4581 84.1356 2.04808 +1251 36.9828 80.7487 -13.6669 +1252 36.8129 81.0102 13.4751 +1253 36.8574 38.9989 -31.9247 +1254 36.7395 39.087 32.0803 +1255 37.1565 26.4413 -23.7153 +1256 37.1011 26.6575 24.0548 +1257 36.9414 77.6446 -19.1878 +1258 36.7765 77.7033 19.4165 +1259 37.3865 34.1504 -29.1178 +1260 37.4372 34.3896 29.2003 +1261 37.266 30.6483 -27.1138 +1262 37.1225 30.1896 26.9538 +1263 37.3994 19.2433 -12.4088 +1264 37.1659 19.0655 12.6089 +1265 37.3267 57.0558 -32.4661 +1266 36.8909 56.7552 33.0054 +1267 37.6059 17.0792 0.46861 +1268 38.3158 82.084 -0.0716966 +1269 37.856 22.5431 -17.631 +1270 37.6577 22.4482 17.9028 +1271 37.7366 47.1716 -32.6338 +1272 37.5079 47.1647 32.8812 +1273 37.5686 81.1857 -10.6297 +1274 37.4822 81.3719 10.3659 +1275 37.9626 73.9315 -21.9793 +1276 38.1288 73.3425 22.3902 +1277 37.7488 61.2348 -30.7358 +1278 37.9206 61.1799 30.5571 +1279 37.8752 18.5943 -8.6932 +1280 37.7476 18.4997 8.88332 +1281 37.8974 70.1664 -25.5367 +1282 38.0605 70.2043 25.2778 +1283 37.7943 78.4914 -15.9404 +1284 37.9386 78.2127 16.1164 +1285 37.7523 65.6377 -28.7203 +1286 37.9751 65.6684 28.4176 +1287 38.0453 81.5259 -7.36578 +1288 38.1021 81.4507 7.40184 +1289 38.3375 18.4675 -5.62455 +1290 38.4278 18.5475 5.50233 +1291 38.1702 25.3101 -20.6861 +1292 38.1859 25.6356 21.0482 +1293 38.3134 81.855 3.48408 +1294 40 20.0206 -0.367707 +1295 40 20.1886 -3.35893 +1296 39.953 20.0895 2.7537 +1297 40 20.7265 -6.52502 +1298 40 20.7067 6.40834 +1299 40 21.6835 -9.90837 +1300 40 21.6835 9.90837 +1301 40 22.9159 -12.8837 +1302 40 22.9304 12.9188 +1303 40 24.5982 -15.961 +1304 40 24.5982 15.961 +1305 40 26.5701 -18.7327 +1306 40 26.6836 18.8598 +1307 40 28.7868 -21.2132 +1308 40 28.7868 21.2132 +1309 40 31.3751 -23.5116 +1310 40 31.2659 23.4287 +1311 40 34.7774 -25.8098 +1312 40 34.039 25.4017 +1313 40 37.0716 27.0656 +1314 39.9908 39.5199 -28.0943 +1315 40 40.0916 28.3165 +1316 40 43.3243 -29.2478 +1317 40 43.3243 29.2478 +1318 40 46.4555 -29.7799 +1319 40 46.8023 29.8204 +1320 40 49.9731 -29.9985 +1321 40 50 30 +1322 40 53.3589 -29.8114 +1323 40 53.3589 29.8114 +1324 40 56.6756 -29.2478 +1325 40 56.6756 29.2478 +1326 40 59.9083 -28.3165 +1327 40 59.9083 28.3165 +1328 40 62.8931 -27.0802 +1329 40 63.1539 26.9531 +1330 40 66.03 -25.3528 +1331 39.9365 66.2366 25.3068 +1332 40 68.8734 -23.3041 +1333 40 68.8199 23.352 +1334 39.9539 71.2193 -21.2842 +1335 40 71.2132 21.2132 +1336 40 73.4549 -18.7047 +1337 39.9816 73.2332 18.9528 +1338 40 75.4017 -15.961 +1339 39.9348 75.2587 16.3011 +1340 40 77.1093 -12.8227 +1341 40 77.029 13.0165 +1342 40 78.3165 -9.90837 +1343 40 78.3165 9.90837 +1344 40 79.1602 -6.97979 +1345 40 79.2478 6.67563 +1346 40 79.7333 -3.81808 +1347 40 79.8302 3.02258 +1348 40 79.9783 -0.385059 +1349 -28.1176 21.2194 -20.3524 +1350 -29.8801 20.6033 18.829 +1351 -29.2835 29.3805 -28.4137 +1352 -29.8615 32.2627 29.6306 +1353 -30.0769 69.1476 -28.7799 +1354 -30.6102 68.1762 29.0349 +1355 -29.0585 78.8872 -19.4369 +1356 -28.8536 79.7569 19.296 +1357 -19.9629 21.6412 -29.4632 +1358 -18.0297 20.6079 29.5949 +1359 -18.9716 78.9976 -29.5499 +1360 -19.1178 78.6913 29.9171 +1361 19.7111 21.1337 -29.7539 +1362 19.2892 20.6014 29.089 +1363 19.1496 79.6739 -28.1955 +1364 19.3998 79.0159 28.8036 +1365 28.7615 20.1865 -18.8991 +1366 29.7607 20.9118 18.5334 +1367 28.7638 29.8856 -28.2969 +1368 28.6288 30.4712 29.2637 +1369 29.2599 69.1776 -29.5009 +1370 29.9446 79.1359 -19.1367 +1371 30.0119 78.9901 19.0099 +1372 17.5293 25.6779 33.6068 +1373 22.6823 30.4161 -33.5274 +1374 23.2771 31.0858 -28.5532 +1375 -23.2204 30.936 -32.5849 +1376 -20.3579 27.9952 -32.8361 +1377 -22.3989 30.0631 -36.0604 +1378 6.8337 60.2445 -2.66003 +1379 8.27827 64.573 -5.3609 +1380 20.8196 16.0807 21.5865 +1381 21.2617 21.0302 21.1455 +1382 18.9676 21.3775 23.2312 +1383 -19.3989 87.366 -22.8699 +1384 -19.7817 77.9599 -22.5421 +1385 -37.7135 50.9319 29.9834 +1386 -33.1784 31.8076 -23.8481 +1387 -21.853 54.9974 -0.0235509 +1388 -38.5113 54.2713 29.6934 +1389 29.7483 85.7166 3.74382 +1390 -19.3207 72.9324 -36.4689 +1391 -16.7847 74.8502 -35.7941 +1392 -18.7713 73.3855 -28.1569 +1393 36.836 20.0167 -0.344923 +1394 33.5754 73.1703 -19.0361 +1395 28.0448 71.1167 -21.3009 +1396 36.3144 70.98 -21.425 +1397 -35.1727 26.823 -19.0447 +1398 -36.4006 29.4569 -21.8437 +1399 -30.185 20.4073 -14.9378 +1400 -31.1951 29.2705 -21.6708 +1401 -29.8472 15.1204 2.78248 +1402 35.7204 50.2577 29.9875 +1403 -28.8927 26.8872 -19.1185 +1404 -22.0419 70.3413 36.3343 +1405 -19.3609 72.9085 29.0439 +1406 -31.9992 69.4507 22.8324 +1407 -29.2402 71.1991 21.2429 +1408 23.5747 31.4852 28.9413 +1409 -35.6042 76.4059 -14.1883 +1410 -31.7113 72.4723 -19.8706 +1411 -36.131 74.0882 -17.8653 +1412 -21.1725 21.5062 21.2279 +1413 -19.8839 15.1881 22.4459 +1414 25.1623 66.3165 32.1169 +1415 32.1329 74.9917 -16.5727 +1416 -18.5211 20.9495 23.5675 +1417 -7.07028 14.3248 -29.1429 +1418 29.2273 43.2353 -34.6172 +1419 17.7953 25.8706 -34.2295 +1420 22.5324 44.2472 -0.279182 +1421 36.1314 20.2468 -3.70795 +1422 18.0935 73.9144 35.5185 +1423 36.2684 26.8341 -19.036 +1424 24.6729 43.6827 -1.554 +1425 23.7631 44.3162 -2.62056 +1426 29.3122 14.4974 -6.36681 +1427 29.3282 56.2922 -34.718 +1428 23.4217 68.7237 -35.9049 +1429 6.39714 15.0205 29.2897 +1430 -23.6838 45.8644 -5.4 +1431 6.16456 60.2778 -3.4229 +1432 24.7817 40.5313 -1.81808 +1433 12.8809 15.906 27.0737 +1434 -16.1258 75.256 33.9181 +1435 -25.7498 34.6424 -31.961 +1436 -19.2328 73.0048 34.3619 +1437 -4.70941 85.5946 -29.6084 +1438 -33.9195 65.5025 25.6372 +1439 -34.9893 72.476 19.8466 +1440 29.5876 69.7421 28.6208 +1441 -29.5733 54.9799 -35.412 +1442 -25.2726 71.6466 20.752 +1443 -35.8366 60.4259 28.1178 +1444 -29.5026 85.3764 5.34836 +1445 23.2782 68.9139 32.6303 +1446 -24.2019 75.3289 27.884 +1447 5.60633 15.1006 -29.452 +1448 25.5524 34.3239 32.1655 +1449 -35.2049 43.6768 -29.3205 +1450 -35.0073 79.6447 -4.55546 +1451 -7.46468 85.353 -29.0489 +1452 21.1533 71.257 -33.2455 +1453 34.6408 43.7709 -29.3288 +1454 -0.248326 20.0165 -37.2387 +1455 6.62111 65.0344 -1.58331 +1456 -29.9529 51.551 36.3134 +1457 36.1813 53.2822 -29.8156 +1458 29.7767 84.7844 -3.60744 +1459 14.9171 83.1748 26.02 +1460 33.23 65.0965 25.9033 +1461 34.2803 64.4609 -26.2522 +1462 20.6187 71.7692 34.4825 +1463 20.9017 71.5001 24.7729 +1464 -3.72556 14.7189 29.7536 +1465 -26.5689 16.4892 13.8621 +1466 -26.1457 64.6945 32.4974 +1467 -26.0739 64.8167 -33.9766 +1468 -26.2706 83.6704 -14.474 +1469 -14.5617 23.7944 -33.286 +1470 -14.115 23.5327 32.1633 +1471 -4.60642 20.37 -35.6585 +1472 29.0267 57.5062 34.3308 +1473 34.9727 56.4438 29.2904 +1474 21.1926 71.2206 29.4895 +1475 -39.9532 69.6716 -22.6519 +1476 33.2231 76.7376 13.59 +1477 34.3251 23.5137 -14.0371 +1478 29.9916 13.9264 -0.172316 +1479 -14.6656 80.2995 31.4396 +1480 21.0478 25.7116 -21.3693 +1481 -14.6333 83.1997 26.157 +1482 18.372 22.4801 -23.6974 +1483 -26.2471 16.8185 -14.5157 +1484 27.9632 58.2627 -1.22945e-05 +1485 -29.9663 48.8009 -34.555 +1486 29.7551 46.2062 -35.17 +1487 28.4684 31.0838 -23.2812 +1488 25.314 75.7505 -24.6767 +1489 -22.9476 49.5371 -2.74373 +1490 -22.8419 50.0643 -6.77537e-06 +1491 2.891 14.2178 -29.8474 +1492 -22.0114 70.3605 -31.2599 +1493 -24.955 25.5476 -25.6945 +1494 29.7964 46.57 35.5791 +1495 -4.48034 13.8688 -29.6535 +1496 -3.5227 79.765 -35.3881 +1497 13.216 81.8986 -30.5489 +1498 29.8259 53.2129 -35.6331 +1499 34.2079 31.569 -23.6504 +1500 -33.969 66.9292 -24.7621 +1501 -1.31433 85.158 -29.9552 +1502 -0.258639 12.5781 -29.983 +1503 -29.9583 87.4175 -1.60595 +1504 -29.9159 85.8287 2.01073 +1505 -21.7974 81.4563 20.5998 +1506 24.993 33.421 -32.9565 +1507 -22.0832 16.7052 -20.2873 +1508 20.959 40.8679 -2.06866 +1509 30.2821 28.274 20.7478 +1510 -12.0645 16.0353 -27.4392 +1511 -8.44141 58.1143 -5.40001 +1512 35.6085 68.6027 23.5245 +1513 29.2419 68.0323 23.9408 +1514 5.704 64.7767 -2.0792 +1515 24.9121 17.3908 16.6915 +1516 23.2045 21.288 19.0118 +1517 35.7324 79.6921 4.11981 +1518 35.8549 79.9676 0.666552 +1519 31.0209 66.5315 -25.0253 +1520 30.6371 81.1053 -14.8281 +1521 25.9229 28.2265 -31.4243 +1522 25.0253 66.5405 -31.0879 +1523 -23.953 20.3863 -24.811 +1524 -6.86305 50.3771 -6.98591e-06 +1525 -6.23395 53.5035 -5.40001 +1526 -5.96778 54.8262 -9.98106e-06 +1527 -5.03925 59.4406 -5.40001 +1528 29.9841 85.9825 -0.461551 +1529 -19.6901 84.7067 22.6216 +1530 -18.5897 78.7319 23.5146 +1531 -25.9477 10 -15.0239 +1532 -24.358 14.3682 -17.5014 +1533 -24.6628 19.3787 -17.0704 +1534 19.2684 27.034 30.0748 +1535 32.7942 73.1119 19.2203 +1536 36.0594 50.0915 -29.9956 +1537 -36.3371 31.2618 23.4057 +1538 9.06622 63.3791 -2.30213 +1539 31.4295 70.489 21.8711 +1540 37.8902 71.482 20.9173 +1541 -14.7783 50.5469 -7.10021e-06 +1542 2.75297 20.1313 36.9335 +1543 -21.3398 83.3793 -21.0488 +1544 -21.1407 58.5506 -2.71628 +1545 -21.8684 70.612 31.0832 +1546 32.6528 44.4006 -32.6635 +1547 5.44969 60.5493 -1.39067 +1548 5.39951 60.5757 -2.63715 +1549 9.13584 62.5204 -1.75842 +1550 29.9846 49.5527 -35.82 +1551 -30.8364 31.1856 23.3569 +1552 28.3018 59.9044 -35.0714 +1553 23.5756 21.3273 -18.5135 +1554 20.9893 14.4015 -21.4328 +1555 1.30364 84.2679 -29.95 +1556 -36.3253 34.4014 25.6147 +1557 -25.9517 73.0895 -27.9783 +1558 17.2537 74.5231 -28.9794 +1559 -21.1284 58.6121 -5.40001 +1560 -25.6443 27.1513 28.2099 +1561 17.9693 74.0065 -35.4167 +1562 -20.1958 72.16 -33.5208 +1563 24.9193 17.8331 -16.6846 +1564 30.3557 33.5803 -25.1018 +1565 -36.4617 54.8771 -29.5806 +1566 15.3015 83.426 -25.7881 +1567 -23.1995 79.1141 -18.9932 +1568 -24.5733 67.1849 -28.2403 +1569 27.6971 26.8354 19.0543 +1570 21.0547 21.8003 -21.431 +1571 -27.3012 37.6131 -35.1903 +1572 -30.4854 80.9881 14.0093 +1573 13.6859 80.3468 30.259 +1574 -21.6217 23.2781 -20.778 +1575 -23.4508 21.972 -18.6906 +1576 -35.559 20.3005 -4.07507 +1577 -6.96255 49.8826 -5.40001 +1578 -23.898 68.1145 -34.4542 +1579 26.336 83.8645 -14.3157 +1580 23.9979 28.6994 -21.117 +1581 29.1881 28.9495 -21.3609 +1582 31.7227 27.1121 -19.3566 +1583 16.4582 79.413 -25.0705 +1584 -19.2284 26.977 -28.6684 +1585 23.0965 69.1358 -29.6691 +1586 22.9492 44.3154 -3.23962 +1587 -0.507825 79.9818 -36.3609 +1588 -27.8288 68.1681 -23.8346 +1589 -32.3134 25.0521 -16.6448 +1590 29.9894 49.6936 35.6016 +1591 28.7844 66.7294 32.7057 +1592 -10.8892 78.0019 39.9638 +1593 -16.8726 25.1966 32.9789 +1594 -18.9268 26.7426 27.9685 +1595 -18.8125 26.6742 35.7859 +1596 23.8682 53.8366 -0.0224962 +1597 -29.2907 26.3894 -23.7566 +1598 -34.4738 76.7514 13.51 +1599 23.4317 24.9131 -26.3312 +1600 -24.5793 77.0257 -24.8971 +1601 -0.577936 13.788 29.9908 +1602 14.9269 24.0084 -35.9989 +1603 -11.8362 77.5451 -34.3486 +1604 -22.1821 53.3559 -5.40001 +1605 -13.2225 83.8115 -26.9142 +1606 24.7304 25.3992 28.3698 +1607 -36.5775 34.2494 -25.5158 +1608 -26.2121 35.4207 33.6585 +1609 12.6866 22.828 -34.1555 +1610 13.3609 16.2781 -26.8163 +1611 36.4196 34.2948 -25.5482 +1612 7.52583 60.3917 -3.76354 +1613 25.633 76.4825 24.3901 +1614 7.49905 60.3825 -1.68293 +1615 27.7998 24.401 -23.9453 +1616 -29.2455 74.0112 25.767 +1617 29.4145 26.4014 26.3721 +1618 -33.5866 69.2081 -23.0263 +1619 -33.3742 22.7682 12.561 +1620 21.0246 85.2065 -21.3948 +1621 34.1743 77.732 -11.3736 +1622 33.8041 22.4321 11.7735 +1623 18.849 81.3884 -23.3248 +1624 26.8391 16.1269 13.3738 +1625 4.48822 61.6943 -4.34403 +1626 -1.27704 79.9541 35.4736 +1627 12.1616 77.4224 33.7779 +1628 12.1616 83.7779 27.4224 +1629 11.2021 77.7944 -34.3797 +1630 12.2104 83.9187 -27.399 +1631 -27.453 83.6654 12.0885 +1632 3.14779 20.1761 -36.2886 +1633 -27.7452 15.8416 11.3716 +1634 -27.8236 61.1642 34.3534 +1635 -27.8325 61.1404 -34.1373 +1636 -34.5966 77.8792 -11.0176 +1637 -27.5948 83.7779 -11.7694 +1638 35.3026 29.1162 21.5122 +1639 26.8322 63.3894 33.8406 +1640 32.5612 70.8613 -21.5329 +1641 35.2304 62.0294 27.4578 +1642 34.0746 61.6776 -27.6083 +1643 36.5473 20.1769 3.19124 +1644 -35.6132 79.9196 1.96191 +1645 28.1608 60.2912 33.9014 +1646 -35.5844 79.9581 -1.3023 +1647 -35.1619 38.0338 27.5004 +1648 11.753 22.4159 34.9612 +1649 18.4726 73.6184 29.5331 +1650 29.7128 14.2902 -3.98632 +1651 -11.3543 84.6917 27.7547 +1652 -35.6414 20.0106 -0.218213 +1653 -27.9032 15.3583 -10.9391 +1654 -27.7432 38.6115 34.6673 +1655 -26.5256 22.377 23.963 +1656 -10.6566 78.028 35.8266 +1657 27.6927 84.0058 -11.4726 +1658 -32.4615 74.8153 -16.825 +1659 -32.2704 60.4875 28.0854 +1660 24.9665 60.2642 -5.40001 +1661 2.90517 47.7049 -2.41692 +1662 32.2211 38.5615 -27.7127 +1663 -24.1212 78.4974 17.8291 +1664 -25.3556 77.1877 22.9474 +1665 -2.25391 53.8164 -2.8529 +1666 24.8411 59.5303 -2.70001 +1667 3.63714 41.5863 -4.16476 +1668 -20.8808 44.213 -2.65836 +1669 11.5977 42.3346 -2.76106 +1670 7.98233 42.3337 -4.06032 +1671 4.83404 40.6669 -4.19143 +1672 11.5977 41.1074 -2.7 +1673 11.1445 15.1705 -27.8134 +1674 4.03367 46.2963 -4.23871e-06 +1675 10.1207 40.4326 -2.87544 +1676 5.28436 42.0948 -4.20475 +1677 38.7683 32.7129 -26.2888 +1678 25.1511 42.9819 -1.39984 +1679 6.93289 60.2507 -3.93471 +1680 9.72652 42.9278 -2.7 +1681 37.222 41.6987 -28.7867 +1682 -11.6365 15.7729 27.6336 +1683 38.7523 39.9938 -29.8685 +1684 23.7891 42.4675 -3.36874 +1685 4.67778 42.6863 -4.19847 +1686 23.3274 31.1192 34.0785 +1687 22.7616 15.6204 19.4972 +1688 -9.0875 78.5611 -34.759 +1689 37.0356 39.8165 -28.2069 +1690 2.43204 79.8986 35.9021 +1691 7.12204 41.1104 -5.4 +1692 4.09371 44.2209 -2.8415e-06 +1693 -34.2217 78.002 10.7143 +1694 -23.8462 31.8251 -28.3325 +1695 28.1498 59.0837 -5.40001 +1696 35.605 35.4845 -28.0615 +1697 23.4945 51.6493 -5.40001 +1698 23.0744 49.1908 -5.40001 +1699 14.9762 24.018 34.1391 +1700 -24.41 32.5821 -35.9198 +1701 5.42878 52.9361 -1.14756 +1702 35.8856 37.9019 -27.4254 +1703 -13.4572 76.7849 33.7587 +1704 -32.9743 36.0246 26.519 +1705 -24.283 26.3612 -30.1934 +1706 23.1843 79.1199 -19.039 +1707 -32.0301 16.8625 -7.7109 +1708 22.3036 42.914 -1.96175e-06 +1709 -17.4999 25.6639 -32.6021 +1710 -28.6446 41.1234 -34.6105 +1711 -28.7552 84.4841 8.49084 +1712 -34.2569 78.9194 7.91804 +1713 21.7255 41.6306 -1.14663 +1714 -19.4969 27.2043 -36.6888 +1715 26.0599 22.6622 24.1209 +1716 2.02312 85.441 29.9185 +1717 -0.931457 20.0221 35.766 +1718 3.90852 42.9049 -2.62299 +1719 -10.1989 84.8887 -28.1994 +1720 4.53557 41.5914 -4.31338 +1721 25.7798 48.6518 -2.77351 +1722 10.108 21.7799 -33.3889 +1723 -35.1796 40.2532 -28.3568 +1724 38.7632 34.2712 -27.2786 +1725 3.77406 42.3275 -1.57068 +1726 -23.2269 26.3699 -33.7825 +1727 21.5508 43.7343 -2.90728 +1728 21.0955 43.2321 -2.08005 +1729 -29.6784 28.5093 20.8923 +1730 25.3283 46.7324 -2.95078 +1731 -34.7368 57.956 -28.9097 +1732 4.17519 45.362 -1.45076 +1733 32.3601 40.6239 -31.7535 +1734 24.5239 42.3903 -1.02249 +1735 -9.71747 15.2365 -28.3585 +1736 -9.00632 15.1947 28.5893 +1737 20.8316 42.6545 -1.235 +1738 -32.2638 18.5305 9.75885 +1739 4.50488 61.6387 -2.30136 +1740 5.31506 39.741 -4.05725 +1741 21.5266 40.1829 -1.2594 +1742 23.1344 40.5999 -4.47365 +1743 5.70779 60.4143 -4.0526 +1744 23.7874 41.1234 -7.56248e-07 +1745 6.34166 63.5323 -5.40002 +1746 7.53271 62.9379 -5.40002 +1747 6.44921 62.1887 -5.40002 +1748 5.58424 53.0255 -3.8921 +1749 -32.849 16.8681 -4.51583 +1750 22.8893 40.8836 -5.4 +1751 -26.0512 35.1254 -36.3059 +1752 5.2362 62.7102 -4.55893 +1753 6.24072 61.3477 -4.04509 +1754 23.7035 42.2904 -1.54192e-06 +1755 3.93836 43.8448 -3.61217 +1756 6.27121 62.0832 -1.48665e-05 +1757 21.9023 41.6652 -5.4 +1758 23.4864 41.973 -5.4 +1759 7.58845 62.8465 -1.53804e-05 +1760 4.76114 43.3438 -2.55059 +1761 6.93324 42.2365 -4.09666 +1762 4.89444 55.624 -3.84154 +1763 22.6707 41.3302 -2.45092 +1764 -14.5006 76.248 -32.1098 +1765 3.88318 52.9591 -1.40408 +1766 -14.333 76.3451 -36.6829 +1767 23.2684 43.4324 -3.01388 +1768 -33.9969 26.7978 19.0172 +1769 6.57215 65.0314 -3.80516 +1770 9.11858 62.3093 -3.76656 +1771 22.3553 42.7825 -5.4 +1772 6.16282 48.581 -2.96576 +1773 -28.6828 15.2632 8.7728 +1774 4.36849 39.9362 -4.18055 +1775 -28.8552 84.428 -8.14813 +1776 -34.7265 78.9526 -7.79959 +1777 21.8964 41.4102 -3.68966 +1778 -34.5653 21.3696 8.86332 +1779 28.5942 85.0252 -8.98142 +1780 28.2913 40.051 -34.0344 +1781 28.4424 40.493 34.249 +1782 28.3857 15.7419 9.69992 +1783 -32.9338 17.2651 2.76931 +1784 26.5769 83.0265 13.891 +1785 -21.8098 24.6293 25.1497 +1786 35.4778 78.6132 -8.91876 +1787 34.2585 40.6267 -28.4855 +1788 35.2503 40.7724 28.5249 +1789 34.6337 21.4961 9.30617 +1790 -20.9024 28.4189 29.9942 +1791 4.89372 41.1578 -1.40698 +1792 5.82381 62.2313 -4.19334 +1793 23.876 39.8682 -1.32017 +1794 6.0977 63.6396 -1.59143e-05 +1795 23.2634 43.4268 -5.4 +1796 24.4668 40.2332 -3.852 +1797 3.99092 43.8176 -1.45661 +1798 4.67765 54.0411 -1.16802 +1799 8.17395 62.5787 -2.9724 +1800 4.8514 61.0566 -2.91569 +1801 6.83814 39.7264 -2.83485 +1802 8.67087 39.9863 -2.92148 +1803 7.54587 61.7209 -5.40001 +1804 21.4877 42.0545 -4.55101 +1805 6.98477 61.0831 -4.47118 +1806 5.91944 63.1518 -2.12764 +1807 -22.6236 15.4423 19.6725 +1808 -23.3312 20.5866 18.8308 +1809 -33.0375 16.6861 -0.809007 +1810 7.21204 61.5588 -3.5492 +1811 7.02888 42.2448 -2.91831 +1812 6.10057 42.3975 -2.16356 +1813 4.90179 60.9943 -1.72537 +1814 7.91292 63.52 -1.08912 +1815 8.85524 84.6797 28.646 +1816 8.58894 78.7201 35.158 +1817 4.7501 56.3434 -1.64804 +1818 9.30062 85.0886 -28.5214 +1819 8.66665 78.6985 -34.9747 +1820 8.39935 64.4739 -4.27167 +1821 24.3933 41.7072 -4.43973 +1822 28.6516 84.7891 8.81119 +1823 28.6505 15.4877 -8.81903 +1824 -24.9437 17.3615 16.6244 +1825 3.92804 53.9811 -1.31543 +1826 23.3773 50.9635 -3.02232 +1827 24.0903 46.7324 -4.16646 +1828 15.7872 17.3235 -25.4865 +1829 37.7314 36.9374 -29.9775 +1830 23.578 40.8871 -3.57017 +1831 5.32787 41.3027 -4.43694 +1832 15.0607 24.0696 -30.4628 +1833 6.85279 61.3744 -1.68146 +1834 7.82647 61.763 -1.4651e-05 +1835 5.51952 61.5112 -4.7023 +1836 22.7001 40.7073 -1.22722 +1837 7.22223 60.9926 -2.57069 +1838 9.08446 63.3183 -1.06545 +1839 5.49228 62.8455 -5.40002 +1840 23.8855 44.2279 -1.33308 +1841 21.4668 41.5446 -2.95656 +1842 3.07808 48.5593 -0.0411736 +1843 4.58643 61.46 -1.06466 +1844 4.73409 43.4855 -4.555 +1845 5.97597 63.9611 -2.16119 +1846 22.393 41.6115 -1.08484e-06 +1847 5.41305 62.2311 -1.39481 +1848 23.6907 43.0117 -1.5407 +1849 4.4622 63.3425 -1.17463 +1850 34.8985 58.9774 -28.606 +1851 5.70637 42.7457 -4.50288 +1852 9.31722 41.4948 -4.01435 +1853 23.9756 43.0062 -4.58378 +1854 7.80363 41.083 -3.91813 +1855 22.5985 41.5509 -4.52436 +1856 21.6501 40.8617 -5.4 +1857 2.1912 56.7245 -1.50323 +1858 6.89158 61.1243 -1.4221e-05 +1859 8.25093 63.8284 -1.60414e-05 +1860 7.80662 41.1056 -1.57661 +1861 22.7786 43.5746 -0.60564 +1862 34.3642 59.2749 28.5225 +1863 8.34239 62.5849 -0.713228 +1864 36.1617 79.809 -3.3207 +1865 23.2556 50.2517 -6.90149e-06 +1866 7.32497 62.4218 -4.64307 +1867 7.59631 64.1554 -4.62273 +1868 6.71532 63.0941 -0.638047 +1869 24.187 41.5361 -2.59454 +1870 -8.02499 85.095 28.9007 +1871 -7.44699 79.0434 35.0276 +1872 8.8307 63.9567 -4.36 +1873 38.8427 35.6841 -27.9555 +1874 8.46613 60.9982 -1.19422 +1875 -34.3643 41.0441 28.6301 +1876 9.62608 15.0284 28.3937 +1877 8.12812 21.1549 35.3026 +1878 6.35513 40.8692 -4.05023 +1879 22.8884 44.3121 -4.21003 +1880 -28.9409 14.95 -7.80579 +1881 -28.7566 41.4533 34.3642 +1882 21.1592 43.3187 -1.05827 +1883 5.37957 62.537 -1.5172e-05 +1884 22.9632 41.7457 -3.64409 +1885 5.52465 43.133 -4.31336 +1886 7.37475 63.915 -1.60997e-05 +1887 6.42223 64.3151 -3.01758 +1888 -17.1105 25.3707 -36.5701 +1889 5.75355 55.3906 -1.1136 +1890 7.20261 41.6453 -4.66357 +1891 3.13778 48.8543 -5.40001 +1892 21.0444 40.7224 -0.957996 +1893 4.16028 40.9737 -4.78097 +1894 23.8317 43.0092 -5.4 +1895 25.9965 49.6057 -5.40001 +1896 6.84856 64.2244 -4.78628 +1897 22.6571 40.5317 -3.29037 +1898 24.6614 43.6933 -3.40448 +1899 24.2378 43.1537 -0.726905 +1900 24.2689 43.2456 -2.48646 +1901 6.63107 65.035 -2.72478 +1902 5.27008 61.7019 -0.647862 +1903 -33.5492 64.4583 -26.2675 +1904 25.3413 42.0288 -0.906783 +1905 1.70579 56.5718 -3.98896 +1906 34.5764 21.9313 -10.557 +1907 6.53508 62.5486 -4.06547 +1908 4.9974 42.3942 -2.23729 +1909 39.0092 37.2035 -28.444 +1910 23.515 41.3752 -4.60483 +1911 20.716 41.6662 -3.75369 +1912 6.39691 60.2527 -4.55152 +1913 6.69217 62.3125 -0.96689 +1914 21.6079 41.9065 -2.07515 +1915 5.29892 61.5867 -2.34403 +1916 5.31849 54.3831 -2.18026 +1917 34.3991 37.0587 -30.1064 +1918 9.12692 62.4113 -2.71398 +1919 23.4838 40.612 -2.11755 +1920 23.4447 42.2506 -4.36453 +1921 6.38062 63.0188 -1.39 +1922 20.8011 41.2756 -0.901777 +1923 35.98 66.9577 -24.7072 +1924 37.8637 36.1905 -26.5992 +1925 7.64436 21.0237 -35.4525 +1926 8.52978 14.9392 -28.7363 +1927 6.28551 63.4197 -3.22161 +1928 23.2809 42.1746 -2.10563 +1929 5.26757 62.1113 -5.40001 +1930 3.37984 56.5336 -3.06343 +1931 8.16292 63.5885 -4.38834 +1932 6.22906 63.3956 -4.38393 +1933 3.70282 85.8281 -29.7466 +1934 23.5374 43.6103 -0.721934 +1935 -34.2411 23.4564 -13.9423 +1936 4.00894 42.4028 -5.4 +1937 22.8669 40.6892 -4.6399e-07 +1938 5.19158 55.7062 -5.40001 +1939 -1.10309 86.2758 29.9649 +1940 4.39908 42.2837 -1.5374e-06 +1941 5.38585 54.5674 -9.80685e-06 +1942 4.17513 41.6949 -3.12613 +1943 8.17818 63.9743 -5.40002 +1944 4.54302 56.8871 -4.37265 +1945 5.06944 64.3298 -1.03621 +1946 37.4236 36.5494 -28.1725 +1947 38.1075 38.3678 -27.6098 +1948 21.4985 41.3306 -4.4905 +1949 3.29391 57.9041 -4.00299 +1950 22.9461 42.855 -2.33591 +1951 21.2062 40.5066 -3.83924 +1952 24.6671 41.665 -0.724351 +1953 5.54841 39.7253 -1.74016 +1954 5.49334 62.4419 -3.27964 +1955 6.32847 62.2241 -2.66448 +1956 31.4466 31.4908 23.5883 +1957 8.03416 62.5653 -1.77181 +1958 4.96231 54.1641 -3.87565 +1959 6.92614 52.8576 -2.70001 +1960 2.46676 57.9185 -2.68473 +1961 5.42982 63.6798 -4.78722 +1962 5.47155 54.4751 -5.36061 +1963 8.9353 61.6955 -3.41357 +1964 7.62015 61.5901 -2.33414 +1965 -28.9301 57.8823 -34.9114 +1966 -28.8771 58.0687 34.3488 +1967 8.98674 61.8168 -0.98614 +1968 -6.31847 79.2928 -35.8001 +1969 5.62408 45.9189 -2.67599 +1970 22.0781 40.6955 -4.60732 +1971 8.08762 62.0955 -5.40001 +1972 4.79432 64.0038 -3.85156 +1973 24.7461 43.5968 -4.40224 +1974 -29.4446 15.9874 5.6598 +1975 -38.289 17.9339 -0.462578 +1976 6.93244 64.1247 -3.9407 +1977 22.9378 41.9366 -1.17386 +1978 5.69446 42.7664 -1.52539 +1979 1.2208 57.7694 -2.86662 +1980 5.52814 41.5331 -3.1938 +1981 3.87508 43.9561 -5.4 +1982 5.44534 63.6678 -2.85445 +1983 5.43988 43.4495 -1.54223 +1984 6.1111 42.3934 -3.66336 +1985 22.1443 43.5094 -0.485413 +1986 6.70531 61.0596 -5.40001 +1987 22.7009 39.7063 -2.46373 +1988 7.15545 63.7728 -2.45888 +1989 5.34508 57.5724 -2.54135 +1990 1.35844 55.314 -2.26993 +1991 6.27647 56.8828 -2.76652 +1992 7.04369 62.573 -2.08528 +1993 4.06221 57.9052 -2.22398 +1994 5.42858 44.3572 -2.26601 +1995 4.43357 39.9143 -1.4255 +1996 3.91797 54.1024 -2.68586 +1997 7.0625 54.5371 -2.69131 +1998 5.57715 42.9707 -3.22671 +1999 -0.431544 57.322 -2.5464 +2000 6.99071 63.925 -1.08333 +2001 3.5396 40.3293 -2.2708 +2002 25.3338 42.2509 -2.05282 +2003 2.97289 55.3507 -2.72722 +2004 20.7047 41.8856 -1.07698 +2005 -33.2021 79.5089 15.3085 +2006 6.79083 62.508 -3.25429 +2007 25.1566 42.97 -2.77871 +2008 25.28 41.514 -3.35893 +2009 3.60958 54.954 -2.60071 +2010 23.7936 40.6147 -0.833546 +2011 2.30715 43.8908 -2.5767 +2012 0.437305 55.0658 -3.03188 +2013 2.34559 42.502 -2.89875 +2014 7.60287 64.9303 -3.86219 +2015 6.82607 55.9016 -2.60176 +2016 8.87017 63.8904 -1.47077 +2017 2.74943 41.2231 -3.1839 +2018 21.4436 40.2548 -2.50785 +2019 4.78608 39.824 -2.99202 +2020 22.0383 39.8733 -2.53127 +2021 22.2712 44.1634 -2.48798 +2022 4.33933 62.5062 -2.77273 +2023 35.1941 53.6859 29.7546 +2024 27.0275 37.0188 33.1332 +2025 3.75655 51.9117 -2.59359 +2026 23.8376 40.9815 -5.4 +2027 22.9918 43.6012 -2.03747 +2028 8.47616 42.4479 -2.15185 +2029 22.6543 46.7324 -2.36988 +2030 21.8609 40.8492 -1.73107 +2031 24.1769 40.0241 -2.74045 +2032 24.362 42.4737 -1.96258 +2033 8.20721 64.6242 -3.14005 +2034 20.7153 41.6797 -1.96577 +2035 22.9405 42.7184 -0.691776 +2036 20.9051 40.9812 -3.73188 +2037 6.01271 62.8843 -0.651105 +2038 -7.54014 20.9729 -35.5646 +2039 -34.869 57.3553 29.0766 +2040 25.2605 41.4341 -4.35563 +2041 -6.44485 14.912 29.2717 +2042 -8.23862 21.1681 34.9623 +2043 -25.7138 81.3892 15.4155 +2044 23.362 43.3742 -2.27154e-06 +2045 24.9325 40.7291 -3.41128 +2046 5.46907 79.4805 35.032 +2047 5.81927 84.8646 29.4158 +2048 6.34612 79.3184 -34.6172 +2049 30.6227 35.5408 -30.9697 +2050 22.9597 16.3424 -19.2824 +2051 24.5678 42.3233 -2.75179 +2052 5.40189 43.9046 -3.85135 +2053 3.86822 52.8348 -3.96042 +2054 -29.9141 52.0715 -36.2149 +2055 5.59795 61.5694 -5.40001 +2056 4.90756 62.6924 -0.690926 +2057 24.8905 59.8191 -1.33423e-05 +2058 -14.3548 16.6416 -26.3302 +2059 24.9817 40.8187 -4.44456 +2060 29.3621 85.6772 -6.03204 +2061 -35.1921 20.5975 5.81334 +2062 34.6172 79.2411 -6.70505 +2063 -29.9718 14.2329 -0.0976438 +2064 29.2841 43.5445 35.5528 +2065 9.10543 63.2397 -3.80867 +2066 34.6172 43.2949 29.2411 +2067 34.6172 20.7589 6.70506 +2068 -20.7447 44.8879 -5.4 +2069 -11.0166 45.2734 -5.4 +2070 -20.7369 44.9267 -3.31671e-06 +2071 -11.0166 45.2734 -3.55011e-06 +2072 4.82459 41.4145 -5.4 +2073 6.11397 61.2374 -0.90859 +2074 25.332 42.2857 -3.84961 +2075 7.38198 63.3242 -3.66514 +2076 21.6349 42.6724 -0.636492 +2077 7.95987 63.7631 -1.87098 +2078 6.16824 61.2733 -5.40001 +2079 5.57085 64.7057 -4.42925 +2080 23.8518 41.5469 -1.23896 +2081 6.00406 41.6909 -4.70465 +2082 20.8243 42.6704 -3.88708 +2083 4.19258 56.4214 -0.0251606 +2084 -34.5875 61.1559 -27.8396 +2085 -13.8752 18.1309 30.5791 +2086 23.3585 43.5553 -4.19866 +2087 8.16975 60.7434 -4.031 +2088 3.44018 56.2256 -1.37203 +2089 22.2456 42.8383 -1.35108 +2090 6.15885 61.3516 -2.41515 +2091 20.8548 41.1039 -4.62879 +2092 5.55629 45.4718 -1.07497 +2093 25.1311 43.0249 -4.1612 +2094 1.51664 55.334 -4.05494 +2095 7.64904 64.9116 -0.942781 +2096 -18.6484 81.608 -23.469 +2097 6.93413 42.2366 -1.262 +2098 22.444 42.9248 -4.18853 +2099 22.1078 42.5724 -2.82505 +2100 6.42147 63.7325 -1.65041 +2101 4.33926 62.5076 -4.12583 +2102 23.7314 42.8144 -2.39904 +2103 -4.4116 79.6569 35.085 +2104 -5.0311 84.7424 29.5649 +2105 5.466 57.5071 -4.11474 +2106 -16.1277 83.6737 -25.2745 +2107 5.71962 64.7843 -1.00656 +2108 21.7918 40.0069 -3.75162 +2109 8.60371 61.1482 -4.32522 +2110 2.3015 55.4025 -1.50189 +2111 24.4069 41.6387 -5.4 +2112 3.83702 56.5034 -5.40001 +2113 22.1697 43.3421 -2.13865 +2114 26.6941 63.6805 -33.5096 +2115 7.19745 63.1711 -1.51788 +2116 3.80096 54.5876 -4.03413 +2117 3.39405 55.166 -4.13418 +2118 17.8248 25.877 -28.513 +2119 4.51197 61.6231 -3.23315 +2120 5.52633 41.1766 -7.92087e-07 +2121 28.8897 33.1124 33.374 +2122 15.8122 14.9898 25.482 +2123 -34.3812 20.9131 -7.26334 +2124 22.4086 39.7505 -3.96674 +2125 5.24183 61.5533 -3.73472 +2126 4.4112 57.8541 -3.95425 +2127 35.0524 79.226 6.70509 +2128 17.8047 17.6633 24.1226 +2129 35.2701 20.8315 -6.94035 +2130 8.33153 62.1878 -1.49369e-05 +2131 23.9701 44.1808 -4.01028 +2132 22.7487 43.673 -4.82607 +2133 26.8425 53.3296 -5.40001 +2134 7.90751 64.1329 -0.587633 +2135 26.2701 50.81 -7.27736e-06 +2136 -29.5198 15.1448 -5.3085 +2137 7.72381 61.6575 -1.03574 +2138 -7.90711 45.1885 -5.4 +2139 -7.86207 45.4124 -3.64365e-06 +2140 3.54224 40.3304 -4.00084 +2141 22.147 39.8312 -1.20727 +2142 21.1976 43.3707 -3.74261 +2143 7.15578 60.3128 -0.841472 +2144 8.98895 61.8399 -4.50894 +2145 5.23304 20.4871 35.2127 +2146 22.0339 44.0612 -4.05144 +2147 -23.8227 45.1717 -3.48162e-06 +2148 4.42725 63.2261 -3.84197 +2149 24.1001 43.3309 -3.81931 +2150 23.8496 39.8596 -4.27187 +2151 23.0654 39.6888 -4.15034 +2152 23.2527 44.2989 -1.87906 +2153 23.0124 39.6859 -1.50768 +2154 -31.426 74.8387 16.9047 +2155 6.02693 40.9771 -5.4 +2156 21.747 43.8945 -1.52297 +2157 3.94013 53.8355 -4.01324 +2158 6.23035 62.1843 -1.79359 +2159 2.51032 55.4126 -3.94168 +2160 3.06962 55.321 -1.34936 +2161 -33.4259 20.5245 -16.0361 +2162 8.33458 64.5399 -1.34179 +2163 -32.5603 80.8241 -12.583 +2164 6.62331 64.396 -2.01759 +2165 6.26068 64.9596 -4.57046 +2166 5.41635 62.3835 -2.32117 +2167 8.2214 62.4119 -4.32128 +2168 24.9467 81.3667 -16.648 +2169 5.79109 63.8409 -1.00619 +2170 5.16211 60.7367 -0.792164 +2171 5.21828 20.4777 -34.4255 +2172 9.14643 62.6498 -0.816794 +2173 5.48885 43.2157 -2.32034 +2174 6.06124 42.4194 -4.55493 +2175 24.0484 40.7781 -4.35136 +2176 8.53731 63.0315 -4.77529 +2177 8.11473 61.6622 -3.73734 +2178 9.0292 63.5027 -4.66524 +2179 -31.7979 61.7556 31.4387 +2180 23.2525 71.2132 21.2132 +2181 6.20094 64.3425 -1.39182 +2182 23.6565 42.7587 -0.772119 +2183 5.72866 61.4426 -1.44352e-05 +2184 3.66792 54.8663 -1.2706 +2185 24.8215 40.5795 -0.813438 +2186 8.25241 64.5954 -2.19219 +2187 21.5567 42.0916 -1.40806e-06 +2188 23.4534 44.2945 -4.77361 +2189 21.8891 40.7987 -0.664789 +2190 5.70022 42.7564 -2.31371 +2191 4.96338 42.4832 -5.4 +2192 23.1419 39.8593 -5.4 +2193 40 36.9503 -27.0107 +2194 4.36375 62.3555 -1.23878 +2195 -30.9714 66.9626 24.7347 +2196 16.6681 21.9945 -33.8801 +2197 6.71704 65.0404 -4.55194 +2198 6.32294 64.3442 -4.10198 +2199 6.5756 64.4272 -0.676266 +2200 5.87721 60.404 -1.97119 +2201 -29.6409 54.585 35.1114 +2202 -29.5444 44.8862 -34.9271 +2203 -35.0388 79.5333 5.1759 +2204 5.4089 44.1854 -1.10603 +2205 -24.235 67.6594 33.7297 +2206 7.6856 61.4043 -4.66036 +2207 32.5821 68.8729 -23.3186 +2208 21.8905 40.9581 -6.45029e-07 +2209 9.15277 62.7275 -4.57938 +2210 33.0453 19.5632 -13.9074 +2211 8.41641 63.3844 -0.600213 +2212 -4.93311 20.4302 35.5142 +2213 8.61962 64.1787 -0.676855 +2214 23.712 43.6586 -2.03607 +2215 -13.0377 87.1383 -30.801 +2216 8.37565 62.7323 -5.40002 +2217 16.8818 79.2493 24.7815 +2218 5.66696 61.132 -3.31287 +2219 21.0848 40.6569 -4.58379 +2220 8.24175 63.3582 -5.40002 +2221 5.43335 41.9225 -5.4 +2222 24.3939 40.7817 -4.93006 +2223 -31.0137 18.3886 13.8293 +2224 -31.0118 34.8981 -25.908 +2225 14.0938 19.4378 -31.6732 +2226 8.56708 63.0225 -1.37366 +2227 4.88855 62.0819 -2.78456 +2228 31.6613 62.8436 30.8918 +2229 -32.03 37.2586 31.0567 +2230 31.4206 63.1308 -31.1798 +2231 -35.3069 20.1485 2.89361 +2232 29.7733 14.5349 3.65086 +2233 34.9786 46.69 -29.8082 +2234 8.42984 61.8102 -4.86733 +2235 29.8316 53.164 34.9293 +2236 18.8275 78.0402 -32.4804 +2237 -26.524 16.5201 -19.5085 +2238 24.4186 40.1935 -4.66226 +2239 8.19574 64.6325 -0.5523 +2240 5.49357 43.5828 -2.81998 +2241 6.34304 60.2572 -1.25484 +2242 22.4264 44.1077 -2.76532e-06 +2243 22.8609 40.1817 -4.84432 +2244 8.56062 63.6351 -4.94822 +2245 21.7243 43.877 -0.700263 +2246 24.4767 41.4111 -9.49952e-07 +2247 32.6021 25.8115 17.7047 +2248 8.66051 62.3782 -4.92116 +2249 8.62985 64.1925 -4.83584 +2250 30.879 17.3377 -12.2364 +2251 23.6859 40.3012 -4.90135 +2252 -31.4478 35.816 -31.036 +2253 23.4318 75.4874 -30.3397 +2254 -23.8298 84.8312 -18.1962 +2255 30.985 72.607 -25.2895 +2256 -30.6929 27.3196 26.8932 +2257 21.6053 18.3281 25.9123 +2258 25.9783 17.9201 20.9835 +2259 34.9184 78.3484 9.77113 +2260 -29.9537 48.2331 37.9926 +2261 -18.083 58.1143 -1.21946e-05 +2262 -18.083 58.1143 -5.40001 +2263 -8.44141 58.1143 -1.21946e-05 +2264 -24.993 17.4988 21.7324 +2265 -35.5805 67.8796 24.0457 +2266 -27.8915 73.788 18.3556 +2267 -9.86672 17.3329 31.698 +2268 -31.3814 76.5791 -13.8502 +2269 23.4964 18.3643 -24.2693 +2270 21.7601 75.4624 -20.6038 +2271 21.08 79.4156 -21.3445 +2272 -23.8451 29.0393 -21.4858 +2273 30.8035 35.8949 31.0236 +2274 21.5765 29.2009 29.0944 +2275 20.746 28.3447 35.4273 +2276 -14.7783 50.5469 -5.40001 +2277 -14.2334 53.2539 -5.40001 +2278 -14.2334 53.2539 -8.9226e-06 +2279 27.7522 73.0833 -19.145 +2280 -24.9327 79.8355 -16.656 +2281 32.639 35.9807 -26.5036 +2282 -31.7305 63.1822 -30.8079 +2283 31.9263 18.7643 12.7257 +2284 -28.0082 70.64 -21.7467 +2285 18.8276 16.5395 -23.3412 +2286 20.4914 28.1098 -30.1002 +2287 -14.4536 16.461 26.2704 +2288 -13.7549 19.0291 -31.3635 +2289 5.50429 64.6647 -3.55655 +2290 17.6554 84.2989 24.2331 +2291 19.2469 78.3311 22.9894 +2292 21.1783 73.3615 21.2476 +2293 20.4469 84.4203 21.9249 +2294 21.4423 78.9814 20.9472 +2295 8.94546 61.7148 -1.96051 +2296 14.663 76.2076 -33.084 +2297 -35.929 47.0703 -29.8446 +2298 -21.6434 76.3608 -20.7529 +2299 -22.7968 30.547 36.2606 +2300 -24.0646 32.1185 31.5762 +2301 33.1248 25.1419 -16.7578 +2302 -17.0563 16.8536 -24.6668 +2303 34.6628 23.6154 14.3164 +2304 32.8162 34.4085 25.6086 +2305 23.2205 82.0184 18.9908 +2306 25.0366 83.4392 16.5188 +2307 -37.5361 47.285 29.873 +2308 19.3537 72.8924 -29.8292 +2309 21.436 70.9575 -27.1439 +2310 8.02465 60.6392 -2.55277 +2311 -22.2489 76.0889 20.1025 +2312 23.2036 84.3666 -19.0156 +2313 30.6823 75.1432 16.3486 +2314 27.7405 15.7298 -11.3571 +2315 25.6011 28.8525 21.2729 +2316 -34.2905 22.0622 -10.8901 +2317 -11.387 22.25 33.5934 +2318 -33.5263 24.6912 16.0824 +2319 -34.1212 36.9967 -27.0048 +2320 -17.1521 74.6557 -39.9641 +2321 -17.6379 74.2463 -32.179 +2322 -11.434 22.2723 -33.8046 +2323 -23.0857 80.5741 25.7336 +2324 15.3613 75.7477 31.8151 +2325 34.1248 76.3208 -14.3394 +2326 -17.1287 81.7849 24.6129 +2327 26.9087 36.7704 -33.7601 +2328 -16.9145 18.0409 24.7713 +2329 3.12707 79.8238 -35.1136 +2330 36.7792 75.0044 16.5353 +2331 33.575 29.1638 -21.5554 +2332 22.8278 44.3062 -1.20731 +2333 -28.3935 26.2615 18.2947 +2334 -36.1823 28.982 21.4001 +2335 -24.1204 84.724 17.8258 +2336 -36.4776 50.8285 -29.9805 +2337 -21.6947 29.2967 -27.2051 +2338 -20.6259 28.2466 25.0704 +2339 -20.8693 28.5045 36.4536 +2340 27.7179 84.5014 11.4082 +2341 -21.0748 71.3316 -25.9655 +2342 -19.4806 18.9947 -22.8032 +2343 26.4116 15.9691 -14.1774 +2344 -29.5687 66.5735 -24.9921 +2345 36.5619 26.7185 18.9056 +2346 -16.9245 74.7635 28.9851 +2347 34.3188 37.4655 27.2474 +2348 -34.0766 63.1469 26.9397 +2349 3.30736 14.8373 29.792 +2350 -32.8311 33.4301 24.9811 +2351 -29.8218 13.5601 -2.97652 +2352 21.1832 28.7572 -23.0624 +2353 20.6644 28.2645 -35.706 +$EndNodes +$Elements +6373 +1 4 0 1185 1192 1440 1135 +2 4 0 120 185 1974 138 +3 4 0 1164 1371 1226 1196 +4 4 0 1001 1373 1014 1521 +5 4 0 800 803 1433 823 +6 4 0 324 272 352 2237 +7 4 0 1042 1477 2210 1365 +8 4 0 1655 215 300 2256 +9 4 0 1699 849 821 823 +10 4 0 812 1832 1828 2225 +11 4 0 1966 148 112 171 +12 4 0 1429 696 760 698 +13 4 0 1163 1193 1520 1225 +14 4 0 1358 451 2085 481 +15 4 0 2302 2058 465 450 +16 4 0 1029 2258 1044 1102 +17 4 0 296 212 2237 272 +18 4 0 2133 1826 1596 55 +19 4 0 1609 790 774 807 +20 4 0 1699 1362 849 823 +21 4 0 2104 546 1870 543 +22 4 0 2326 396 1360 429 +23 4 0 958 1488 1623 1363 +24 4 0 326 328 1492 255 +25 4 0 1039 2228 1011 1639 +26 4 0 1719 513 534 542 +27 4 0 823 825 1433 852 +28 4 0 560 2041 545 2267 +29 4 0 2023 2235 1089 1114 +30 4 0 216 1653 200 305 +31 4 0 2278 2276 446 456 +32 4 0 1633 138 1773 209 +33 4 0 2257 917 1380 998 +34 4 0 584 1471 564 559 +35 4 0 2224 1386 105 1351 +36 4 0 2075 2033 758 1931 +37 4 0 1532 296 2237 352 +38 4 0 958 1363 873 909 +39 4 0 2267 2042 528 560 +40 4 0 400 1442 2311 2266 +41 4 0 2124 946 2151 1897 +42 4 0 869 842 1364 871 +43 4 0 196 253 1468 294 +44 4 0 1196 1218 1157 1371 +45 4 0 1408 1368 1015 1606 +46 4 0 2005 197 173 134 +47 4 0 2256 154 156 206 +48 4 0 1664 2266 1407 1356 +49 4 0 2303 1264 1270 1244 +50 4 0 1905 1979 1999 1990 +51 4 0 1090 1427 1165 1203 +52 4 0 171 132 1456 195 +53 4 0 488 2215 1605 513 +54 4 0 1494 1151 1174 1214 +55 4 0 728 747 2206 1612 +56 4 0 2018 1763 2020 1897 +57 4 0 110 167 146 1356 +58 4 0 1179 1366 1142 1200 +59 4 0 1831 2081 2155 2072 +60 4 0 2020 1763 2030 1836 +61 4 0 1445 1440 1048 1414 +62 4 0 649 739 2046 725 +63 4 0 2327 1506 1057 1152 +64 4 0 2024 1153 1058 2121 +65 4 0 2273 1153 2121 1160 +66 4 0 359 2344 1588 1568 +67 4 0 1479 489 461 464 +68 4 0 2326 435 1529 396 +69 4 0 596 1501 617 589 +70 4 0 1003 1132 2312 1069 +71 4 0 1706 2279 1370 974 +72 4 0 1835 1747 1753 2078 +73 4 0 1140 1131 1190 1440 +74 4 0 1799 1957 1964 755 +75 4 0 1806 2100 2169 1921 +76 4 0 1799 1988 2075 1992 +77 4 0 1486 1150 1213 1173 +78 4 0 1472 1224 1089 1064 +79 4 0 1753 1955 1810 2006 +80 4 0 1794 2169 681 691 +81 4 0 1418 1197 1137 1173 +82 4 0 2199 1886 2095 737 +83 4 0 1910 1742 1750 2026 +84 4 0 1861 1985 2245 2089 +85 4 0 1370 1225 1195 1163 +86 4 0 750 1818 777 709 +87 4 0 1370 1195 1217 1156 +88 4 0 1186 1146 1498 1203 +89 4 0 1933 750 709 726 +90 4 0 750 726 1818 709 +91 4 0 1161 1215 1159 1367 +92 4 0 2256 1352 1551 106 +93 4 0 1075 1169 1181 1082 +94 4 0 1498 1124 1247 1115 +95 4 0 1181 1075 1082 2232 +96 4 0 1082 1782 1075 1169 +97 4 0 1382 2257 1380 1381 +98 4 0 2253 1363 1035 976 +99 4 0 1925 774 745 706 +100 4 0 1141 1101 1365 1043 +101 4 0 925 1613 1474 1440 +102 4 0 569 1417 549 1495 +103 4 0 1417 1735 535 549 +104 4 0 1417 535 569 549 +105 4 0 1609 807 820 790 +106 4 0 833 864 1422 2324 +107 4 0 833 857 1422 864 +108 4 0 1705 1357 356 354 +109 4 0 799 731 759 749 +110 4 0 1240 1091 1389 1116 +111 4 0 306 339 1465 209 +112 4 0 1180 1113 1188 1245 +113 4 0 1393 1267 1111 1122 +114 4 0 1160 1368 1162 1095 +115 4 0 1236 1083 1198 1174 +116 4 0 1639 1128 1053 1645 +117 4 0 851 880 848 1361 +118 4 0 1210 1956 1216 1262 +119 4 0 1906 1263 1301 1299 +120 4 0 1422 864 857 904 +121 4 0 1212 1149 1366 1172 +122 4 0 569 563 1417 1495 +123 4 0 563 1735 535 1417 +124 4 0 1168 1081 1091 1822 +125 4 0 563 535 569 1417 +126 4 0 1175 1122 1221 1188 +127 4 0 1157 1070 1133 1371 +128 4 0 2121 1073 1368 1160 +129 4 0 1389 1081 1091 1168 +130 4 0 1987 1763 2020 1836 +131 4 0 1106 1173 1486 1077 +132 4 0 1546 1418 1486 1173 +133 4 0 1044 1102 2258 1142 +134 4 0 1179 1366 1102 1142 +135 4 0 2257 1362 861 929 +136 4 0 1324 1265 1090 1850 +137 4 0 1552 1427 1079 1146 +138 4 0 1498 1427 1146 1079 +139 4 0 1324 1090 1265 1457 +140 4 0 1606 1005 1017 949 +141 4 0 1828 1361 877 851 +142 4 0 861 852 878 1362 +143 4 0 2316 94 74 6 +144 4 0 199 258 247 1881 +145 4 0 258 2260 199 247 +146 4 0 226 189 1655 273 +147 4 0 1604 1387 446 455 +148 4 0 142 258 179 124 +149 4 0 154 206 1352 211 +150 4 0 2307 81 25 258 +151 4 0 81 25 258 1875 +152 4 0 1418 1077 1486 1173 +153 4 0 1780 1137 1077 1418 +154 4 0 1469 448 485 2288 +155 4 0 122 181 1350 150 +156 4 0 183 1616 136 191 +157 4 0 1427 1203 1498 1146 +158 4 0 1090 1203 1498 1427 +159 4 0 149 2161 121 180 +160 4 0 1648 791 806 773 +161 4 0 273 2264 1655 325 +162 4 0 2252 161 153 113 +163 4 0 88 2161 121 149 +164 4 0 316 357 369 1655 +165 4 0 1925 790 745 774 +166 4 0 1600 2284 422 393 +167 4 0 448 480 1357 450 +168 4 0 292 2252 123 178 +169 4 0 2252 153 105 113 +170 4 0 1600 385 326 337 +171 4 0 272 225 188 1349 +172 4 0 1426 1823 1158 1074 +173 4 0 1650 1180 1074 1426 +174 4 0 1426 1158 1180 1074 +175 4 0 187 1354 140 130 +176 4 0 1359 385 383 326 +177 4 0 2069 540 541 511 +178 4 0 2256 154 1352 106 +179 4 0 1429 722 781 760 +180 4 0 698 1429 1876 760 +181 4 0 80 2297 26 24 +182 4 0 569 583 563 1495 +183 4 0 445 1668 1430 2068 +184 4 0 436 1390 409 442 +185 4 0 126 1444 118 177 +186 4 0 434 428 2096 395 +187 4 0 1711 177 1444 126 +188 4 0 2163 1775 143 125 +189 4 0 1012 2114 2230 1040 +190 4 0 1012 2114 1369 2230 +191 4 0 1258 1476 1371 1226 +192 4 0 196 166 238 1355 +193 4 0 196 238 294 1468 +194 4 0 110 167 1356 134 +195 4 0 1451 571 1437 561 +196 4 0 1370 1195 1257 1217 +197 4 0 608 617 627 1501 +198 4 0 1437 571 586 561 +199 4 0 653 739 649 751 +200 4 0 183 191 260 1616 +201 4 0 915 1364 913 871 +202 4 0 1164 1476 1226 1371 +203 4 0 1444 177 1711 252 +204 4 0 1038 1591 1048 1135 +205 4 0 1140 1190 1192 1440 +206 4 0 1048 1140 1135 1440 +207 4 0 1192 1440 1190 1242 +208 4 0 1135 1192 1440 1140 +209 4 0 51 117 101 1450 +210 4 0 51 1450 1776 117 +211 4 0 243 1775 176 251 +212 4 0 1166 2228 1185 1224 +213 4 0 1646 51 101 1450 +214 4 0 588 590 568 2103 +215 4 0 1221 1111 1267 1122 +216 4 0 1472 1266 1089 1224 +217 4 0 2283 1172 1244 1212 +218 4 0 749 1926 1447 703 +219 4 0 24 1723 80 1449 +220 4 0 555 571 1437 1451 +221 4 0 1160 1368 1095 1073 +222 4 0 1719 1451 534 555 +223 4 0 555 534 571 1451 +224 4 0 1160 2273 1206 1216 +225 4 0 1166 1224 1204 1472 +226 4 0 2235 1187 1204 1147 +227 4 0 1166 1147 1472 1204 +228 4 0 2121 1073 1160 1153 +229 4 0 869 871 1364 915 +230 4 0 2283 1366 1172 1212 +231 4 0 722 696 1429 2349 +232 4 0 1185 1440 1192 1234 +233 4 0 2235 1248 1266 1204 +234 4 0 2235 1089 1472 1266 +235 4 0 1234 1440 1192 1242 +236 4 0 1372 849 881 876 +237 4 0 838 2324 842 871 +238 4 0 869 915 1364 910 +239 4 0 1046 1131 1140 1440 +240 4 0 1048 1140 1440 1046 +241 4 0 2228 1234 1440 1185 +242 4 0 2228 1224 1234 1185 +243 4 0 1641 1286 1234 1278 +244 4 0 1641 1286 1278 1329 +245 4 0 1157 1371 1118 1070 +246 4 0 1633 2223 1738 138 +247 4 0 653 2047 751 649 +248 4 0 959 1364 977 910 +249 4 0 2054 242 1441 170 +250 4 0 1441 1965 170 242 +251 4 0 811 1628 789 778 +252 4 0 1036 1613 977 959 +253 4 0 871 1364 2324 842 +254 4 0 649 739 653 666 +255 4 0 588 609 590 1626 +256 4 0 915 981 1364 977 +257 4 0 915 981 913 1364 +258 4 0 494 1481 1479 517 +259 4 0 2235 1147 1472 1078 +260 4 0 1133 1030 2305 1070 +261 4 0 910 1364 977 915 +262 4 0 494 1703 517 1479 +263 4 0 2023 1266 1473 1089 +264 4 0 1473 1862 1089 1266 +265 4 0 862 910 869 1364 +266 4 0 1870 546 514 543 +267 4 0 816 1627 842 838 +268 4 0 2046 717 739 666 +269 4 0 1816 783 788 739 +270 4 0 725 788 751 739 +271 4 0 1815 789 751 788 +272 4 0 1815 778 751 789 +273 4 0 1815 710 751 778 +274 4 0 1816 717 775 783 +275 4 0 1437 604 571 580 +276 4 0 1133 2305 1030 2306 +277 4 0 1100 1458 1528 1182 +278 4 0 1100 1167 2060 1182 +279 4 0 1100 1182 2060 1458 +280 4 0 1196 1371 1226 1258 +281 4 0 1196 1218 1371 1258 +282 4 0 1070 1118 1019 1613 +283 4 0 1208 1091 1066 1822 +284 4 0 1360 461 1479 1481 +285 4 0 1496 589 579 567 +286 4 0 1479 461 489 1481 +287 4 0 1496 1587 579 589 +288 4 0 1566 840 1630 810 +289 4 0 583 559 2038 1471 +290 4 0 1454 584 1471 577 +291 4 0 1433 792 823 817 +292 4 0 1699 817 823 792 +293 4 0 1818 787 780 726 +294 4 0 1959 736 1997 1916 +295 4 0 1276 1539 1232 1535 +296 4 0 654 695 664 1447 +297 4 0 1491 1447 654 664 +298 4 0 923 1420 2332 1861 +299 4 0 2297 80 1449 24 +300 4 0 1433 823 1362 817 +301 4 0 1699 817 1362 823 +302 4 0 1262 2304 1956 1216 +303 4 0 611 570 1601 575 +304 4 0 1464 570 2041 575 +305 4 0 1601 570 1464 575 +306 4 0 1784 991 1096 1027 +307 4 0 1196 1133 1371 1157 +308 4 0 1157 1177 1118 1371 +309 4 0 1164 1226 1476 1194 +310 4 0 1566 1497 798 1630 +311 4 0 1566 1363 798 1497 +312 4 0 1630 801 840 1497 +313 4 0 1371 1613 1118 1070 +314 4 0 1497 801 840 841 +315 4 0 611 570 582 1601 +316 4 0 582 570 2041 1464 +317 4 0 1601 570 582 1464 +318 4 0 570 545 2041 575 +319 4 0 1240 1116 1183 1250 +320 4 0 636 1447 654 1491 +321 4 0 636 1502 1491 654 +322 4 0 1518 1120 1116 1222 +323 4 0 945 892 859 1620 +324 4 0 1164 1784 1371 1133 +325 4 0 1164 1133 1371 1196 +326 4 0 1157 1371 1218 1177 +327 4 0 1252 1284 1226 1476 +328 4 0 1194 1226 1476 1252 +329 4 0 1288 2127 1345 2259 +330 4 0 1343 1288 1345 2259 +331 4 0 1389 1168 1183 1110 +332 4 0 1503 164 243 101 +333 4 0 243 117 164 176 +334 4 0 1550 1213 1112 1486 +335 4 0 1065 1223 1090 1165 +336 4 0 1444 177 165 118 +337 4 0 1444 165 1504 102 +338 4 0 1272 1099 1402 1319 +339 4 0 2066 1272 1319 1099 +340 4 0 1249 1120 1518 1222 +341 4 0 1182 1222 1528 1120 +342 4 0 1116 1120 1528 1222 +343 4 0 1458 1109 1528 1182 +344 4 0 2060 1167 1109 1182 +345 4 0 1458 1182 2060 1109 +346 4 0 1105 1590 1151 1494 +347 4 0 1494 2064 1099 1174 +348 4 0 990 1026 1579 1071 +349 4 0 610 1495 569 574 +350 4 0 610 1495 574 1502 +351 4 0 1604 1387 1489 446 +352 4 0 1604 445 1489 1430 +353 4 0 1604 446 1489 445 +354 4 0 583 559 1471 584 +355 4 0 1454 584 583 1471 +356 4 0 1657 1207 1193 1144 +357 4 0 1370 1117 1156 1176 +358 4 0 1370 1163 1195 1132 +359 4 0 1786 1273 1207 1227 +360 4 0 1085 1167 1779 2060 +361 4 0 1370 1156 1132 1195 +362 4 0 1496 579 1968 567 +363 4 0 1370 1176 1156 1217 +364 4 0 1370 1257 1195 1225 +365 4 0 1489 1387 1490 446 +366 4 0 780 1497 1630 798 +367 4 0 810 801 1818 777 +368 4 0 1520 1370 1071 1163 +369 4 0 782 787 738 1819 +370 4 0 738 726 787 750 +371 4 0 2048 667 726 686 +372 4 0 1487 971 1367 930 +373 4 0 930 1487 1581 1615 +374 4 0 1069 1117 1156 1370 +375 4 0 1069 1132 1370 1156 +376 4 0 1193 1129 1657 1144 +377 4 0 2253 914 976 980 +378 4 0 976 1035 958 1363 +379 4 0 976 909 1363 958 +380 4 0 750 777 1818 801 +381 4 0 2296 837 815 841 +382 4 0 2296 2236 837 841 +383 4 0 827 863 837 2296 +384 4 0 827 813 2296 837 +385 4 0 190 1353 135 182 +386 4 0 1594 357 1358 355 +387 4 0 2048 686 726 738 +388 4 0 1594 1560 357 355 +389 4 0 782 716 776 1819 +390 4 0 976 909 914 1363 +391 4 0 868 1363 909 873 +392 4 0 716 738 665 2048 +393 4 0 914 909 868 1363 +394 4 0 976 1363 914 2253 +395 4 0 868 840 841 1363 +396 4 0 1498 1079 1146 1108 +397 4 0 868 873 840 1363 +398 4 0 870 2236 841 837 +399 4 0 870 841 2236 868 +400 4 0 868 2236 1363 841 +401 4 0 868 914 1363 2236 +402 4 0 870 868 2236 914 +403 4 0 870 2236 912 914 +404 4 0 1785 357 1358 1594 +405 4 0 1785 1560 357 1594 +406 4 0 1498 1203 1115 1247 +407 4 0 2230 1552 2114 1127 +408 4 0 1285 1328 1330 1461 +409 4 0 1247 1115 1457 1203 +410 4 0 1094 1161 1367 1086 +411 4 0 1369 1130 2255 1189 +412 4 0 1369 1233 1191 1241 +413 4 0 1369 1130 1139 1045 +414 4 0 1369 1134 1139 1191 +415 4 0 1642 1285 1328 1277 +416 4 0 1369 1191 1189 1241 +417 4 0 1369 1184 1134 1191 +418 4 0 1369 1191 1233 1184 +419 4 0 1452 903 912 969 +420 4 0 1499 1564 1367 1487 +421 4 0 930 1367 1487 1615 +422 4 0 1642 1233 1285 1277 +423 4 0 2230 1184 1369 1233 +424 4 0 2230 1233 1223 1184 +425 4 0 1369 1047 1134 1037 +426 4 0 1428 956 903 969 +427 4 0 1369 1045 1139 1047 +428 4 0 1369 1130 1189 1139 +429 4 0 1369 1191 1139 1189 +430 4 0 1369 1047 1139 1134 +431 4 0 1552 1165 1427 1146 +432 4 0 1552 1090 1427 1165 +433 4 0 1090 1223 1203 1165 +434 4 0 1427 1146 1165 1203 +435 4 0 2230 1184 1223 1165 +436 4 0 2230 1165 1127 1184 +437 4 0 571 1501 589 608 +438 4 0 571 596 589 1501 +439 4 0 1665 592 614 594 +440 4 0 596 1501 571 1437 +441 4 0 1762 2117 2116 2009 +442 4 0 1997 1889 1916 736 +443 4 0 1930 1993 1960 1857 +444 4 0 1930 1993 1949 1960 +445 4 0 1520 1009 2325 1034 +446 4 0 1009 1034 1520 1579 +447 4 0 2168 1009 1370 1520 +448 4 0 1370 1520 1009 2325 +449 4 0 1521 1094 1014 1072 +450 4 0 1599 1016 2286 1521 +451 4 0 1086 1367 1094 1521 +452 4 0 1521 1016 2286 1014 +453 4 0 2268 319 1355 196 +454 4 0 196 1468 1637 319 +455 4 0 1355 319 1468 196 +456 4 0 2163 1637 319 196 +457 4 0 2268 2163 319 196 +458 4 0 1178 1101 1365 1141 +459 4 0 1393 1296 1267 1294 +460 4 0 2233 1112 1213 1546 +461 4 0 1555 604 627 1501 +462 4 0 604 571 608 1501 +463 4 0 1501 604 571 1437 +464 4 0 1316 1271 1235 2233 +465 4 0 802 799 1673 822 +466 4 0 1210 1155 1162 1617 +467 4 0 1500 38 1618 84 +468 4 0 38 1903 84 1500 +469 4 0 1908 2173 2190 1998 +470 4 0 2243 2151 921 2150 +471 4 0 2253 1047 1585 1452 +472 4 0 2253 1047 980 1045 +473 4 0 958 1035 1488 1363 +474 4 0 958 1035 1018 1488 +475 4 0 2273 1153 1206 1198 +476 4 0 1600 190 1410 1355 +477 4 0 1410 1355 393 1600 +478 4 0 2284 1410 393 1600 +479 4 0 1393 1245 1267 1122 +480 4 0 1536 1124 1247 1213 +481 4 0 1197 1173 1733 1235 +482 4 0 1178 1365 1101 1148 +483 4 0 1506 1367 1521 1072 +484 4 0 1213 1247 1550 1124 +485 4 0 1152 1205 1197 2049 +486 4 0 2303 1366 1007 1032 +487 4 0 2281 1696 1702 1611 +488 4 0 1506 1374 1521 1367 +489 4 0 1197 1205 1917 2049 +490 4 0 1094 1159 1367 1161 +491 4 0 2225 848 822 820 +492 4 0 1023 1137 1052 2327 +493 4 0 1527 2263 557 1511 +494 4 0 1094 1367 1072 1521 +495 4 0 1159 1215 1205 2049 +496 4 0 1152 1205 2049 1159 +497 4 0 1141 1067 1043 1615 +498 4 0 1094 1072 1367 1159 +499 4 0 631 622 610 1502 +500 4 0 1086 1161 1615 1154 +501 4 0 851 880 1361 877 +502 4 0 1201 1136 2250 1171 +503 4 0 695 664 1447 731 +504 4 0 619 670 1632 631 +505 4 0 804 802 1673 839 +506 4 0 749 695 731 759 +507 4 0 1361 848 2196 875 +508 4 0 1361 948 1016 1004 +509 4 0 1361 1016 948 950 +510 4 0 822 2225 820 799 +511 4 0 799 790 759 1925 +512 4 0 799 820 790 2225 +513 4 0 1361 948 880 950 +514 4 0 759 1925 745 695 +515 4 0 1361 848 875 880 +516 4 0 749 695 1447 731 +517 4 0 749 771 1926 703 +518 4 0 1361 880 875 950 +519 4 0 1361 1004 928 948 +520 4 0 1361 948 928 877 +521 4 0 822 2225 851 848 +522 4 0 1624 1143 1021 1050 +523 4 0 804 1673 802 771 +524 4 0 1361 948 877 880 +525 4 0 802 749 1926 799 +526 4 0 802 771 1926 749 +527 4 0 874 2285 877 1828 +528 4 0 2225 1361 851 848 +529 4 0 874 928 877 2285 +530 4 0 877 1361 2285 928 +531 4 0 2269 997 928 1004 +532 4 0 2168 1706 1370 974 +533 4 0 1365 1101 1028 1043 +534 4 0 1088 1823 1158 1426 +535 4 0 1906 1279 1263 1299 +536 4 0 1481 2326 435 476 +537 4 0 476 1529 2326 435 +538 4 0 206 1560 298 300 +539 4 0 1478 1103 1188 1121 +540 4 0 1365 1043 1028 2050 +541 4 0 1040 1552 2114 2230 +542 4 0 1065 1552 1040 2230 +543 4 0 1365 2269 2050 1570 +544 4 0 1209 1215 1367 1499 +545 4 0 1199 1615 1154 1141 +546 4 0 1171 2343 1365 1148 +547 4 0 943 1015 2275 1002 +548 4 0 2314 1136 2343 2250 +549 4 0 1211 1365 1178 1148 +550 4 0 1148 1028 1365 1101 +551 4 0 1180 1245 1229 1113 +552 4 0 1178 1141 1365 1199 +553 4 0 1237 2301 1178 1211 +554 4 0 1263 1201 2210 1243 +555 4 0 1650 1188 1180 1113 +556 4 0 1393 1267 1295 1294 +557 4 0 1180 1113 1229 1088 +558 4 0 1211 1148 1171 1365 +559 4 0 2129 1219 1906 1279 +560 4 0 2250 1063 1823 1219 +561 4 0 2314 1136 2250 1823 +562 4 0 1209 1615 1161 1154 +563 4 0 808 828 833 1627 +564 4 0 2210 1201 1171 1243 +565 4 0 1209 1367 1215 1161 +566 4 0 1141 1067 1615 1154 +567 4 0 1237 1199 1178 2301 +568 4 0 1301 1263 1906 1477 +569 4 0 2129 1279 1299 1297 +570 4 0 2129 1229 1279 1289 +571 4 0 1624 2283 1143 1782 +572 4 0 1615 1154 1209 1199 +573 4 0 1615 1141 1199 1365 +574 4 0 1789 1300 1280 1298 +575 4 0 1221 1111 1181 1246 +576 4 0 1789 1220 1280 1264 +577 4 0 1221 1267 1245 1122 +578 4 0 1221 1245 1188 1122 +579 4 0 1188 1245 1113 1122 +580 4 0 1142 1155 1200 1715 +581 4 0 1181 1246 1111 1230 +582 4 0 2067 1230 1280 1220 +583 4 0 1142 1068 1155 1715 +584 4 0 1615 1067 1043 2269 +585 4 0 2269 1599 1615 1067 +586 4 0 1302 1264 1622 1300 +587 4 0 2269 1043 1615 1365 +588 4 0 255 1557 326 259 +589 4 0 1600 259 326 1557 +590 4 0 1353 1557 255 259 +591 4 0 1238 1179 1366 1212 +592 4 0 1238 1200 1366 1179 +593 4 0 1212 1366 1149 1179 +594 4 0 632 2349 646 696 +595 4 0 1095 1368 1015 1073 +596 4 0 1179 1102 1366 1149 +597 4 0 1160 1368 1216 1162 +598 4 0 1069 1706 1018 1117 +599 4 0 1069 1706 1117 1370 +600 4 0 2342 1523 1357 368 +601 4 0 324 1507 368 1523 +602 4 0 1507 2342 368 1523 +603 4 0 1162 1087 1617 1155 +604 4 0 1590 1151 1187 1123 +605 4 0 1095 1087 1617 1162 +606 4 0 1216 2273 1368 1160 +607 4 0 1216 1206 2304 2273 +608 4 0 1317 1272 1319 2066 +609 4 0 1686 1073 1015 1368 +610 4 0 1105 1494 1151 1174 +611 4 0 1194 1041 2259 1476 +612 4 0 2342 454 1357 1523 +613 4 0 1507 2342 1523 1574 +614 4 0 1523 1357 1493 454 +615 4 0 1210 1216 1368 1162 +616 4 0 1638 1262 1256 1310 +617 4 0 1638 1310 1256 1308 +618 4 0 1617 1956 1368 1210 +619 4 0 1734 1904 992 2002 +620 4 0 2267 2041 562 560 +621 4 0 1836 1763 1977 2080 +622 4 0 1160 1206 2273 1153 +623 4 0 2028 1854 1811 1670 +624 4 0 1351 210 205 153 +625 4 0 2269 2050 960 1043 +626 4 0 2050 1554 2269 960 +627 4 0 1680 795 796 1669 +628 4 0 1706 1488 1018 1117 +629 4 0 1706 1488 1117 1370 +630 4 0 1791 1995 2019 1953 +631 4 0 1791 647 2001 661 +632 4 0 2347 1312 1260 2304 +633 4 0 1358 486 449 481 +634 4 0 1539 1535 927 1613 +635 4 0 1638 1292 1256 1238 +636 4 0 968 1535 1613 927 +637 4 0 1362 849 823 852 +638 4 0 1362 881 849 852 +639 4 0 1638 1256 1292 1308 +640 4 0 1164 1041 1476 1371 +641 4 0 1164 1476 1041 1194 +642 4 0 1041 1784 1164 2340 +643 4 0 1164 1784 1041 1371 +644 4 0 1164 1041 2340 1194 +645 4 0 1624 1149 1172 1366 +646 4 0 1362 949 881 878 +647 4 0 1044 2258 1715 1142 +648 4 0 1877 746 773 705 +649 4 0 1606 1017 951 949 +650 4 0 611 646 597 607 +651 4 0 655 2349 696 722 +652 4 0 1606 1368 1015 1095 +653 4 0 1617 1162 1368 1095 +654 4 0 2328 459 451 415 +655 4 0 1362 852 878 881 +656 4 0 1392 326 1359 383 +657 4 0 1600 326 1392 1557 +658 4 0 1600 1392 326 1359 +659 4 0 1392 1492 326 383 +660 4 0 1372 951 876 881 +661 4 0 2145 698 696 646 +662 4 0 929 1362 861 878 +663 4 0 632 696 655 2349 +664 4 0 1648 823 1699 821 +665 4 0 632 1542 671 696 +666 4 0 929 949 1005 1362 +667 4 0 800 756 1876 760 +668 4 0 800 823 1648 821 +669 4 0 1578 376 346 409 +670 4 0 805 803 1876 772 +671 4 0 929 878 949 1362 +672 4 0 1362 1005 1606 949 +673 4 0 1044 1715 1068 1142 +674 4 0 1362 949 951 881 +675 4 0 1515 1102 1149 1366 +676 4 0 1029 1102 1149 1515 +677 4 0 1515 1366 2258 1102 +678 4 0 1664 2266 2311 1442 +679 4 0 204 1664 275 1616 +680 4 0 1515 1102 2258 1029 +681 4 0 998 929 1005 2257 +682 4 0 1399 180 1483 151 +683 4 0 1399 151 2161 180 +684 4 0 1060 1082 1789 2283 +685 4 0 2283 1264 1244 1202 +686 4 0 2283 1202 1244 1172 +687 4 0 2257 2128 1382 1380 +688 4 0 1682 2287 2085 515 +689 4 0 206 2256 215 156 +690 4 0 1350 181 213 150 +691 4 0 560 582 570 2041 +692 4 0 1413 471 425 438 +693 4 0 2287 1358 515 492 +694 4 0 350 1600 337 395 +695 4 0 1358 403 451 449 +696 4 0 385 1600 1359 395 +697 4 0 1593 449 1358 486 +698 4 0 570 582 585 611 +699 4 0 1682 2267 1736 538 +700 4 0 1358 451 481 449 +701 4 0 611 655 2349 632 +702 4 0 1387 433 2261 1544 +703 4 0 1387 2261 2262 1544 +704 4 0 1387 2262 1604 1544 +705 4 0 611 607 632 646 +706 4 0 2349 655 611 637 +707 4 0 413 449 403 1593 +708 4 0 1358 403 415 451 +709 4 0 585 582 607 611 +710 4 0 2328 459 2287 451 +711 4 0 528 545 2267 560 +712 4 0 582 611 597 607 +713 4 0 560 2041 570 545 +714 4 0 1358 2328 451 415 +715 4 0 262 148 1966 2179 +716 4 0 2042 538 562 2267 +717 4 0 1593 1358 449 403 +718 4 0 560 585 582 2212 +719 4 0 560 582 585 570 +720 4 0 206 1560 300 2256 +721 4 0 1542 671 696 746 +722 4 0 1542 620 632 671 +723 4 0 1542 620 671 638 +724 4 0 1358 415 403 357 +725 4 0 497 522 507 2317 +726 4 0 1416 369 415 357 +727 4 0 1358 357 1416 415 +728 4 0 357 1655 1416 369 +729 4 0 357 1358 1416 1785 +730 4 0 1655 1416 1785 357 +731 4 0 588 587 590 609 +732 4 0 1387 456 446 455 +733 4 0 585 582 2212 1717 +734 4 0 1592 519 1656 491 +735 4 0 1655 1785 1560 357 +736 4 0 1544 433 2262 432 +737 4 0 1544 2261 2262 433 +738 4 0 1544 2262 1604 1559 +739 4 0 2262 469 468 432 +740 4 0 2262 432 433 469 +741 4 0 530 2276 1541 2278 +742 4 0 1350 189 169 128 +743 4 0 1483 180 1349 212 +744 4 0 2256 156 154 106 +745 4 0 100 81 2307 142 +746 4 0 225 1493 1349 1523 +747 4 0 1489 1490 2147 446 +748 4 0 315 1493 225 1523 +749 4 0 530 2277 2276 2278 +750 4 0 106 2350 1704 1352 +751 4 0 179 124 258 284 +752 4 0 226 325 273 1655 +753 4 0 293 144 126 1693 +754 4 0 1394 1395 1176 2255 +755 4 0 2279 1395 1176 1394 +756 4 0 1395 1394 1640 2255 +757 4 0 1395 1176 2255 1488 +758 4 0 2279 1395 1488 1176 +759 4 0 2229 1352 303 1608 +760 4 0 273 1350 2264 323 +761 4 0 1350 89 150 128 +762 4 0 1350 189 150 213 +763 4 0 1633 317 286 2223 +764 4 0 316 357 1655 300 +765 4 0 226 189 169 1655 +766 4 0 1385 56 77 29 +767 4 0 154 211 1352 162 +768 4 0 114 162 154 1352 +769 4 0 114 106 1352 154 +770 4 0 87 1354 2265 85 +771 4 0 218 307 1654 268 +772 4 0 355 357 1358 403 +773 4 0 355 403 1593 413 +774 4 0 355 357 300 1560 +775 4 0 2256 1352 154 206 +776 4 0 211 2300 314 298 +777 4 0 211 298 206 1352 +778 4 0 2229 284 1654 303 +779 4 0 2229 284 124 179 +780 4 0 1350 128 150 189 +781 4 0 273 213 189 1350 +782 4 0 425 1413 459 471 +783 4 0 273 1350 323 213 +784 4 0 1655 273 189 1350 +785 4 0 1619 2223 317 332 +786 4 0 1541 2276 446 2278 +787 4 0 122 89 150 1350 +788 4 0 261 286 1738 1773 +789 4 0 122 89 1350 2318 +790 4 0 209 339 1465 271 +791 4 0 1401 163 246 1974 +792 4 0 1439 110 79 42 +793 4 0 1439 79 44 42 +794 4 0 141 178 269 123 +795 4 0 212 149 1349 188 +796 4 0 1773 185 246 277 +797 4 0 306 1633 277 209 +798 4 0 1707 1653 137 285 +799 4 0 120 185 175 1974 +800 4 0 120 175 108 1974 +801 4 0 2136 257 1749 235 +802 4 0 296 180 1483 212 +803 4 0 1880 257 285 1707 +804 4 0 1707 1880 1653 285 +805 4 0 276 1653 305 200 +806 4 0 2316 8 94 6 +807 4 0 127 1349 188 168 +808 4 0 212 180 1349 149 +809 4 0 2123 1749 257 235 +810 4 0 1657 1579 1520 1034 +811 4 0 356 368 414 1357 +812 4 0 272 1349 188 212 +813 4 0 2237 1483 1349 212 +814 4 0 1462 913 1422 904 +815 4 0 1422 913 1364 864 +816 4 0 2324 1422 1364 864 +817 4 0 402 1357 414 450 +818 4 0 245 184 1880 276 +819 4 0 304 1483 1653 151 +820 4 0 304 151 2316 1399 +821 4 0 1399 2316 2161 151 +822 4 0 324 225 272 1349 +823 4 0 1632 670 619 639 +824 4 0 412 1357 448 1709 +825 4 0 563 2038 527 539 +826 4 0 2253 1047 969 980 +827 4 0 631 622 606 610 +828 4 0 1502 610 595 622 +829 4 0 1632 619 1454 639 +830 4 0 2058 450 1357 480 +831 4 0 1589 149 88 127 +832 4 0 925 1445 1440 1474 +833 4 0 966 1440 925 1445 +834 4 0 504 527 1735 535 +835 4 0 448 450 1357 402 +836 4 0 1351 299 205 297 +837 4 0 527 1735 539 2288 +838 4 0 402 414 1357 356 +839 4 0 2058 465 450 480 +840 4 0 780 787 1497 1629 +841 4 0 780 1497 787 1818 +842 4 0 780 1497 1818 1630 +843 4 0 485 480 2288 448 +844 4 0 354 356 402 1357 +845 4 0 92 147 1731 111 +846 4 0 318 333 2282 1903 +847 4 0 412 402 448 1357 +848 4 0 1351 205 299 214 +849 4 0 243 117 176 125 +850 4 0 1357 1493 454 1584 +851 4 0 2233 1112 1546 1084 +852 4 0 1084 1486 1112 1546 +853 4 0 1453 1235 1546 2233 +854 4 0 198 2202 159 141 +855 4 0 1571 217 267 308 +856 4 0 131 1485 99 159 +857 4 0 80 1723 123 269 +858 4 0 80 269 123 141 +859 4 0 1733 1235 1787 1253 +860 4 0 2252 161 210 153 +861 4 0 996 1721 2029 1865 +862 4 0 2135 1865 1596 1826 +863 4 0 354 1357 402 412 +864 4 0 1544 2262 1559 432 +865 4 0 1998 1685 1755 1844 +866 4 0 1572 1631 197 1356 +867 4 0 173 1631 197 1572 +868 4 0 292 178 123 269 +869 4 0 1351 155 105 153 +870 4 0 292 1723 123 2252 +871 4 0 292 123 1723 269 +872 4 0 457 440 1714 473 +873 4 0 1760 1755 1994 2052 +874 4 0 127 149 188 1349 +875 4 0 2138 541 2069 540 +876 4 0 1627 1573 2324 797 +877 4 0 797 1628 1573 1364 +878 4 0 2324 797 1573 1364 +879 4 0 798 1363 2296 1497 +880 4 0 183 136 1354 130 +881 4 0 1489 445 1668 1430 +882 4 0 1917 2049 1662 1733 +883 4 0 1572 144 173 1631 +884 4 0 1572 2005 173 144 +885 4 0 1351 205 210 297 +886 4 0 1351 155 205 214 +887 4 0 1351 205 155 153 +888 4 0 1589 149 127 1349 +889 4 0 168 225 1349 188 +890 4 0 1507 387 368 424 +891 4 0 66 1386 105 1607 +892 4 0 1398 72 12 14 +893 4 0 223 1485 131 2054 +894 4 0 208 309 1634 291 +895 4 0 293 1712 126 270 +896 4 0 1387 456 455 2262 +897 4 0 293 1631 126 144 +898 4 0 207 310 1635 281 +899 4 0 129 84 1353 135 +900 4 0 265 255 186 1353 +901 4 0 1776 125 243 264 +902 4 0 1411 1409 78 45 +903 4 0 1775 176 282 201 +904 4 0 264 288 125 1775 +905 4 0 1409 2163 1636 2268 +906 4 0 186 139 1353 129 +907 4 0 129 135 1353 182 +908 4 0 259 182 255 1353 +909 4 0 1604 455 446 445 +910 4 0 1407 2266 110 1356 +911 4 0 2266 2154 110 1356 +912 4 0 349 1356 2154 2266 +913 4 0 1369 2207 2255 926 +914 4 0 2207 967 926 1369 +915 4 0 1360 464 427 431 +916 4 0 2207 926 1395 2255 +917 4 0 1507 1349 1523 324 +918 4 0 186 1353 182 129 +919 4 0 133 1355 166 196 +920 4 0 508 488 1764 1359 +921 4 0 190 182 259 1353 +922 4 0 1603 1764 508 488 +923 4 0 508 1359 1605 488 +924 4 0 589 603 1587 579 +925 4 0 1355 145 109 166 +926 4 0 147 242 1731 111 +927 4 0 1965 242 147 170 +928 4 0 129 86 139 1353 +929 4 0 1492 1353 255 1578 +930 4 0 207 290 1635 310 +931 4 0 186 182 1353 255 +932 4 0 265 1353 192 1467 +933 4 0 265 1353 186 192 +934 4 0 207 170 281 1965 +935 4 0 1965 263 287 147 +936 4 0 1407 1439 110 2266 +937 4 0 1439 2154 110 2266 +938 4 0 86 36 1903 38 +939 4 0 1600 203 301 274 +940 4 0 397 1560 364 1551 +941 4 0 397 1729 1560 1551 +942 4 0 129 1353 84 86 +943 4 0 190 259 1557 1353 +944 4 0 392 2284 1557 1353 +945 4 0 1353 1492 1557 392 +946 4 0 192 139 1353 186 +947 4 0 192 290 1635 207 +948 4 0 1492 1578 255 328 +949 4 0 265 1578 1353 1467 +950 4 0 225 1523 1349 324 +951 4 0 315 368 1523 324 +952 4 0 709 750 1933 642 +953 4 0 315 1523 225 324 +954 4 0 524 490 466 1766 +955 4 0 253 311 1637 344 +956 4 0 434 428 2106 2096 +957 4 0 1523 1493 1349 1574 +958 4 0 1507 1349 1574 1523 +959 4 0 554 518 524 1688 +960 4 0 2312 1706 1069 1370 +961 4 0 1555 1501 627 617 +962 4 0 2271 1018 1706 1488 +963 4 0 1623 2271 1488 1018 +964 4 0 623 1555 2329 617 +965 4 0 1488 1035 1018 1117 +966 4 0 1933 686 627 642 +967 4 0 133 166 1355 109 +968 4 0 253 311 201 1637 +969 4 0 542 561 1968 567 +970 4 0 513 1603 508 488 +971 4 0 243 176 1775 125 +972 4 0 1359 428 385 395 +973 4 0 201 282 1637 311 +974 4 0 1775 282 176 251 +975 4 0 1359 383 426 430 +976 4 0 1359 426 463 430 +977 4 0 1359 463 2321 430 +978 4 0 1359 428 2106 460 +979 4 0 1359 460 426 428 +980 4 0 1359 460 488 463 +981 4 0 1359 460 463 426 +982 4 0 1359 426 383 385 +983 4 0 1600 385 337 395 +984 4 0 1359 385 428 426 +985 4 0 1501 627 608 604 +986 4 0 1434 464 1360 431 +987 4 0 1504 157 1503 221 +988 4 0 1776 125 117 243 +989 4 0 293 1693 1572 144 +990 4 0 1776 288 1636 2163 +991 4 0 2163 1637 1775 288 +992 4 0 2163 125 288 1775 +993 4 0 1355 203 166 238 +994 4 0 1355 203 145 166 +995 4 0 1355 2254 301 238 +996 4 0 1468 294 2254 238 +997 4 0 1637 288 2163 319 +998 4 0 1355 238 301 203 +999 4 0 133 2163 196 172 +1000 4 0 133 1658 1355 2268 +1001 4 0 133 1658 109 1355 +1002 4 0 293 126 1711 270 +1003 4 0 102 165 1504 157 +1004 4 0 1776 125 264 288 +1005 4 0 1503 157 224 221 +1006 4 0 1503 164 157 233 +1007 4 0 96 221 157 102 +1008 4 0 1712 118 126 270 +1009 4 0 183 187 1354 256 +1010 4 0 1711 177 283 252 +1011 4 0 183 130 1354 187 +1012 4 0 270 1711 1444 126 +1013 4 0 183 260 256 1616 +1014 4 0 164 157 101 1503 +1015 4 0 1711 202 283 177 +1016 4 0 270 118 1444 2203 +1017 4 0 102 165 118 1444 +1018 4 0 2203 241 1444 270 +1019 4 0 293 144 1572 1631 +1020 4 0 1572 2005 1356 197 +1021 4 0 1646 53 101 51 +1022 4 0 2307 29 56 1385 +1023 4 0 338 396 386 2323 +1024 4 0 588 568 590 587 +1025 4 0 1693 2005 1572 144 +1026 4 0 1356 167 197 134 +1027 4 0 1572 2005 197 173 +1028 4 0 1356 239 295 197 +1029 4 0 1356 239 197 167 +1030 4 0 1356 204 239 167 +1031 4 0 1616 275 204 191 +1032 4 0 1616 191 204 146 +1033 4 0 1356 204 167 146 +1034 4 0 338 1446 386 327 +1035 4 0 1631 254 345 312 +1036 4 0 322 1631 1572 1356 +1037 4 0 1651 1481 517 1479 +1038 4 0 431 474 441 1436 +1039 4 0 91 1406 136 85 +1040 4 0 1387 2261 456 2262 +1041 4 0 530 537 2277 2278 +1042 4 0 530 2277 536 529 +1043 4 0 530 536 2277 537 +1044 4 0 530 529 2276 2277 +1045 4 0 1960 1857 1905 1930 +1046 4 0 1529 401 353 351 +1047 4 0 302 239 1356 204 +1048 4 0 710 653 1716 2047 +1049 4 0 256 266 1545 329 +1050 4 0 312 202 283 1631 +1051 4 0 1360 429 427 461 +1052 4 0 1046 1440 1048 1474 +1053 4 0 1474 981 1048 1046 +1054 4 0 1474 981 1046 1364 +1055 4 0 1474 1613 1364 1046 +1056 4 0 302 1664 204 1356 +1057 4 0 1474 1613 1046 1440 +1058 4 0 1360 396 2326 2323 +1059 4 0 566 568 543 1871 +1060 4 0 1545 1446 1405 452 +1061 4 0 429 435 2326 396 +1062 4 0 581 587 1939 605 +1063 4 0 1360 464 461 427 +1064 4 0 613 1716 609 618 +1065 4 0 1626 618 609 590 +1066 4 0 971 1006 1564 1367 +1067 4 0 1690 618 649 613 +1068 4 0 1690 1626 618 613 +1069 4 0 544 1656 1871 514 +1070 4 0 1405 1446 477 452 +1071 4 0 1360 461 1481 429 +1072 4 0 2103 1871 578 568 +1073 4 0 544 543 1871 566 +1074 4 0 1529 401 435 444 +1075 4 0 1360 431 427 384 +1076 4 0 556 546 509 1870 +1077 4 0 2104 581 1870 546 +1078 4 0 566 543 568 2104 +1079 4 0 566 2104 568 588 +1080 4 0 2104 546 543 568 +1081 4 0 280 309 1634 208 +1082 4 0 1592 1656 548 553 +1083 4 0 1479 1434 464 1360 +1084 4 0 1479 491 489 464 +1085 4 0 494 1481 1360 1479 +1086 4 0 280 208 1966 171 +1087 4 0 208 291 1634 193 +1088 4 0 1436 1360 1405 384 +1089 4 0 1474 1440 1048 1445 +1090 4 0 970 981 1048 1474 +1091 4 0 2039 93 112 148 +1092 4 0 77 112 132 1385 +1093 4 0 2039 112 262 148 +1094 4 0 1591 1038 1639 1128 +1095 4 0 262 148 112 1966 +1096 4 0 262 289 2179 1966 +1097 4 0 132 100 222 160 +1098 4 0 77 100 1385 132 +1099 4 0 130 1354 140 87 +1100 4 0 130 1354 85 136 +1101 4 0 386 427 1360 429 +1102 4 0 256 1354 266 187 +1103 4 0 187 1354 193 140 +1104 4 0 187 193 1354 266 +1105 4 0 386 1446 384 327 +1106 4 0 386 427 384 1360 +1107 4 0 386 429 1360 396 +1108 4 0 386 396 1360 2323 +1109 4 0 2267 510 545 528 +1110 4 0 1736 562 538 2267 +1111 4 0 2317 505 2267 528 +1112 4 0 1384 2096 1359 395 +1113 4 0 1636 2163 288 319 +1114 4 0 1534 867 1362 845 +1115 4 0 1876 803 805 1433 +1116 4 0 847 2275 943 876 +1117 4 0 1613 2305 1070 1371 +1118 4 0 1019 2305 1613 2294 +1119 4 0 2274 1686 1015 1408 +1120 4 0 876 943 951 2275 +1121 4 0 1015 2275 951 943 +1122 4 0 831 1648 847 806 +1123 4 0 1247 1322 1457 1320 +1124 4 0 1065 1850 1223 2230 +1125 4 0 1169 1230 1082 1220 +1126 4 0 2232 1175 1181 1104 +1127 4 0 2353 875 942 950 +1128 4 0 1419 1361 875 950 +1129 4 0 1374 930 1367 971 +1130 4 0 1004 1361 1599 1016 +1131 4 0 1482 2269 2285 1361 +1132 4 0 2321 1359 1764 463 +1133 4 0 379 313 1377 374 +1134 4 0 1376 1357 412 1709 +1135 4 0 2345 1292 1270 1306 +1136 4 0 2345 1270 1292 1238 +1137 4 0 2345 1270 1304 1306 +1138 4 0 1382 845 1362 867 +1139 4 0 1876 803 1433 800 +1140 4 0 969 2253 912 1452 +1141 4 0 1363 2236 2296 841 +1142 4 0 969 1428 1037 1047 +1143 4 0 1428 956 969 1037 +1144 4 0 1369 1522 1047 1037 +1145 4 0 1568 1353 1588 392 +1146 4 0 1600 1543 350 301 +1147 4 0 1543 388 350 301 +1148 4 0 1605 460 483 488 +1149 4 0 1605 2106 460 1359 +1150 4 0 388 336 2254 410 +1151 4 0 1359 1605 2106 508 +1152 4 0 2215 1719 1605 513 +1153 4 0 2254 336 388 301 +1154 4 0 1543 388 395 350 +1155 4 0 2024 1138 1153 2273 +1156 4 0 2273 1138 1153 1198 +1157 4 0 1385 29 77 31 +1158 4 0 1385 244 132 222 +1159 4 0 1386 1351 348 381 +1160 4 0 1386 66 105 115 +1161 4 0 2252 105 153 1351 +1162 4 0 2319 105 62 113 +1163 4 0 381 1493 2337 399 +1164 4 0 1400 1351 381 1597 +1165 4 0 381 1351 1493 1597 +1166 4 0 2272 1493 1597 381 +1167 4 0 62 105 2319 1607 +1168 4 0 1400 72 115 127 +1169 4 0 2283 1143 1202 1172 +1170 4 0 2283 1143 1172 1624 +1171 4 0 1822 1208 1145 1194 +1172 4 0 1822 1168 1145 1208 +1173 4 0 2340 1194 1145 1096 +1174 4 0 1784 2306 1371 1133 +1175 4 0 1822 1145 1168 1056 +1176 4 0 1383 475 434 443 +1177 4 0 1999 1990 615 614 +1178 4 0 55 1666 1484 1695 +1179 4 0 1388 77 59 31 +1180 4 0 1064 1224 1862 2228 +1181 4 0 2348 39 87 1438 +1182 4 0 1354 1438 87 2265 +1183 4 0 39 85 87 2265 +1184 4 0 38 1903 86 84 +1185 4 0 1593 472 458 497 +1186 4 0 1389 1183 1240 1116 +1187 4 0 459 2287 482 471 +1188 4 0 1528 1182 1170 1222 +1189 4 0 1528 1110 1170 1126 +1190 4 0 459 2328 2287 471 +1191 4 0 1091 1168 1228 1240 +1192 4 0 1091 1389 1168 1240 +1193 4 0 1228 1168 1091 1208 +1194 4 0 1481 484 502 476 +1195 4 0 1528 1170 1183 1222 +1196 4 0 1481 476 435 484 +1197 4 0 1190 1232 1242 1512 +1198 4 0 463 466 490 1766 +1199 4 0 466 1391 463 430 +1200 4 0 1359 487 1764 508 +1201 4 0 487 1359 1764 2321 +1202 4 0 1393 1267 1245 1295 +1203 4 0 2067 1230 1246 1290 +1204 4 0 1643 1246 1111 1267 +1205 4 0 1643 1246 1296 1290 +1206 4 0 1643 1246 1267 1296 +1207 4 0 1353 1500 1618 84 +1208 4 0 346 389 1578 409 +1209 4 0 1520 1071 1129 1163 +1210 4 0 1394 1370 1257 1217 +1211 4 0 1257 1394 1275 1336 +1212 4 0 1394 1257 1275 1217 +1213 4 0 1394 1370 1217 1176 +1214 4 0 1396 1281 1275 1334 +1215 4 0 2207 1231 1281 1241 +1216 4 0 1241 1369 2255 1189 +1217 4 0 1231 1394 1275 1217 +1218 4 0 1394 1176 1217 1231 +1219 4 0 1394 1176 1231 2255 +1220 4 0 1395 2255 1640 2207 +1221 4 0 72 115 66 1398 +1222 4 0 1446 338 386 2323 +1223 4 0 1349 1589 365 1403 +1224 4 0 1399 1349 180 2161 +1225 4 0 1399 1349 1483 180 +1226 4 0 987 1001 1057 1506 +1227 4 0 2327 987 1057 1506 +1228 4 0 2024 1058 986 1448 +1229 4 0 1624 985 1098 1029 +1230 4 0 1627 828 833 864 +1231 4 0 72 1397 1400 1398 +1232 4 0 175 1974 246 163 +1233 4 0 2063 235 1809 219 +1234 4 0 1169 1220 1782 1143 +1235 4 0 1181 2232 1082 1111 +1236 4 0 1181 1111 1082 1230 +1237 4 0 1099 1214 1402 1590 +1238 4 0 1352 1551 2350 364 +1239 4 0 1402 1214 1248 1590 +1240 4 0 1283 1257 2325 1225 +1241 4 0 1099 1236 1272 1214 +1242 4 0 2023 1402 2235 1114 +1243 4 0 2066 1317 1272 1236 +1244 4 0 772 781 803 1876 +1245 4 0 2283 1789 1264 1220 +1246 4 0 2283 1264 1202 1220 +1247 4 0 2303 2247 1007 1366 +1248 4 0 331 1589 1399 1935 +1249 4 0 1589 10 64 1935 +1250 4 0 2114 1037 1127 989 +1251 4 0 2343 1028 1563 1365 +1252 4 0 1399 1935 2316 304 +1253 4 0 1554 916 960 886 +1254 4 0 2050 1028 934 960 +1255 4 0 1405 1446 384 1360 +1256 4 0 1436 390 384 329 +1257 4 0 1285 1328 1461 1642 +1258 4 0 1406 91 40 85 +1259 4 0 1369 1241 1519 1461 +1260 4 0 394 1446 1616 361 +1261 4 0 441 1404 408 390 +1262 4 0 1442 394 1446 1616 +1263 4 0 361 1406 1354 1616 +1264 4 0 1824 1350 332 1465 +1265 4 0 332 1465 1350 2223 +1266 4 0 1356 1616 204 146 +1267 4 0 1616 136 191 146 +1268 4 0 1568 1467 333 1353 +1269 4 0 333 1467 2282 1353 +1270 4 0 355 1358 1593 403 +1271 4 0 1594 1358 1593 355 +1272 4 0 1956 1509 1638 1210 +1273 4 0 1408 973 1368 932 +1274 4 0 1021 1143 1624 1098 +1275 4 0 1624 1098 985 1021 +1276 4 0 1411 1658 78 1409 +1277 4 0 334 1355 360 1658 +1278 4 0 1355 334 2268 1658 +1279 4 0 334 319 1355 2268 +1280 4 0 1409 82 45 47 +1281 4 0 1410 109 145 90 +1282 4 0 1410 90 145 135 +1283 4 0 90 1618 1410 1475 +1284 4 0 1413 370 405 438 +1285 4 0 358 1350 1655 2333 +1286 4 0 2318 1350 332 358 +1287 4 0 2264 369 325 370 +1288 4 0 369 2264 1655 1412 +1289 4 0 1939 605 587 609 +1290 4 0 1939 609 587 588 +1291 4 0 1402 1099 1272 1214 +1292 4 0 1402 1272 1319 1321 +1293 4 0 1402 1272 1248 1214 +1294 4 0 834 2296 827 809 +1295 4 0 1561 2296 1558 2236 +1296 4 0 1558 2296 1363 2236 +1297 4 0 1561 858 827 863 +1298 4 0 2237 1532 1483 296 +1299 4 0 1445 970 1048 1474 +1300 4 0 1649 1474 1364 913 +1301 4 0 1535 1218 1371 1177 +1302 4 0 1462 904 938 970 +1303 4 0 890 857 904 1422 +1304 4 0 890 904 1462 1422 +1305 4 0 1422 904 913 864 +1306 4 0 1462 913 1649 1422 +1307 4 0 2217 843 1364 818 +1308 4 0 2196 846 848 820 +1309 4 0 846 2196 1419 1602 +1310 4 0 1602 820 807 832 +1311 4 0 2286 2118 1361 1599 +1312 4 0 1421 1245 1289 1295 +1313 4 0 397 1729 420 1655 +1314 4 0 901 933 1488 2270 +1315 4 0 2343 984 1097 1020 +1316 4 0 1582 1255 1199 1209 +1317 4 0 1301 1303 1269 1477 +1318 4 0 1478 1175 1188 1122 +1319 4 0 1478 1188 1113 1122 +1320 4 0 1478 1650 1188 1103 +1321 4 0 1478 1121 1188 1175 +1322 4 0 1650 1180 1088 1113 +1323 4 0 1650 1478 1188 1113 +1324 4 0 1493 315 214 299 +1325 4 0 965 1010 1365 2301 +1326 4 0 1582 2301 965 1365 +1327 4 0 2327 1152 1137 2049 +1328 4 0 1428 891 956 939 +1329 4 0 1428 969 903 1452 +1330 4 0 2054 159 194 230 +1331 4 0 2054 194 159 131 +1332 4 0 1550 1112 1213 1124 +1333 4 0 1486 1213 1546 1173 +1334 4 0 1498 1186 1125 1108 +1335 4 0 1112 1213 1124 2233 +1336 4 0 1173 1235 1213 1546 +1337 4 0 1550 1150 1486 1106 +1338 4 0 1150 1173 1486 1106 +1339 4 0 1550 1150 1213 1486 +1340 4 0 1550 1150 1106 1125 +1341 4 0 1550 1213 1186 1247 +1342 4 0 1550 1213 1150 1186 +1343 4 0 1254 1788 1315 2347 +1344 4 0 1313 1254 1315 2347 +1345 4 0 1431 1810 1679 1753 +1346 4 0 861 2122 852 1362 +1347 4 0 1405 1436 384 1545 +1348 4 0 1434 467 431 474 +1349 4 0 1545 1446 384 1405 +1350 4 0 1613 1364 977 959 +1351 4 0 1436 431 384 390 +1352 4 0 1545 1436 384 329 +1353 4 0 1703 464 1479 1434 +1354 4 0 2346 1434 494 1360 +1355 4 0 2346 1405 1436 1360 +1356 4 0 1434 467 474 499 +1357 4 0 1405 477 1360 2346 +1358 4 0 477 1446 1405 1360 +1359 4 0 1446 384 327 329 +1360 4 0 1545 361 1446 394 +1361 4 0 1686 1015 1002 2275 +1362 4 0 1372 2275 876 951 +1363 4 0 845 1534 1372 1362 +1364 4 0 1534 951 1372 1362 +1365 4 0 1534 1606 951 1362 +1366 4 0 1372 951 881 1362 +1367 4 0 847 855 1372 831 +1368 4 0 1505 302 2323 351 +1369 4 0 1521 1016 1014 1094 +1370 4 0 1086 1094 1016 1521 +1371 4 0 1599 1086 1016 1521 +1372 4 0 1356 2266 1663 1664 +1373 4 0 928 1004 1361 2269 +1374 4 0 351 353 1529 1505 +1375 4 0 1407 1442 1664 1616 +1376 4 0 1439 110 42 91 +1377 4 0 1616 146 91 136 +1378 4 0 110 1407 146 91 +1379 4 0 1439 1407 110 91 +1380 4 0 1717 607 582 597 +1381 4 0 533 565 560 2042 +1382 4 0 1613 1474 1364 1463 +1383 4 0 1462 913 904 970 +1384 4 0 1574 1493 1349 2272 +1385 4 0 1591 1440 1048 1135 +1386 4 0 1355 301 1600 203 +1387 4 0 1639 1038 988 1128 +1388 4 0 1551 2334 116 1537 +1389 4 0 1428 956 891 903 +1390 4 0 315 356 1493 1523 +1391 4 0 1493 1523 356 1357 +1392 4 0 2253 1369 1585 1047 +1393 4 0 1027 1096 2340 1145 +1394 4 0 670 631 695 1632 +1395 4 0 1632 670 745 695 +1396 4 0 1632 745 670 706 +1397 4 0 664 631 695 654 +1398 4 0 745 706 1632 2171 +1399 4 0 1454 631 664 622 +1400 4 0 595 610 606 622 +1401 4 0 1632 706 670 639 +1402 4 0 664 622 631 1502 +1403 4 0 610 583 569 1495 +1404 4 0 606 583 584 610 +1405 4 0 595 583 606 610 +1406 4 0 2171 1632 745 695 +1407 4 0 1529 435 476 444 +1408 4 0 1530 1360 1446 477 +1409 4 0 249 1966 171 280 +1410 4 0 236 160 100 142 +1411 4 0 236 2260 160 142 +1412 4 0 268 1881 199 278 +1413 4 0 199 142 258 179 +1414 4 0 1456 2201 244 132 +1415 4 0 2201 171 1966 112 +1416 4 0 236 100 160 222 +1417 4 0 112 262 2201 244 +1418 4 0 2201 171 112 132 +1419 4 0 1090 1850 1223 1065 +1420 4 0 1536 1115 1247 1124 +1421 4 0 1090 1203 1457 1115 +1422 4 0 1090 1265 1203 1223 +1423 4 0 925 1613 2180 1463 +1424 4 0 1613 1046 1440 1131 +1425 4 0 1462 904 890 938 +1426 4 0 913 970 1462 1474 +1427 4 0 577 1454 584 601 +1428 4 0 1454 595 606 622 +1429 4 0 1478 1121 1175 1104 +1430 4 0 1103 1188 1180 1650 +1431 4 0 1850 1265 1090 1223 +1432 4 0 1517 1240 1250 1116 +1433 4 0 1517 1288 1293 1240 +1434 4 0 2259 1274 1288 1228 +1435 4 0 1085 1167 1227 1207 +1436 4 0 1779 1144 1167 1207 +1437 4 0 2050 1365 1553 1563 +1438 4 0 1615 1043 1141 1365 +1439 4 0 1615 1067 1086 1154 +1440 4 0 1570 1599 1615 2269 +1441 4 0 2285 874 916 853 +1442 4 0 1554 853 916 886 +1443 4 0 1554 886 960 934 +1444 4 0 2286 2118 1599 872 +1445 4 0 1554 934 960 2050 +1446 4 0 2241 2090 2073 1833 +1447 4 0 2109 2087 2177 2206 +1448 4 0 779 1573 1627 797 +1449 4 0 779 1573 797 1628 +1450 4 0 248 1485 230 159 +1451 4 0 1485 131 99 76 +1452 4 0 242 170 131 111 +1453 4 0 242 147 170 111 +1454 4 0 223 131 1485 76 +1455 4 0 1485 248 2202 159 +1456 4 0 250 281 170 1965 +1457 4 0 1485 99 240 220 +1458 4 0 223 76 1485 2336 +1459 4 0 2336 76 1485 99 +1460 4 0 2067 1280 1290 1298 +1461 4 0 2067 1290 1280 1230 +1462 4 0 1529 353 401 411 +1463 4 0 322 2043 1356 349 +1464 4 0 2133 1895 1826 1697 +1465 4 0 1631 254 295 345 +1466 4 0 1517 1228 1288 1240 +1467 4 0 1518 1347 1293 1517 +1468 4 0 2127 1288 1517 1228 +1469 4 0 1207 1657 1779 1144 +1470 4 0 1589 1349 365 331 +1471 4 0 1589 1935 2161 1399 +1472 4 0 2323 302 275 351 +1473 4 0 1664 302 204 275 +1474 4 0 2323 1664 275 302 +1475 4 0 2161 64 1589 88 +1476 4 0 517 1703 1656 1479 +1477 4 0 517 1656 544 514 +1478 4 0 1651 517 544 514 +1479 4 0 1492 1578 389 409 +1480 4 0 389 328 346 1578 +1481 4 0 1492 328 326 383 +1482 4 0 1492 389 328 383 +1483 4 0 2306 1784 1371 1013 +1484 4 0 862 860 896 2290 +1485 4 0 806 791 1648 821 +1486 4 0 631 664 1632 1454 +1487 4 0 1454 631 619 1632 +1488 4 0 1454 619 631 606 +1489 4 0 1454 619 584 601 +1490 4 0 1454 619 601 639 +1491 4 0 1454 584 619 606 +1492 4 0 1454 631 622 606 +1493 4 0 1498 1146 1186 1108 +1494 4 0 2038 559 532 564 +1495 4 0 2259 1208 1274 1228 +1496 4 0 2259 1252 1274 1208 +1497 4 0 2259 1252 1208 1194 +1498 4 0 1479 1656 517 514 +1499 4 0 1651 1479 517 514 +1500 4 0 1581 1582 1615 1209 +1501 4 0 2331 1209 1582 1581 +1502 4 0 1255 1237 1291 1423 +1503 4 0 1255 1423 1199 1237 +1504 4 0 1582 2331 1255 1209 +1505 4 0 2301 1199 1423 1237 +1506 4 0 1447 654 695 749 +1507 4 0 610 583 1495 1502 +1508 4 0 610 583 1502 595 +1509 4 0 780 1629 1497 798 +1510 4 0 2296 798 1497 1629 +1511 4 0 1600 190 2284 1410 +1512 4 0 224 157 1503 101 +1513 4 0 2284 1557 1353 190 +1514 4 0 1503 157 1504 233 +1515 4 0 2284 1353 135 190 +1516 4 0 2284 190 135 1410 +1517 4 0 224 157 101 96 +1518 4 0 224 221 157 96 +1519 4 0 2284 1600 1557 190 +1520 4 0 1371 2306 1013 968 +1521 4 0 1030 941 2305 957 +1522 4 0 1133 1371 1070 2305 +1523 4 0 2168 990 1579 1071 +1524 4 0 2168 1071 2312 990 +1525 4 0 2293 893 957 941 +1526 4 0 2323 1530 1664 1505 +1527 4 0 423 394 1446 1442 +1528 4 0 1529 401 444 411 +1529 4 0 1529 401 351 396 +1530 4 0 1664 1442 1446 1616 +1531 4 0 2311 2266 1663 382 +1532 4 0 2326 1529 1530 2323 +1533 4 0 1505 1530 1529 2323 +1534 4 0 1446 1530 2323 1360 +1535 4 0 1664 2323 1446 1530 +1536 4 0 1446 452 1530 477 +1537 4 0 1001 1014 2353 942 +1538 4 0 1506 1367 1006 971 +1539 4 0 1119 1402 1114 1590 +1540 4 0 1402 1590 2235 1114 +1541 4 0 1177 1190 1131 1539 +1542 4 0 1613 1177 1131 1539 +1543 4 0 1657 1193 1062 1520 +1544 4 0 1062 1193 1621 1520 +1545 4 0 1034 2325 1520 1621 +1546 4 0 1349 398 365 1575 +1547 4 0 2272 1349 1403 1597 +1548 4 0 398 1349 365 1403 +1549 4 0 42 40 1439 91 +1550 4 0 1007 1366 2247 972 +1551 4 0 1262 1256 1210 1638 +1552 4 0 1155 1200 1715 1617 +1553 4 0 2345 1292 1306 1308 +1554 4 0 1569 1366 1509 1715 +1555 4 0 1956 1368 973 932 +1556 4 0 1509 2345 1238 2247 +1557 4 0 1238 1638 2345 1509 +1558 4 0 1238 1200 1509 1366 +1559 4 0 1510 2288 539 1735 +1560 4 0 1510 495 503 520 +1561 4 0 1510 516 539 2288 +1562 4 0 1364 2290 862 910 +1563 4 0 1460 1286 1242 1234 +1564 4 0 1512 1282 1242 1286 +1565 4 0 1535 1218 1177 1232 +1566 4 0 792 800 1433 823 +1567 4 0 1876 800 1433 792 +1568 4 0 756 800 1876 792 +1569 4 0 800 792 756 1648 +1570 4 0 800 823 792 1648 +1571 4 0 544 514 1871 543 +1572 4 0 544 1870 514 543 +1573 4 0 1421 1393 1245 1295 +1574 4 0 866 1488 2253 1363 +1575 4 0 1393 1122 1113 1245 +1576 4 0 1876 781 800 760 +1577 4 0 352 1507 404 387 +1578 4 0 1365 2269 1043 2050 +1579 4 0 1378 1810 2090 1837 +1580 4 0 1612 2310 1810 1837 +1581 4 0 2273 1254 1198 1206 +1582 4 0 2347 1260 1254 1206 +1583 4 0 1281 1231 2207 1396 +1584 4 0 935 1515 1029 985 +1585 4 0 1515 1366 1516 2258 +1586 4 0 1515 1516 1687 2258 +1587 4 0 1380 961 1044 998 +1588 4 0 1250 1116 1183 1222 +1589 4 0 1519 1369 1012 967 +1590 4 0 2207 1369 2255 1241 +1591 4 0 1461 1233 1285 1642 +1592 4 0 1461 1369 1241 1233 +1593 4 0 1461 1241 1285 1233 +1594 4 0 1461 1241 1519 1923 +1595 4 0 1461 1369 1233 2230 +1596 4 0 1695 55 1666 1660 +1597 4 0 2014 2197 1976 1769 +1598 4 0 1251 1273 1621 1340 +1599 4 0 1522 2114 1037 1369 +1600 4 0 969 1452 1428 1047 +1601 4 0 1522 967 1012 1369 +1602 4 0 1557 326 1392 1492 +1603 4 0 2341 1492 392 1557 +1604 4 0 2341 1557 1392 1492 +1605 4 0 1493 2337 454 1584 +1606 4 0 1551 1560 1352 2256 +1607 4 0 1524 2071 2138 2139 +1608 4 0 530 537 1526 536 +1609 4 0 530 536 1526 1524 +1610 4 0 1524 536 1526 1525 +1611 4 0 529 536 1524 1525 +1612 4 0 573 557 2263 558 +1613 4 0 1525 529 1577 1524 +1614 4 0 1524 529 530 536 +1615 4 0 1527 557 573 572 +1616 4 0 279 267 308 1571 +1617 4 0 1359 487 462 1392 +1618 4 0 2320 1390 436 442 +1619 4 0 527 504 1735 2288 +1620 4 0 563 535 1735 527 +1621 4 0 2321 1359 1392 487 +1622 4 0 466 1391 2320 1766 +1623 4 0 255 1492 326 1557 +1624 4 0 1766 466 500 2320 +1625 4 0 1603 1766 463 490 +1626 4 0 1969 1661 689 1755 +1627 4 0 1406 91 1407 1439 +1628 4 0 361 2195 1354 1406 +1629 4 0 2317 515 538 2085 +1630 4 0 2317 2267 538 2042 +1631 4 0 320 1466 2179 1634 +1632 4 0 320 1466 335 1354 +1633 4 0 1545 1354 266 256 +1634 4 0 1170 1528 1183 1110 +1635 4 0 1999 1665 594 593 +1636 4 0 1528 1116 1222 1183 +1637 4 0 1528 1182 1109 1170 +1638 4 0 1528 1170 1109 1126 +1639 4 0 353 378 411 2335 +1640 4 0 1680 1669 796 794 +1641 4 0 794 1680 1669 1672 +1642 4 0 478 1358 1785 1416 +1643 4 0 2336 2297 99 220 +1644 4 0 2297 240 99 220 +1645 4 0 2202 99 1485 159 +1646 4 0 80 1449 269 240 +1647 4 0 2297 80 240 1449 +1648 4 0 240 269 80 141 +1649 4 0 240 80 99 141 +1650 4 0 1449 1723 80 269 +1651 4 0 2202 141 99 159 +1652 4 0 1516 1366 1515 972 +1653 4 0 1423 1269 1291 1305 +1654 4 0 2301 1477 1365 1211 +1655 4 0 1423 1269 1237 1291 +1656 4 0 1423 1269 1305 1303 +1657 4 0 1247 1265 1457 1322 +1658 4 0 251 164 1503 233 +1659 4 0 101 117 164 243 +1660 4 0 1504 157 234 233 +1661 4 0 243 224 1503 101 +1662 4 0 322 2005 1356 1572 +1663 4 0 2154 134 110 1356 +1664 4 0 1533 365 1349 331 +1665 4 0 1585 1369 1488 926 +1666 4 0 1488 1130 1369 1045 +1667 4 0 1488 1369 1130 2255 +1668 4 0 926 2255 1369 1488 +1669 4 0 1585 1369 2253 1488 +1670 4 0 2253 1369 1045 1488 +1671 4 0 296 371 1532 1531 +1672 4 0 1575 1349 1533 365 +1673 4 0 1533 331 1349 1483 +1674 4 0 352 2237 1532 1507 +1675 4 0 1507 2237 1532 1533 +1676 4 0 2342 1357 479 2302 +1677 4 0 1651 1481 1479 489 +1678 4 0 1479 491 514 489 +1679 4 0 1651 1479 514 489 +1680 4 0 1652 1809 235 219 +1681 4 0 1672 1680 1669 793 +1682 4 0 1672 1680 793 1675 +1683 4 0 1576 2 4 60 +1684 4 0 1300 1280 1264 1789 +1685 4 0 1891 1772 689 727 +1686 4 0 1015 2275 1534 951 +1687 4 0 1617 1087 1095 1606 +1688 4 0 888 943 855 2275 +1689 4 0 2275 943 936 888 +1690 4 0 2017 650 645 1667 +1691 4 0 1942 2017 1667 2140 +1692 4 0 1667 2017 650 2140 +1693 4 0 1534 1606 2274 1015 +1694 4 0 1534 1015 2274 2275 +1695 4 0 932 1606 2274 899 +1696 4 0 1364 865 1649 843 +1697 4 0 794 770 1680 785 +1698 4 0 1611 1499 1261 1309 +1699 4 0 1535 1337 1258 1276 +1700 4 0 1309 1677 1611 1311 +1701 4 0 2340 1096 1164 1194 +1702 4 0 1842 659 732 2025 +1703 4 0 56 29 2307 27 +1704 4 0 1385 132 100 222 +1705 4 0 1385 100 77 56 +1706 4 0 184 1653 137 1707 +1707 4 0 184 1880 1653 1707 +1708 4 0 184 119 1707 137 +1709 4 0 1350 1619 332 2223 +1710 4 0 285 137 151 1653 +1711 4 0 137 151 2316 285 +1712 4 0 304 285 151 1653 +1713 4 0 285 151 2316 304 +1714 4 0 2123 1707 119 137 +1715 4 0 1536 1213 2233 1124 +1716 4 0 770 1680 796 794 +1717 4 0 1657 1520 1062 1034 +1718 4 0 1062 1520 1621 1034 +1719 4 0 1352 1704 106 114 +1720 4 0 2336 76 26 28 +1721 4 0 794 1680 1675 785 +1722 4 0 2336 76 28 30 +1723 4 0 2336 1485 220 99 +1724 4 0 1565 58 76 30 +1725 4 0 1546 1486 1112 1213 +1726 4 0 1418 1137 1077 1173 +1727 4 0 583 584 569 559 +1728 4 0 1502 598 574 610 +1729 4 0 583 569 584 610 +1730 4 0 1648 821 847 806 +1731 4 0 1865 1721 2029 1826 +1732 4 0 1309 1261 1611 1677 +1733 4 0 2029 1721 1698 1826 +1734 4 0 1611 1261 1259 1677 +1735 4 0 755 2137 1957 1964 +1736 4 0 1939 587 2104 588 +1737 4 0 581 587 546 2104 +1738 4 0 1540 1337 1276 1335 +1739 4 0 1539 1190 1131 1440 +1740 4 0 1540 1512 1276 1539 +1741 4 0 925 1539 1440 1513 +1742 4 0 1540 1535 1276 1337 +1743 4 0 1979 1857 1905 1960 +1744 4 0 1680 1670 752 1852 +1745 4 0 1852 752 1854 1670 +1746 4 0 1873 1946 1924 1909 +1747 4 0 1702 1946 1924 1696 +1748 4 0 1917 1829 1702 1696 +1749 4 0 1736 2267 2041 562 +1750 4 0 1478 2232 1175 1111 +1751 4 0 1111 1181 2232 1175 +1752 4 0 1181 1230 1082 1169 +1753 4 0 1111 1478 1122 1175 +1754 4 0 1542 638 671 705 +1755 4 0 406 419 363 2339 +1756 4 0 1595 419 458 439 +1757 4 0 1177 1535 1613 1371 +1758 4 0 1487 1615 1367 1209 +1759 4 0 1499 1581 1487 1209 +1760 4 0 1499 1209 1487 1367 +1761 4 0 1581 1615 1487 1209 +1762 4 0 1692 1674 690 1732 +1763 4 0 1732 1661 630 1674 +1764 4 0 1539 1535 1177 1232 +1765 4 0 1671 1774 2019 2140 +1766 4 0 1674 694 690 1732 +1767 4 0 1675 2028 1680 1852 +1768 4 0 1235 1316 1681 1683 +1769 4 0 1258 2313 1476 2330 +1770 4 0 1316 1314 1681 1683 +1771 4 0 2337 1493 381 1694 +1772 4 0 381 1351 1694 1493 +1773 4 0 1535 2313 1258 2330 +1774 4 0 381 1694 1351 348 +1775 4 0 1453 1681 1235 1316 +1776 4 0 1942 1671 2019 2140 +1777 4 0 1232 1276 1535 1218 +1778 4 0 1671 2019 1740 1878 +1779 4 0 1980 1671 2019 1942 +1780 4 0 1671 1740 2019 1774 +1781 4 0 1512 1276 1232 1282 +1782 4 0 1512 1276 1282 1335 +1783 4 0 1576 119 1749 107 +1784 4 0 2136 1707 184 174 +1785 4 0 174 1707 184 119 +1786 4 0 2136 184 1707 1880 +1787 4 0 1235 1683 1681 1253 +1788 4 0 388 1543 434 1383 +1789 4 0 1383 388 443 434 +1790 4 0 1543 388 434 395 +1791 4 0 1384 1543 395 1600 +1792 4 0 1732 1661 1674 694 +1793 4 0 1674 694 1661 1842 +1794 4 0 630 1661 1732 2011 +1795 4 0 1566 835 840 810 +1796 4 0 1623 958 873 945 +1797 4 0 1623 1363 873 958 +1798 4 0 658 2025 1891 727 +1799 4 0 1661 2025 1772 1891 +1800 4 0 1661 1842 1772 2025 +1801 4 0 1772 1842 732 2025 +1802 4 0 2318 89 13 11 +1803 4 0 65 2318 9 11 +1804 4 0 2318 122 1619 1350 +1805 4 0 1619 1350 332 2318 +1806 4 0 1729 116 128 169 +1807 4 0 361 1545 1354 2205 +1808 4 0 347 408 1404 390 +1809 4 0 1772 2025 1959 727 +1810 4 0 1891 2025 1772 727 +1811 4 0 727 658 2025 1748 +1812 4 0 727 1959 1748 2025 +1813 4 0 1375 297 1705 1351 +1814 4 0 847 943 2275 855 +1815 4 0 1705 299 297 354 +1816 4 0 1351 299 297 1705 +1817 4 0 1555 617 627 2329 +1818 4 0 726 738 686 750 +1819 4 0 2329 686 2048 665 +1820 4 0 1667 645 633 1936 +1821 4 0 2013 1667 633 1936 +1822 4 0 623 1555 667 2329 +1823 4 0 2329 627 686 665 +1824 4 0 1555 596 617 623 +1825 4 0 2013 1667 1685 1942 +1826 4 0 1709 493 479 1357 +1827 4 0 1584 1357 1709 479 +1828 4 0 1376 1705 2337 1375 +1829 4 0 2337 1705 1694 1375 +1830 4 0 1694 1351 1375 1705 +1831 4 0 1376 1377 418 1726 +1832 4 0 1152 2049 1072 1159 +1833 4 0 2049 1367 1072 1159 +1834 4 0 348 1694 1351 1435 +1835 4 0 2123 119 1749 1576 +1836 4 0 2029 1827 919 1698 +1837 4 0 1683 1689 1947 1314 +1838 4 0 2029 1721 1827 1698 +1839 4 0 1689 1253 1917 1787 +1840 4 0 1829 1683 1689 1947 +1841 4 0 1917 1253 1733 1787 +1842 4 0 1999 1905 616 612 +1843 4 0 1670 1854 1890 752 +1844 4 0 1998 1676 1685 1851 +1845 4 0 1611 1677 1724 1311 +1846 4 0 1984 1851 1676 1998 +1847 4 0 1665 616 1999 2012 +1848 4 0 1905 2012 1999 616 +1849 4 0 1980 1984 1676 1998 +1850 4 0 1152 2049 1506 1072 +1851 4 0 2049 1506 1072 1367 +1852 4 0 2327 2049 1506 1152 +1853 4 0 1499 1367 1564 1215 +1854 4 0 2049 1367 1215 1564 +1855 4 0 1499 1564 1611 1215 +1856 4 0 2281 1564 1215 1611 +1857 4 0 2049 1564 1215 2281 +1858 4 0 1584 1705 2337 1376 +1859 4 0 1357 1705 1584 1376 +1860 4 0 1376 1357 1705 1726 +1861 4 0 593 616 612 1999 +1862 4 0 1435 1375 210 313 +1863 4 0 1375 297 210 313 +1864 4 0 1375 1351 210 297 +1865 4 0 1435 1375 1351 210 +1866 4 0 107 1809 1576 1652 +1867 4 0 1576 1809 107 1749 +1868 4 0 2123 1707 257 1749 +1869 4 0 1848 1424 1899 1678 +1870 4 0 2123 285 1707 137 +1871 4 0 630 1674 1661 1842 +1872 4 0 1917 1259 1829 1696 +1873 4 0 1917 1215 1259 1696 +1874 4 0 1917 1829 1259 1205 +1875 4 0 1917 1259 1215 1205 +1876 4 0 1799 755 1963 2295 +1877 4 0 1805 1753 1679 1810 +1878 4 0 1810 1612 1679 1805 +1879 4 0 2325 1338 1283 1340 +1880 4 0 2133 1697 1826 55 +1881 4 0 1257 1338 1394 1336 +1882 4 0 1696 1215 1259 1611 +1883 4 0 1338 1415 1257 1394 +1884 4 0 1415 1394 1370 1257 +1885 4 0 313 1435 1751 217 +1886 4 0 1396 1275 1394 1336 +1887 4 0 1375 1377 313 1700 +1888 4 0 732 1701 1959 2025 +1889 4 0 1550 1498 1186 1125 +1890 4 0 732 736 1701 1941 +1891 4 0 732 736 1959 1701 +1892 4 0 1550 1125 1186 1150 +1893 4 0 1702 1787 1917 1662 +1894 4 0 1700 1377 313 374 +1895 4 0 1537 67 17 15 +1896 4 0 1726 297 362 354 +1897 4 0 1729 2256 1551 116 +1898 4 0 1726 1705 297 354 +1899 4 0 1726 1375 297 1705 +1900 4 0 1537 67 15 73 +1901 4 0 67 63 1556 17 +1902 4 0 1537 17 67 1556 +1903 4 0 1006 1367 2049 1564 +1904 4 0 315 356 1523 368 +1905 4 0 1523 368 356 1357 +1906 4 0 1662 1917 1702 2281 +1907 4 0 2299 314 363 380 +1908 4 0 785 2028 1680 1675 +1909 4 0 1552 1146 1054 1165 +1910 4 0 1552 1054 1127 1165 +1911 4 0 785 2028 770 1680 +1912 4 0 785 2028 1675 1802 +1913 4 0 785 1860 2028 1802 +1914 4 0 753 1860 2028 785 +1915 4 0 753 785 2028 770 +1916 4 0 1570 1553 1365 924 +1917 4 0 1527 2263 1526 573 +1918 4 0 1527 1526 2263 1511 +1919 4 0 1511 1527 1526 1525 +1920 4 0 1365 965 1553 1563 +1921 4 0 1563 2050 1365 1028 +1922 4 0 1553 965 1365 924 +1923 4 0 1456 231 249 195 +1924 4 0 2201 112 244 132 +1925 4 0 1456 132 244 222 +1926 4 0 1974 2061 1738 261 +1927 4 0 1974 120 2061 108 +1928 4 0 1974 120 1738 2061 +1929 4 0 2061 1974 108 1783 +1930 4 0 237 1974 2061 1783 +1931 4 0 237 2061 1974 261 +1932 4 0 1627 828 838 814 +1933 4 0 2324 1627 864 838 +1934 4 0 1685 1676 1936 2191 +1935 4 0 1644 1646 96 221 +1936 4 0 1646 53 54 96 +1937 4 0 1646 101 53 96 +1938 4 0 1457 1324 1322 1265 +1939 4 0 1555 627 642 1933 +1940 4 0 1555 627 604 642 +1941 4 0 1936 692 1685 2191 +1942 4 0 614 1990 615 621 +1943 4 0 1947 1946 1909 1924 +1944 4 0 199 1881 247 278 +1945 4 0 106 114 1704 1556 +1946 4 0 1556 63 19 17 +1947 4 0 1506 1373 937 1001 +1948 4 0 1917 1689 1787 1702 +1949 4 0 1829 1253 1689 1683 +1950 4 0 210 217 161 2252 +1951 4 0 2252 217 1435 210 +1952 4 0 937 1001 987 1506 +1953 4 0 2353 942 1014 950 +1954 4 0 2286 1014 1016 950 +1955 4 0 2286 950 1016 1361 +1956 4 0 1726 1377 362 297 +1957 4 0 1726 1357 1705 354 +1958 4 0 1726 1375 1377 297 +1959 4 0 1726 354 362 412 +1960 4 0 1726 354 412 1357 +1961 4 0 1564 971 1367 1487 +1962 4 0 1506 971 1374 1367 +1963 4 0 1652 237 1783 219 +1964 4 0 1652 237 2231 1783 +1965 4 0 1001 1521 1014 1072 +1966 4 0 2260 236 160 222 +1967 4 0 2260 1456 160 229 +1968 4 0 1456 160 132 222 +1969 4 0 2260 222 160 1456 +1970 4 0 727 662 1748 1962 +1971 4 0 2135 1721 1865 1826 +1972 4 0 2135 996 1865 1721 +1973 4 0 1124 1550 1498 1247 +1974 4 0 1247 1498 1186 1550 +1975 4 0 466 1391 1766 463 +1976 4 0 1766 463 1391 1764 +1977 4 0 2054 250 232 194 +1978 4 0 2331 1307 1423 1255 +1979 4 0 2054 170 250 194 +1980 4 0 2054 1441 250 170 +1981 4 0 1733 1173 1546 1235 +1982 4 0 1084 1787 1059 1733 +1983 4 0 1453 1235 1787 1733 +1984 4 0 1084 1780 1418 1733 +1985 4 0 1084 1059 1780 1733 +1986 4 0 1546 1733 1418 1173 +1987 4 0 1633 1738 1773 138 +1988 4 0 1738 138 95 75 +1989 4 0 1738 95 138 2223 +1990 4 0 1733 1787 1059 1662 +1991 4 0 1733 2049 1662 1059 +1992 4 0 1811 1854 1761 1670 +1993 4 0 1059 2049 1780 1733 +1994 4 0 1680 769 795 793 +1995 4 0 1680 2028 1670 1852 +1996 4 0 1732 1661 1755 2011 +1997 4 0 593 616 1999 1665 +1998 4 0 2236 1558 1561 2308 +1999 4 0 2337 1493 1694 1705 +2000 4 0 1694 1351 1705 1493 +2001 4 0 1561 891 903 1452 +2002 4 0 866 1488 901 2309 +2003 4 0 586 1496 1968 567 +2004 4 0 1084 1418 1486 1546 +2005 4 0 1587 603 589 617 +2006 4 0 1587 617 596 623 +2007 4 0 1733 1546 1453 1235 +2008 4 0 1084 1733 1418 1546 +2009 4 0 1587 641 603 617 +2010 4 0 1493 299 1705 356 +2011 4 0 1440 1513 966 925 +2012 4 0 1351 299 1705 1493 +2013 4 0 1331 1282 1512 1286 +2014 4 0 1854 1691 1890 752 +2015 4 0 1878 1691 2155 2081 +2016 4 0 1680 1852 769 793 +2017 4 0 1512 1282 1232 1242 +2018 4 0 1512 1282 1333 1335 +2019 4 0 174 119 107 1749 +2020 4 0 2136 1749 1707 174 +2021 4 0 174 1749 1707 119 +2022 4 0 1675 1852 1680 793 +2023 4 0 1675 1852 793 784 +2024 4 0 1661 694 1969 1772 +2025 4 0 1852 784 769 793 +2026 4 0 1854 1691 1878 1890 +2027 4 0 1377 297 313 362 +2028 4 0 1974 120 138 1738 +2029 4 0 1738 138 75 120 +2030 4 0 1738 138 1974 1773 +2031 4 0 732 659 1701 2025 +2032 4 0 418 1377 362 1726 +2033 4 0 732 1941 1701 663 +2034 4 0 1701 1765 2025 659 +2035 4 0 418 1726 362 412 +2036 4 0 313 1751 341 217 +2037 4 0 1751 341 217 1571 +2038 4 0 1469 2288 2322 516 +2039 4 0 629 630 1692 1797 +2040 4 0 794 1680 1672 1675 +2041 4 0 1669 1680 795 793 +2042 4 0 1802 2028 1675 1852 +2043 4 0 1725 647 2001 1791 +2044 4 0 635 2017 1725 647 +2045 4 0 1725 647 2017 2001 +2046 4 0 727 658 1748 662 +2047 4 0 1576 2123 235 1749 +2048 4 0 1791 1953 2019 1980 +2049 4 0 1791 2019 1995 2001 +2050 4 0 1611 1677 1259 1724 +2051 4 0 447 1600 1384 462 +2052 4 0 436 389 1390 430 +2053 4 0 995 1895 1698 1721 +2054 4 0 2341 1557 392 1600 +2055 4 0 1732 1755 1994 1797 +2056 4 0 1797 1732 1755 2011 +2057 4 0 1728 2089 2113 2156 +2058 4 0 1375 297 313 1377 +2059 4 0 1760 1755 1797 1994 +2060 4 0 1732 1969 1994 1755 +2061 4 0 409 1562 1390 389 +2062 4 0 1392 1359 2321 383 +2063 4 0 2099 1727 2142 1728 +2064 4 0 1600 1392 462 447 +2065 4 0 447 1600 2298 1384 +2066 4 0 1376 1375 1377 1726 +2067 4 0 1962 1958 734 1762 +2068 4 0 1376 1375 1726 1705 +2069 4 0 1748 734 1962 1958 +2070 4 0 1730 1827 2029 1721 +2071 4 0 1748 734 735 1962 +2072 4 0 1084 1453 1546 2233 +2073 4 0 1376 1726 418 412 +2074 4 0 1084 1453 1787 1733 +2075 4 0 1377 1376 418 1714 +2076 4 0 1733 1546 1084 1453 +2077 4 0 1700 1435 1751 313 +2078 4 0 1700 374 313 341 +2079 4 0 322 1598 2154 2005 +2080 4 0 1376 412 418 1714 +2081 4 0 1435 313 210 217 +2082 4 0 1946 1259 1924 1696 +2083 4 0 1969 1661 1732 694 +2084 4 0 1732 694 2092 1969 +2085 4 0 2154 2005 1356 322 +2086 4 0 1696 1259 1924 1611 +2087 4 0 1924 1259 1724 1611 +2088 4 0 1259 1724 1873 1924 +2089 4 0 1259 1946 1924 1873 +2090 4 0 1235 1681 1787 1253 +2091 4 0 1681 1689 1787 1253 +2092 4 0 1905 624 616 612 +2093 4 0 1993 2088 1857 1930 +2094 4 0 1905 624 626 616 +2095 4 0 630 1674 1692 1732 +2096 4 0 1930 1990 2110 1857 +2097 4 0 2317 515 2085 1470 +2098 4 0 507 528 2042 533 +2099 4 0 630 1692 1797 1732 +2100 4 0 507 505 2317 528 +2101 4 0 507 533 2042 522 +2102 4 0 1341 1274 2259 1252 +2103 4 0 1527 2263 573 557 +2104 4 0 1185 1645 1166 1128 +2105 4 0 996 1730 2029 1721 +2106 4 0 2034 2004 1713 1737 +2107 4 0 1760 1998 2173 1908 +2108 4 0 1648 791 760 800 +2109 4 0 1648 821 791 800 +2110 4 0 1961 711 2079 1932 +2111 4 0 1648 791 1877 760 +2112 4 0 257 2123 285 1707 +2113 4 0 629 2013 1725 635 +2114 4 0 1797 1755 1718 2011 +2115 4 0 2152 2027 1848 2332 +2116 4 0 1972 2079 1932 1961 +2117 4 0 2021 2113 2027 1861 +2118 4 0 1940 693 700 1978 +2119 4 0 984 934 2050 1028 +2120 4 0 2050 1028 1563 984 +2121 4 0 635 2017 2013 1725 +2122 4 0 158 1809 98 163 +2123 4 0 1539 1535 1613 1177 +2124 4 0 2063 163 1809 158 +2125 4 0 1809 163 1401 1783 +2126 4 0 694 1842 732 1772 +2127 4 0 1661 1842 694 1772 +2128 4 0 2061 120 1738 1778 +2129 4 0 1539 1232 1190 1512 +2130 4 0 1797 2204 1994 1732 +2131 4 0 1338 2325 1257 1415 +2132 4 0 1805 2206 1747 1810 +2133 4 0 2206 1866 1747 1810 +2134 4 0 1011 1440 966 1414 +2135 4 0 966 1440 1445 1414 +2136 4 0 1011 1440 1414 1591 +2137 4 0 1694 1375 1351 1435 +2138 4 0 1749 174 158 107 +2139 4 0 1809 158 97 107 +2140 4 0 174 158 2351 1749 +2141 4 0 2063 2351 158 1809 +2142 4 0 2336 76 242 223 +2143 4 0 1580 1480 1615 924 +2144 4 0 2028 1854 1860 1811 +2145 4 0 242 76 111 131 +2146 4 0 851 822 839 1610 +2147 4 0 242 76 131 223 +2148 4 0 1666 1484 1596 55 +2149 4 0 1351 1386 105 115 +2150 4 0 2351 2136 174 1749 +2151 4 0 1749 158 1809 107 +2152 4 0 158 1809 2351 1749 +2153 4 0 1457 1090 1265 1203 +2154 4 0 1457 1265 1247 1203 +2155 4 0 1860 1802 1854 2028 +2156 4 0 2034 884 1841 1911 +2157 4 0 1616 191 260 275 +2158 4 0 1655 316 300 215 +2159 4 0 1584 1493 2337 1705 +2160 4 0 1357 1493 1584 1705 +2161 4 0 862 811 1459 1628 +2162 4 0 1783 108 98 163 +2163 4 0 2231 98 1783 108 +2164 4 0 1652 1783 2231 98 +2165 4 0 394 1407 1616 1442 +2166 4 0 1783 1974 108 163 +2167 4 0 163 1783 1974 1401 +2168 4 0 1613 1539 1131 1440 +2169 4 0 1395 1488 2255 926 +2170 4 0 926 901 1395 1488 +2171 4 0 1400 115 1597 127 +2172 4 0 1597 115 168 127 +2173 4 0 394 1616 1406 361 +2174 4 0 2182 1734 1848 1899 +2175 4 0 1734 1754 2080 1952 +2176 4 0 1661 1969 689 1772 +2177 4 0 648 1905 624 626 +2178 4 0 1406 85 1354 136 +2179 4 0 1878 2019 1740 1801 +2180 4 0 1446 1354 1616 361 +2181 4 0 1954 1932 1927 1907 +2182 4 0 732 663 1701 659 +2183 4 0 1701 663 1765 659 +2184 4 0 1701 1798 1916 1765 +2185 4 0 1996 1916 1798 1765 +2186 4 0 648 1905 2112 624 +2187 4 0 1597 168 1349 127 +2188 4 0 1400 1351 1597 115 +2189 4 0 1597 1351 168 115 +2190 4 0 1403 1349 127 1597 +2191 4 0 1403 1597 127 1400 +2192 4 0 1407 1406 394 1616 +2193 4 0 843 1649 1364 2324 +2194 4 0 818 2324 843 1364 +2195 4 0 1652 97 107 1809 +2196 4 0 1809 235 1576 1652 +2197 4 0 1866 1907 2075 1932 +2198 4 0 1866 1932 1747 1907 +2199 4 0 2311 400 2266 382 +2200 4 0 1606 1715 1005 1362 +2201 4 0 658 662 2053 1748 +2202 4 0 1817 1989 714 1991 +2203 4 0 1817 721 1991 714 +2204 4 0 40 1406 1439 91 +2205 4 0 1414 1639 1011 1591 +2206 4 0 1511 1526 2263 536 +2207 4 0 536 1511 1526 1525 +2208 4 0 1727 2098 2021 2099 +2209 4 0 1959 1916 1997 1748 +2210 4 0 727 1962 1748 735 +2211 4 0 727 1959 735 1748 +2212 4 0 1484 999 1093 1092 +2213 4 0 1484 1000 1093 999 +2214 4 0 1900 1424 1678 2007 +2215 4 0 2002 2007 2032 1678 +2216 4 0 321 1435 2252 1571 +2217 4 0 2005 46 2154 79 +2218 4 0 83 46 48 1598 +2219 4 0 385 1359 1600 326 +2220 4 0 1600 259 274 337 +2221 4 0 734 1958 1997 1762 +2222 4 0 1748 1997 734 1958 +2223 4 0 1668 366 417 367 +2224 4 0 446 2070 2147 1668 +2225 4 0 1489 1668 446 2147 +2226 4 0 1489 1430 1668 2147 +2227 4 0 1748 1997 735 734 +2228 4 0 1745 1932 711 1961 +2229 4 0 1351 1400 1386 115 +2230 4 0 1576 1809 1749 235 +2231 4 0 927 2305 1613 968 +2232 4 0 1613 2305 927 2294 +2233 4 0 2291 1364 1613 959 +2234 4 0 1684 1821 1869 1830 +2235 4 0 1707 119 1749 2123 +2236 4 0 1482 2118 872 1599 +2237 4 0 1480 1599 872 2352 +2238 4 0 1009 2168 1370 974 +2239 4 0 2279 974 1706 933 +2240 4 0 163 1809 98 1783 +2241 4 0 158 98 1809 97 +2242 4 0 2063 1401 1809 163 +2243 4 0 1981 1844 689 1755 +2244 4 0 1981 634 1755 689 +2245 4 0 1600 274 259 190 +2246 4 0 1600 190 1355 203 +2247 4 0 628 634 2011 1755 +2248 4 0 2011 2013 628 1755 +2249 4 0 2079 711 2198 1932 +2250 4 0 2289 2198 1932 2079 +2251 4 0 1007 972 1515 1366 +2252 4 0 2090 2158 2073 1833 +2253 4 0 1652 1809 98 97 +2254 4 0 1652 1783 98 1809 +2255 4 0 1516 1569 972 931 +2256 4 0 1846 1713 2189 2187 +2257 4 0 2254 1468 344 294 +2258 4 0 1633 1465 317 2223 +2259 4 0 2223 1465 317 332 +2260 4 0 318 333 1467 2282 +2261 4 0 1583 844 1363 1623 +2262 4 0 1993 656 1960 1857 +2263 4 0 531 1603 508 513 +2264 4 0 1917 1253 1829 1205 +2265 4 0 656 2088 1857 1993 +2266 4 0 1993 1817 656 2088 +2267 4 0 995 1698 1827 1721 +2268 4 0 1839 1932 1752 1747 +2269 4 0 1929 1839 1752 1747 +2270 4 0 1924 1724 1311 1611 +2271 4 0 1964 1955 1833 1992 +2272 4 0 196 238 1468 1355 +2273 4 0 1355 319 334 1468 +2274 4 0 1996 1958 1916 1748 +2275 4 0 2231 1783 2061 108 +2276 4 0 1724 1311 1873 1924 +2277 4 0 1959 1916 1748 2025 +2278 4 0 1895 1698 1826 1697 +2279 4 0 1873 1311 2193 1924 +2280 4 0 724 713 1938 1762 +2281 4 0 724 713 1762 1991 +2282 4 0 359 1568 1588 392 +2283 4 0 1448 1408 1368 1686 +2284 4 0 2121 1448 1368 1686 +2285 4 0 968 2305 1371 2306 +2286 4 0 1986 1803 1747 2206 +2287 4 0 361 335 1466 1354 +2288 4 0 1431 1753 1912 1743 +2289 4 0 1958 1916 1997 1762 +2290 4 0 1748 1997 1958 1916 +2291 4 0 1755 1661 689 634 +2292 4 0 2011 1661 1755 634 +2293 4 0 1753 1747 1986 2078 +2294 4 0 2169 2107 1945 691 +2295 4 0 473 1888 457 498 +2296 4 0 1888 1469 457 498 +2297 4 0 1371 1013 2313 968 +2298 4 0 968 1535 2313 1371 +2299 4 0 2000 2169 1794 2199 +2300 4 0 1599 1004 1086 1067 +2301 4 0 1616 136 1354 183 +2302 4 0 1804 1777 1948 1855 +2303 4 0 1709 1469 457 1888 +2304 4 0 1616 1356 204 1664 +2305 4 0 1821 1910 1758 2026 +2306 4 0 83 1598 48 1693 +2307 4 0 1666 1000 1484 999 +2308 4 0 2057 1484 1596 1666 +2309 4 0 1009 974 1370 1415 +2310 4 0 974 1394 1370 1415 +2311 4 0 1683 1947 1909 1314 +2312 4 0 2175 1796 1830 2150 +2313 4 0 1938 687 1944 713 +2314 4 0 1762 1989 1991 2105 +2315 4 0 1701 663 1798 1765 +2316 4 0 1996 1798 1825 1765 +2317 4 0 1996 1825 1798 2184 +2318 4 0 1798 663 1941 2184 +2319 4 0 1701 1941 1798 663 +2320 4 0 807 1602 1609 820 +2321 4 0 1610 1673 839 804 +2322 4 0 1613 865 1463 1364 +2323 4 0 1909 1947 2193 1314 +2324 4 0 1947 1909 2193 1924 +2325 4 0 1889 1991 1817 721 +2326 4 0 1797 1718 1725 2011 +2327 4 0 1508 1914 1841 2034 +2328 4 0 3 1 1652 57 +2329 4 0 1615 1067 1599 1086 +2330 4 0 1580 1599 1615 1480 +2331 4 0 98 1652 97 1975 +2332 4 0 1602 1609 2196 1832 +2333 4 0 2196 1832 1419 1602 +2334 4 0 826 1832 1361 1828 +2335 4 0 826 2118 1361 1832 +2336 4 0 1760 1998 1908 1718 +2337 4 0 1725 2013 2011 1718 +2338 4 0 1725 1718 1942 2013 +2339 4 0 638 1717 1542 620 +2340 4 0 1542 632 1717 646 +2341 4 0 1717 620 585 607 +2342 4 0 1717 620 600 585 +2343 4 0 1717 620 638 600 +2344 4 0 746 705 1542 671 +2345 4 0 1542 632 620 1717 +2346 4 0 2180 1539 927 1613 +2347 4 0 1667 1720 1685 1942 +2348 4 0 376 343 1467 290 +2349 4 0 1942 1720 1671 1667 +2350 4 0 1889 733 721 1941 +2351 4 0 1942 1667 1671 2140 +2352 4 0 498 506 2322 485 +2353 4 0 1845 2100 2169 1806 +2354 4 0 1954 673 2166 1806 +2355 4 0 1806 1988 1927 1845 +2356 4 0 1375 1435 1700 313 +2357 4 0 1954 1806 1982 673 +2358 4 0 2058 465 503 495 +2359 4 0 1980 1720 1671 1942 +2360 4 0 2084 1903 86 36 +2361 4 0 1690 666 717 2046 +2362 4 0 1682 496 510 482 +2363 4 0 1626 609 618 613 +2364 4 0 2049 1152 1137 1197 +2365 4 0 1780 2049 1137 1197 +2366 4 0 2287 1682 482 496 +2367 4 0 1733 2049 1780 1197 +2368 4 0 717 775 707 1816 +2369 4 0 1690 717 707 2046 +2370 4 0 1690 717 640 707 +2371 4 0 1690 618 640 666 +2372 4 0 1690 618 1626 602 +2373 4 0 1690 640 618 602 +2374 4 0 1626 602 618 590 +2375 4 0 1366 2247 972 1569 +2376 4 0 758 1799 2065 1538 +2377 4 0 1810 2075 1799 2167 +2378 4 0 2065 1918 1538 1799 +2379 4 0 2013 1667 1936 1685 +2380 4 0 1667 1720 1936 1685 +2381 4 0 700 2120 1940 1791 +2382 4 0 1685 1720 1936 1676 +2383 4 0 2120 719 1812 700 +2384 4 0 2190 1812 1908 1998 +2385 4 0 2283 2303 1032 1366 +2386 4 0 1762 1989 1944 1930 +2387 4 0 1791 2120 1812 700 +2388 4 0 2120 1791 1812 1860 +2389 4 0 1569 1516 1715 931 +2390 4 0 1835 1929 1752 1747 +2391 4 0 2089 2099 1737 1728 +2392 4 0 927 1613 2292 2180 +2393 4 0 1613 1463 2292 2180 +2394 4 0 1683 1689 1681 1253 +2395 4 0 1581 924 1580 1615 +2396 4 0 1878 697 1740 1671 +2397 4 0 1582 924 1581 1615 +2398 4 0 1582 1615 1365 924 +2399 4 0 1671 697 1740 669 +2400 4 0 1814 1863 2211 1759 +2401 4 0 1878 1740 697 1801 +2402 4 0 1767 1950 2113 2099 +2403 4 0 1255 1307 1309 2331 +2404 4 0 867 1715 1606 1362 +2405 4 0 867 1715 899 1606 +2406 4 0 867 1606 899 2274 +2407 4 0 867 1362 1606 1534 +2408 4 0 867 1606 2274 1534 +2409 4 0 1048 1038 1414 1591 +2410 4 0 1445 1038 1414 1048 +2411 4 0 2045 2059 1796 2175 +2412 4 0 2238 1796 2175 2150 +2413 4 0 1758 2111 1821 2026 +2414 4 0 2175 2150 1742 2251 +2415 4 0 1616 256 183 1354 +2416 4 0 1356 1407 1664 1616 +2417 4 0 2152 1848 1840 2332 +2418 4 0 1956 2315 1368 932 +2419 4 0 1606 1095 1617 1368 +2420 4 0 1606 2315 1715 899 +2421 4 0 2315 1368 1617 1956 +2422 4 0 1952 2080 2246 1754 +2423 4 0 2032 1734 2080 2002 +2424 4 0 502 509 1651 526 +2425 4 0 502 1651 509 484 +2426 4 0 1481 484 1651 502 +2427 4 0 1592 1656 499 491 +2428 4 0 491 1703 1656 499 +2429 4 0 2097 1811 1860 1812 +2430 4 0 1840 1848 1934 2332 +2431 4 0 1848 1934 1899 1840 +2432 4 0 1493 299 214 1351 +2433 4 0 1737 2089 1728 1882 +2434 4 0 1741 2141 2030 2189 +2435 4 0 1937 2080 1846 1744 +2436 4 0 1836 2141 2030 2020 +2437 4 0 2010 2080 1744 2246 +2438 4 0 1940 1797 693 1983 +2439 4 0 629 1797 1725 2011 +2440 4 0 2011 629 1797 630 +2441 4 0 1940 1692 693 1797 +2442 4 0 629 2013 2011 1725 +2443 4 0 1825 1798 663 1765 +2444 4 0 1825 663 1798 2184 +2445 4 0 2018 2141 2030 1741 +2446 4 0 905 2098 897 1771 +2447 4 0 882 1771 2098 1757 +2448 4 0 2137 1834 2130 1759 +2449 4 0 1821 1830 2045 1869 +2450 4 0 1770 1799 1918 2065 +2451 4 0 1954 1752 1932 1792 +2452 4 0 2125 1792 1954 1753 +2453 4 0 1684 1830 1884 1821 +2454 4 0 1897 1830 1855 1884 +2455 4 0 1772 2025 732 1959 +2456 4 0 1792 1954 1752 1625 +2457 4 0 1701 1916 1959 2025 +2458 4 0 1954 1792 1932 1907 +2459 4 0 1907 1792 1753 1954 +2460 4 0 2125 1954 1792 1625 +2461 4 0 1758 1910 1750 2026 +2462 4 0 1568 1492 1353 392 +2463 4 0 95 65 1619 9 +2464 4 0 1579 1129 1071 1026 +2465 4 0 1026 1579 1129 1657 +2466 4 0 1702 1696 1924 1611 +2467 4 0 1370 1415 2325 1009 +2468 4 0 2325 1370 1225 1257 +2469 4 0 1455 2000 2095 2199 +2470 4 0 2155 697 1671 2072 +2471 4 0 1893 669 1671 2140 +2472 4 0 2254 294 377 336 +2473 4 0 2325 1340 1251 1621 +2474 4 0 1978 1940 1791 700 +2475 4 0 1840 1424 1899 1848 +2476 4 0 334 1355 2280 360 +2477 4 0 1708 2035 2089 1861 +2478 4 0 1599 1086 1521 1367 +2479 4 0 1599 1521 2286 1374 +2480 4 0 1599 1367 1521 1374 +2481 4 0 1599 2286 1016 1361 +2482 4 0 1750 2251 2192 2026 +2483 4 0 1777 1897 1970 1855 +2484 4 0 905 2132 2098 1771 +2485 4 0 1744 2080 1846 1754 +2486 4 0 1744 2080 1754 2246 +2487 4 0 1937 2080 1836 1846 +2488 4 0 1830 2031 1919 946 +2489 4 0 1830 2031 1869 1919 +2490 4 0 1916 2184 1889 1817 +2491 4 0 1916 1991 1817 1889 +2492 4 0 2051 2002 2008 2074 +2493 4 0 1480 872 1599 1482 +2494 4 0 1932 1896 1745 711 +2495 4 0 1488 1370 1176 1117 +2496 4 0 1446 1616 260 275 +2497 4 0 23 71 21 1647 +2498 4 0 1488 1035 2253 1363 +2499 4 0 1488 1035 1130 1045 +2500 4 0 1762 1962 1938 734 +2501 4 0 734 1997 2015 1762 +2502 4 0 1599 1570 1615 1480 +2503 4 0 658 2053 2025 1748 +2504 4 0 1664 1446 275 1616 +2505 4 0 1515 1624 1029 985 +2506 4 0 991 1784 1096 2306 +2507 4 0 991 1096 1030 2306 +2508 4 0 2343 984 1563 1028 +2509 4 0 1028 1097 2343 984 +2510 4 0 986 1058 1002 1686 +2511 4 0 1627 838 828 864 +2512 4 0 862 1628 1459 1364 +2513 4 0 862 824 1628 869 +2514 4 0 827 2296 813 809 +2515 4 0 1613 1046 1131 1036 +2516 4 0 1797 1760 1983 1725 +2517 4 0 1797 1760 1725 1718 +2518 4 0 1797 1994 1983 1760 +2519 4 0 2291 1613 1364 865 +2520 4 0 169 1350 1655 189 +2521 4 0 1729 1350 1655 169 +2522 4 0 1797 1760 1718 1755 +2523 4 0 2080 1869 1432 1919 +2524 4 0 306 1465 1633 209 +2525 4 0 1466 291 1634 309 +2526 4 0 290 1635 310 1467 +2527 4 0 992 1869 1432 2080 +2528 4 0 1761 1854 1890 1670 +2529 4 0 1705 1357 1493 356 +2530 4 0 1827 995 919 1698 +2531 4 0 1376 1726 412 1357 +2532 4 0 2045 1869 992 2008 +2533 4 0 215 300 2256 206 +2534 4 0 1730 995 1827 1721 +2535 4 0 2256 206 1560 1352 +2536 4 0 478 1358 1416 2328 +2537 4 0 1655 1560 397 1729 +2538 4 0 2009 1817 1762 1930 +2539 4 0 1916 1762 2009 1817 +2540 4 0 1413 425 369 370 +2541 4 0 1413 370 369 2264 +2542 4 0 1762 1989 1817 1991 +2543 4 0 1916 1991 1762 1817 +2544 4 0 2022 1954 2166 2227 +2545 4 0 1762 1817 1989 1930 +2546 4 0 724 1762 1938 734 +2547 4 0 1413 425 370 438 +2548 4 0 1761 1854 1878 1890 +2549 4 0 1984 1761 1878 2081 +2550 4 0 1655 273 1350 2264 +2551 4 0 1762 1991 2015 724 +2552 4 0 1012 1369 1519 1461 +2553 4 0 1642 2230 1040 1012 +2554 4 0 1083 1198 1254 1236 +2555 4 0 1821 2059 2045 2175 +2556 4 0 1788 1254 1317 1236 +2557 4 0 1254 1315 1788 1317 +2558 4 0 1083 1061 1254 1198 +2559 4 0 2045 1821 2008 2040 +2560 4 0 1954 2166 1915 2090 +2561 4 0 2243 2150 921 2251 +2562 4 0 1100 1239 1167 1182 +2563 4 0 1100 1227 1167 1239 +2564 4 0 2243 1742 2150 2251 +2565 4 0 1100 2060 1167 1085 +2566 4 0 1100 1085 1167 1227 +2567 4 0 1528 1100 1182 1120 +2568 4 0 2129 1219 1279 1229 +2569 4 0 2129 1289 1279 1297 +2570 4 0 1027 1784 2340 1096 +2571 4 0 1933 642 750 686 +2572 4 0 1933 686 750 726 +2573 4 0 1935 64 94 8 +2574 4 0 1784 1096 1164 2340 +2575 4 0 2316 8 1935 94 +2576 4 0 2114 1127 1552 1025 +2577 4 0 1684 1950 1767 2099 +2578 4 0 1713 1922 2004 2034 +2579 4 0 242 1565 76 2336 +2580 4 0 1025 1552 1054 1127 +2581 4 0 1024 1128 1053 1639 +2582 4 0 2098 1684 1767 2099 +2583 4 0 1639 1128 988 1024 +2584 4 0 2314 1136 1020 2343 +2585 4 0 2343 1097 1136 1020 +2586 4 0 242 1731 263 147 +2587 4 0 1799 2075 2006 1992 +2588 4 0 1389 1081 1168 1110 +2589 4 0 1758 1853 1920 1821 +2590 4 0 2017 645 633 1667 +2591 4 0 1853 1894 982 1758 +2592 4 0 1667 650 1936 1893 +2593 4 0 1002 986 1686 936 +2594 4 0 1821 2175 2045 1830 +2595 4 0 1942 2017 2140 2001 +2596 4 0 2049 1917 1662 2281 +2597 4 0 1655 300 357 1560 +2598 4 0 1729 169 1655 2256 +2599 4 0 2010 1919 1432 1793 +2600 4 0 2010 2153 1919 1793 +2601 4 0 1341 1284 1252 1476 +2602 4 0 1796 2031 2045 1830 +2603 4 0 1460 1286 1234 1641 +2604 4 0 1327 1641 1862 1278 +2605 4 0 1477 1263 1906 2210 +2606 4 0 2112 1944 687 668 +2607 4 0 2122 861 854 2128 +2608 4 0 1988 1992 1799 1957 +2609 4 0 586 571 567 561 +2610 4 0 1862 2228 1224 1278 +2611 4 0 1988 1992 1957 2115 +2612 4 0 1574 2272 1349 398 +2613 4 0 2272 421 398 1574 +2614 4 0 1725 1983 1940 1908 +2615 4 0 1760 1908 1983 1725 +2616 4 0 1714 457 473 1888 +2617 4 0 1760 1908 1725 1718 +2618 4 0 1725 1718 1908 1942 +2619 4 0 1574 1523 1493 454 +2620 4 0 1507 352 324 387 +2621 4 0 1507 387 324 368 +2622 4 0 1671 669 1774 2140 +2623 4 0 404 387 1507 437 +2624 4 0 2013 633 628 1936 +2625 4 0 1671 1740 1774 669 +2626 4 0 1872 1820 2249 1931 +2627 4 0 1493 421 2272 1574 +2628 4 0 1661 1891 689 634 +2629 4 0 404 371 1532 352 +2630 4 0 1197 2049 1917 1733 +2631 4 0 2169 1847 1921 2037 +2632 4 0 2289 1972 2079 1932 +2633 4 0 1758 2111 982 1821 +2634 4 0 1639 1128 1645 1185 +2635 4 0 352 296 371 1532 +2636 4 0 1821 2008 2040 2074 +2637 4 0 2279 1370 1394 1176 +2638 4 0 2002 1869 2080 2032 +2639 4 0 2080 992 1869 2002 +2640 4 0 1869 992 2008 2002 +2641 4 0 1928 2080 1869 2032 +2642 4 0 1767 1898 1900 1684 +2643 4 0 925 1539 1613 1440 +2644 4 0 1767 2149 2131 1898 +2645 4 0 1615 1367 1209 1161 +2646 4 0 2013 2017 633 1667 +2647 4 0 1942 2140 2019 2001 +2648 4 0 630 1732 1797 2011 +2649 4 0 1692 690 2204 1732 +2650 4 0 1556 63 1647 21 +2651 4 0 1647 63 71 21 +2652 4 0 861 825 852 2122 +2653 4 0 2131 2149 1767 2086 +2654 4 0 693 690 2204 1692 +2655 4 0 719 2120 2097 730 +2656 4 0 1792 1752 1932 1747 +2657 4 0 730 743 718 1860 +2658 4 0 719 2120 1812 2097 +2659 4 0 2247 1270 1304 2345 +2660 4 0 1758 1853 1821 982 +2661 4 0 1835 1747 1792 1753 +2662 4 0 1747 1792 1752 1835 +2663 4 0 1792 1747 1932 1907 +2664 4 0 1907 1747 1753 1792 +2665 4 0 2080 1919 1432 2010 +2666 4 0 2080 1836 1919 2010 +2667 4 0 1771 2132 2098 1795 +2668 4 0 1570 1615 924 1365 +2669 4 0 1569 1516 1366 1715 +2670 4 0 1516 1569 1366 972 +2671 4 0 2315 1715 899 931 +2672 4 0 1615 1161 1086 1367 +2673 4 0 1445 970 1462 938 +2674 4 0 1038 1445 938 970 +2675 4 0 2119 1915 1954 2227 +2676 4 0 1734 2002 2032 1678 +2677 4 0 2218 1915 1954 2125 +2678 4 0 1445 1462 970 1474 +2679 4 0 2206 747 1803 757 +2680 4 0 1971 1866 1803 2206 +2681 4 0 1616 1446 256 1354 +2682 4 0 932 1606 2315 1368 +2683 4 0 932 2315 1606 899 +2684 4 0 2315 1617 1368 1606 +2685 4 0 2098 1804 2082 882 +2686 4 0 882 1804 883 1757 +2687 4 0 2098 1757 1804 882 +2688 4 0 882 1804 1911 883 +2689 4 0 882 1804 2082 1911 +2690 4 0 431 1436 1360 1434 +2691 4 0 2346 1436 1434 1360 +2692 4 0 1703 1434 467 464 +2693 4 0 300 1560 1655 2256 +2694 4 0 1474 981 1364 913 +2695 4 0 1431 1679 1912 1753 +2696 4 0 1912 1753 1679 1805 +2697 4 0 1805 1612 1679 728 +2698 4 0 1986 2206 1747 1805 +2699 4 0 1805 1747 1986 1753 +2700 4 0 728 2206 1805 1612 +2701 4 0 1675 1802 1852 784 +2702 4 0 1460 1234 1440 2228 +2703 4 0 784 752 742 1854 +2704 4 0 769 1852 752 784 +2705 4 0 1802 784 742 1854 +2706 4 0 1354 2265 2195 1438 +2707 4 0 1354 1438 335 2348 +2708 4 0 1445 1038 938 988 +2709 4 0 1980 1984 1878 2081 +2710 4 0 1984 2174 2081 1676 +2711 4 0 1980 1984 2081 1676 +2712 4 0 996 1865 2029 920 +2713 4 0 1058 986 1448 1686 +2714 4 0 1733 1235 1253 1197 +2715 4 0 1917 1733 1253 1197 +2716 4 0 1854 742 1691 752 +2717 4 0 1801 1802 742 1854 +2718 4 0 1852 752 784 1854 +2719 4 0 1802 1852 784 1854 +2720 4 0 1625 672 1752 1929 +2721 4 0 1835 1792 1752 1625 +2722 4 0 683 2125 1835 1625 +2723 4 0 1625 672 1929 679 +2724 4 0 1580 898 1480 924 +2725 4 0 1732 1661 1969 1755 +2726 4 0 1994 1969 2052 1755 +2727 4 0 2010 2080 1937 1744 +2728 4 0 1570 2269 1615 1365 +2729 4 0 2010 2080 1836 1937 +2730 4 0 1255 2331 1309 1499 +2731 4 0 930 1615 1599 1367 +2732 4 0 1619 75 9 7 +2733 4 0 1619 95 9 75 +2734 4 0 1199 1423 1582 2301 +2735 4 0 1657 1129 1026 1055 +2736 4 0 1979 625 615 1857 +2737 4 0 1979 625 1857 1960 +2738 4 0 1581 1580 930 1615 +2739 4 0 1314 1689 1681 1683 +2740 4 0 1360 1481 2326 429 +2741 4 0 331 1349 1483 1399 +2742 4 0 930 1599 1615 1580 +2743 4 0 1700 341 313 1751 +2744 4 0 1446 275 260 338 +2745 4 0 1599 1480 1580 2352 +2746 4 0 1582 1615 1209 1199 +2747 4 0 1685 1885 1998 1851 +2748 4 0 1980 2081 1878 1831 +2749 4 0 1831 1671 1878 1980 +2750 4 0 1980 1831 1671 1720 +2751 4 0 1499 1309 1255 1261 +2752 4 0 1676 1831 1980 1720 +2753 4 0 1980 2081 1831 1676 +2754 4 0 1499 1255 1209 1261 +2755 4 0 2137 748 761 1834 +2756 4 0 2137 1756 1858 1834 +2757 4 0 683 1835 2125 1753 +2758 4 0 683 688 1835 702 +2759 4 0 1667 1893 1936 1720 +2760 4 0 1676 2072 1936 2191 +2761 4 0 1378 1837 1833 1614 +2762 4 0 1612 2310 1837 1614 +2763 4 0 1612 1378 1614 1837 +2764 4 0 1614 2310 1837 1964 +2765 4 0 1833 2090 1964 1837 +2766 4 0 1853 1894 1758 1795 +2767 4 0 2086 955 1795 2188 +2768 4 0 1878 742 2155 1691 +2769 4 0 1878 1801 697 742 +2770 4 0 2016 2226 2211 1814 +2771 4 0 1961 1932 1752 1839 +2772 4 0 672 676 1752 1839 +2773 4 0 1839 1932 1745 1961 +2774 4 0 1762 1996 1958 1916 +2775 4 0 1916 1991 1889 2015 +2776 4 0 1916 1889 1941 736 +2777 4 0 2116 1996 1958 1762 +2778 4 0 1916 2184 1817 2009 +2779 4 0 1406 1616 91 136 +2780 4 0 1996 1798 1916 2184 +2781 4 0 1197 1205 1253 1917 +2782 4 0 1829 1253 1917 1689 +2783 4 0 1407 1406 1616 91 +2784 4 0 1685 1936 1844 692 +2785 4 0 1701 1765 1916 2025 +2786 4 0 1701 736 1916 1941 +2787 4 0 1981 692 689 1844 +2788 4 0 1844 1936 1981 692 +2789 4 0 1844 692 689 2052 +2790 4 0 2240 2052 1998 1760 +2791 4 0 680 1845 2169 1806 +2792 4 0 1806 1845 1927 1982 +2793 4 0 680 1845 1514 2169 +2794 4 0 1955 1806 2158 1992 +2795 4 0 1768 1729 128 1350 +2796 4 0 1720 1893 1671 1667 +2797 4 0 1942 1725 2001 1791 +2798 4 0 1887 2289 1927 1982 +2799 4 0 1469 457 498 485 +2800 4 0 493 1709 1469 1357 +2801 4 0 1737 879 1713 2076 +2802 4 0 1593 497 458 486 +2803 4 0 1713 1737 2076 2089 +2804 4 0 1406 136 1354 1616 +2805 4 0 1406 2195 1354 2265 +2806 4 0 2304 1310 1262 1956 +2807 4 0 1207 1273 1786 1621 +2808 4 0 1342 1786 1273 1621 +2809 4 0 2013 1685 1755 1942 +2810 4 0 1760 2240 2173 1998 +2811 4 0 1363 844 1583 819 +2812 4 0 1622 1264 1789 1300 +2813 4 0 1620 1018 945 1003 +2814 4 0 1566 819 798 1363 +2815 4 0 1818 801 810 1630 +2816 4 0 2283 1622 1789 1060 +2817 4 0 1365 1211 2210 1171 +2818 4 0 2301 1010 1365 1477 +2819 4 0 859 1620 1623 945 +2820 4 0 320 2179 1659 289 +2821 4 0 320 2348 1659 2179 +2822 4 0 1620 1623 945 1018 +2823 4 0 1018 958 1623 945 +2824 4 0 1701 736 1959 1916 +2825 4 0 1732 2092 1994 1969 +2826 4 0 2009 1817 1930 2088 +2827 4 0 2072 1671 2155 1831 +2828 4 0 715 2221 1851 699 +2829 4 0 1984 2174 1676 1851 +2830 4 0 113 2252 2319 105 +2831 4 0 1734 994 1904 979 +2832 4 0 1734 1678 1848 1899 +2833 4 0 1812 1984 1980 1998 +2834 4 0 66 18 1607 62 +2835 4 0 1812 1811 1980 1984 +2836 4 0 2081 2221 2072 1676 +2837 4 0 1607 66 62 105 +2838 4 0 1750 2251 2243 2192 +2839 4 0 1607 62 18 20 +2840 4 0 1584 1376 1709 1357 +2841 4 0 1593 497 486 1470 +2842 4 0 1709 457 1469 448 +2843 4 0 1930 1817 1993 2088 +2844 4 0 2003 1930 2088 2009 +2845 4 0 2210 1477 1263 1243 +2846 4 0 1917 1702 1829 1689 +2847 4 0 2309 1585 2253 1488 +2848 4 0 1855 1742 1910 1830 +2849 4 0 2098 1758 1855 1757 +2850 4 0 1884 1830 1910 1821 +2851 4 0 1855 1910 1750 1758 +2852 4 0 1757 1855 1750 1758 +2853 4 0 593 591 616 1665 +2854 4 0 2098 1920 1855 1758 +2855 4 0 1948 1777 1970 1855 +2856 4 0 2112 1949 668 624 +2857 4 0 1905 1960 1949 624 +2858 4 0 2133 55 1484 1695 +2859 4 0 1372 1699 1362 849 +2860 4 0 467 491 1703 464 +2861 4 0 499 1703 467 491 +2862 4 0 1979 1905 1999 612 +2863 4 0 2317 497 1470 486 +2864 4 0 615 621 1990 1857 +2865 4 0 1469 498 2322 485 +2866 4 0 816 1627 838 814 +2867 4 0 2137 1858 748 1834 +2868 4 0 1627 838 2324 842 +2869 4 0 748 2137 2143 1858 +2870 4 0 1668 417 366 416 +2871 4 0 1814 1759 2211 1886 +2872 4 0 1817 714 2083 721 +2873 4 0 2071 541 512 511 +2874 4 0 1889 2083 721 1817 +2875 4 0 1008 2273 1033 2024 +2876 4 0 1006 1367 1506 2049 +2877 4 0 1031 2327 2049 1006 +2878 4 0 1848 2332 1861 1934 +2879 4 0 1814 2226 2211 1863 +2880 4 0 2226 2172 1967 1549 +2881 4 0 1829 1689 1702 1947 +2882 4 0 1702 1946 1947 1924 +2883 4 0 2325 1370 1257 1415 +2884 4 0 1585 1369 926 967 +2885 4 0 190 259 1600 1557 +2886 4 0 2097 1860 2028 753 +2887 4 0 1746 1866 2075 1932 +2888 4 0 1746 1932 1747 1866 +2889 4 0 1866 1746 2075 2167 +2890 4 0 1543 410 388 2254 +2891 4 0 1954 1806 1927 1982 +2892 4 0 2097 2028 1860 1811 +2893 4 0 1954 1972 1982 1927 +2894 4 0 1476 1013 2313 1371 +2895 4 0 2014 1867 1976 2197 +2896 4 0 1917 1696 1702 2281 +2897 4 0 1867 1746 1932 1896 +2898 4 0 1867 1943 1931 1746 +2899 4 0 1917 1215 1696 2281 +2900 4 0 1852 1670 1854 2028 +2901 4 0 1585 1369 967 1522 +2902 4 0 1868 2169 2037 1794 +2903 4 0 1921 2169 2037 1868 +2904 4 0 625 615 1857 621 +2905 4 0 1988 1957 1799 2077 +2906 4 0 1799 1918 1538 1549 +2907 4 0 758 1820 1872 1931 +2908 4 0 2316 94 1935 2161 +2909 4 0 94 64 1935 2161 +2910 4 0 758 1872 2065 1931 +2911 4 0 271 323 1824 1350 +2912 4 0 2264 1808 1824 1350 +2913 4 0 122 65 1619 95 +2914 4 0 1193 1520 1251 1621 +2915 4 0 1193 1520 1225 1251 +2916 4 0 2225 2196 848 820 +2917 4 0 2225 2196 1361 848 +2918 4 0 1602 820 2196 1609 +2919 4 0 1877 791 1648 773 +2920 4 0 2225 1609 820 790 +2921 4 0 1673 802 822 839 +2922 4 0 1610 822 839 1673 +2923 4 0 22 20 70 1723 +2924 4 0 70 62 2319 20 +2925 4 0 1723 2319 20 70 +2926 4 0 2020 2124 1897 1987 +2927 4 0 1897 2108 2124 2020 +2928 4 0 2295 1874 1967 2137 +2929 4 0 1851 2221 2191 699 +2930 4 0 2191 692 1851 699 +2931 4 0 2082 1841 884 1911 +2932 4 0 2082 884 1841 2099 +2933 4 0 1914 1841 2099 1763 +2934 4 0 2132 2098 1879 2146 +2935 4 0 1879 2131 2086 2188 +2936 4 0 1737 2089 1882 2076 +2937 4 0 1433 803 825 823 +2938 4 0 2056 1902 1847 1883 +2939 4 0 1847 2037 2169 1883 +2940 4 0 1854 742 1878 1691 +2941 4 0 1854 1801 1878 742 +2942 4 0 2099 1884 2098 1684 +2943 4 0 1627 1816 783 788 +2944 4 0 1685 692 1885 1851 +2945 4 0 1885 1685 1844 692 +2946 4 0 2052 692 1885 1844 +2947 4 0 728 747 1803 2206 +2948 4 0 1455 2199 2095 737 +2949 4 0 2000 1794 1886 2199 +2950 4 0 1615 1086 1599 1367 +2951 4 0 1493 168 1349 1597 +2952 4 0 1493 1351 168 1597 +2953 4 0 1493 1349 168 225 +2954 4 0 1845 1887 2164 1988 +2955 4 0 1988 1887 1927 1845 +2956 4 0 785 743 1860 1802 +2957 4 0 743 1802 1801 1860 +2958 4 0 1670 1890 723 752 +2959 4 0 730 743 1860 753 +2960 4 0 753 743 1860 785 +2961 4 0 1890 1691 723 752 +2962 4 0 1802 1852 1854 2028 +2963 4 0 1890 1691 1878 2081 +2964 4 0 1761 1890 723 1670 +2965 4 0 1761 1890 1878 2081 +2966 4 0 268 307 1654 278 +2967 4 0 322 1631 1356 2043 +2968 4 0 1930 1857 1905 1990 +2969 4 0 1930 1960 1949 1905 +2970 4 0 1513 1539 1440 1512 +2971 4 0 1836 2030 2189 1713 +2972 4 0 2329 617 627 665 +2973 4 0 2329 641 617 665 +2974 4 0 1713 1892 2189 894 +2975 4 0 594 615 614 1999 +2976 4 0 594 1999 614 1665 +2977 4 0 1836 2189 2030 2141 +2978 4 0 2329 716 665 2048 +2979 4 0 1720 2072 1671 1893 +2980 4 0 1720 1936 2072 1893 +2981 4 0 2072 1936 650 1893 +2982 4 0 586 567 571 589 +2983 4 0 596 589 586 571 +2984 4 0 596 589 1496 586 +2985 4 0 529 2138 2071 2069 +2986 4 0 1524 2071 529 2138 +2987 4 0 1524 529 1577 2138 +2988 4 0 624 1979 1905 1960 +2989 4 0 1867 1746 1896 1943 +2990 4 0 1896 1943 1746 1745 +2991 4 0 1448 2121 1368 2273 +2992 4 0 261 1778 1738 286 +2993 4 0 1647 284 2229 303 +2994 4 0 1897 1919 1830 1763 +2995 4 0 1987 1919 1897 1763 +2996 4 0 258 81 124 142 +2997 4 0 284 124 1875 2229 +2998 4 0 1987 2124 1897 946 +2999 4 0 1364 1628 1459 797 +3000 4 0 1652 107 1975 2 +3001 4 0 1652 1 2 1975 +3002 4 0 2284 1353 1618 135 +3003 4 0 1568 1353 333 2344 +3004 4 0 1970 1742 2243 1750 +3005 4 0 333 1903 2344 1353 +3006 4 0 2051 2002 2074 2007 +3007 4 0 2344 1618 1588 1353 +3008 4 0 1903 2344 1353 1500 +3009 4 0 906 1856 1970 918 +3010 4 0 1685 1936 1755 1844 +3011 4 0 2013 1936 1755 1685 +3012 4 0 1397 64 10 12 +3013 4 0 1397 88 64 12 +3014 4 0 1755 1936 1981 1844 +3015 4 0 2013 628 1755 1936 +3016 4 0 1755 1936 628 1981 +3017 4 0 2214 1424 1840 1848 +3018 4 0 1846 2089 2076 1708 +3019 4 0 1873 1909 1924 2193 +3020 4 0 2200 2090 1378 1431 +3021 4 0 2200 1548 2090 1431 +3022 4 0 57 1652 1975 1 +3023 4 0 1430 366 1668 367 +3024 4 0 1760 1998 1718 1755 +3025 4 0 1734 1904 1678 979 +3026 4 0 1686 2121 1448 1058 +3027 4 0 1515 1687 935 1029 +3028 4 0 1687 961 935 1029 +3029 4 0 1687 935 961 1380 +3030 4 0 1990 1999 615 1979 +3031 4 0 1589 1399 1349 331 +3032 4 0 2214 1424 1848 1900 +3033 4 0 1589 2161 1349 1399 +3034 4 0 2164 1455 740 1901 +3035 4 0 2164 1988 1901 740 +3036 4 0 88 1397 72 12 +3037 4 0 1398 1397 12 72 +3038 4 0 1349 1493 1597 2272 +3039 4 0 57 1652 98 1975 +3040 4 0 1688 561 513 531 +3041 4 0 1688 513 1603 531 +3042 4 0 1403 2272 1597 1400 +3043 4 0 1756 1902 2183 1883 +3044 4 0 1813 1902 2170 2073 +3045 4 0 2073 1902 2183 1756 +3046 4 0 1397 1589 64 88 +3047 4 0 1734 1952 992 1904 +3048 4 0 992 1734 2080 1952 +3049 4 0 1954 1907 1927 2006 +3050 4 0 1866 1810 2075 1907 +3051 4 0 1866 1907 1747 1810 +3052 4 0 1954 1907 2006 1753 +3053 4 0 1753 1747 1907 1810 +3054 4 0 1927 1907 2075 2006 +3055 4 0 1403 398 1349 2272 +3056 4 0 2227 2022 1954 2119 +3057 4 0 2101 1954 2022 2119 +3058 4 0 2141 1987 2020 1836 +3059 4 0 1099 1119 1590 1402 +3060 4 0 1590 1123 1187 1107 +3061 4 0 1099 1214 1174 1236 +3062 4 0 1099 1174 1083 1236 +3063 4 0 1099 1494 1214 1590 +3064 4 0 1721 1895 1698 1826 +3065 4 0 1590 1187 1248 2235 +3066 4 0 2021 2156 2113 1861 +3067 4 0 292 2252 178 1571 +3068 4 0 69 1693 48 50 +3069 4 0 1930 2126 1989 1944 +3070 4 0 69 48 1693 83 +3071 4 0 1942 1725 1791 1908 +3072 4 0 1857 656 1960 625 +3073 4 0 656 644 625 1857 +3074 4 0 1813 1843 2170 1902 +3075 4 0 1979 1990 1857 615 +3076 4 0 1920 1910 1758 1821 +3077 4 0 1855 1910 1758 1920 +3078 4 0 2146 2098 1586 2021 +3079 4 0 1695 999 1484 1092 +3080 4 0 1684 1928 1950 2099 +3081 4 0 321 2252 1435 2224 +3082 4 0 728 1912 1679 1805 +3083 4 0 1913 1756 1759 1868 +3084 4 0 1913 1847 2073 1756 +3085 4 0 2141 1987 1836 2153 +3086 4 0 1913 2073 2137 1756 +3087 4 0 1718 2013 2011 1755 +3088 4 0 1718 1755 1942 2013 +3089 4 0 2153 1919 1987 1836 +3090 4 0 1913 1756 2137 1759 +3091 4 0 1999 2012 1905 1990 +3092 4 0 1979 624 1905 612 +3093 4 0 1671 2019 1878 1980 +3094 4 0 1980 2019 1878 1801 +3095 4 0 1997 1916 2015 1762 +3096 4 0 1916 1991 2015 1762 +3097 4 0 1725 2017 2013 1942 +3098 4 0 1671 1667 1893 2140 +3099 4 0 831 1699 847 1648 +3100 4 0 831 847 1699 1372 +3101 4 0 451 1358 2085 2287 +3102 4 0 451 2085 482 2287 +3103 4 0 2034 1914 1841 884 +3104 4 0 451 2328 1358 2287 +3105 4 0 1942 1725 2017 2001 +3106 4 0 2032 2002 2051 2007 +3107 4 0 884 1841 2099 1914 +3108 4 0 1914 2089 2099 1737 +3109 4 0 1942 2019 1791 2001 +3110 4 0 1430 1668 366 416 +3111 4 0 1649 1474 1463 1364 +3112 4 0 2147 417 367 1668 +3113 4 0 1762 724 2015 734 +3114 4 0 2319 62 70 113 +3115 4 0 1723 2319 70 2252 +3116 4 0 2319 113 70 2252 +3117 4 0 1649 1364 1463 865 +3118 4 0 1586 2027 2021 1767 +3119 4 0 2021 2152 2332 2027 +3120 4 0 1980 2019 1801 1953 +3121 4 0 2030 2020 2141 2018 +3122 4 0 1425 1424 1900 1898 +3123 4 0 1548 1813 2090 1915 +3124 4 0 1704 1647 2229 303 +3125 4 0 1817 682 714 1989 +3126 4 0 1990 2003 1930 2110 +3127 4 0 2349 722 655 637 +3128 4 0 2083 682 714 1817 +3129 4 0 1601 611 646 597 +3130 4 0 1830 1919 1869 1763 +3131 4 0 2080 1763 1869 1919 +3132 4 0 2080 1763 1919 1836 +3133 4 0 1601 2349 611 637 +3134 4 0 1601 646 611 2349 +3135 4 0 1601 637 611 599 +3136 4 0 1595 419 413 458 +3137 4 0 1560 2300 1352 298 +3138 4 0 2339 406 419 439 +3139 4 0 1665 2012 1999 614 +3140 4 0 1790 355 413 363 +3141 4 0 1920 1853 1684 1821 +3142 4 0 2098 1684 1884 1920 +3143 4 0 1999 2012 1990 614 +3144 4 0 1684 1884 1920 1821 +3145 4 0 478 1594 1358 1593 +3146 4 0 1884 1910 1920 1821 +3147 4 0 2013 2017 1667 1942 +3148 4 0 1997 1916 1889 2015 +3149 4 0 2289 1932 1927 1972 +3150 4 0 1560 298 355 363 +3151 4 0 1898 1424 1900 2007 +3152 4 0 206 298 1560 1352 +3153 4 0 1905 2094 2159 1990 +3154 4 0 1905 626 2094 616 +3155 4 0 1806 1988 1921 1992 +3156 4 0 1352 364 1560 1551 +3157 4 0 1921 2158 1992 1913 +3158 4 0 2339 1790 413 363 +3159 4 0 2339 413 419 363 +3160 4 0 2115 1921 1913 1868 +3161 4 0 1721 2133 1895 1826 +3162 4 0 2135 1721 1826 2133 +3163 4 0 1921 2158 1806 1992 +3164 4 0 1930 1817 1989 1993 +3165 4 0 2115 1921 1868 2000 +3166 4 0 2115 1988 1921 2000 +3167 4 0 1713 894 879 1922 +3168 4 0 2020 1897 1763 1987 +3169 4 0 2135 1826 1596 2133 +3170 4 0 2098 2021 2146 1727 +3171 4 0 2300 314 1608 211 +3172 4 0 2300 211 1608 1352 +3173 4 0 2223 286 1633 1738 +3174 4 0 2098 1767 2021 2099 +3175 4 0 2009 2184 1996 1916 +3176 4 0 1590 1248 1402 2235 +3177 4 0 1927 2198 1976 1932 +3178 4 0 2075 1887 1976 1927 +3179 4 0 1927 1976 2075 1932 +3180 4 0 1988 1887 2075 1927 +3181 4 0 68 1636 47 82 +3182 4 0 1810 1866 2075 2167 +3183 4 0 49 68 1636 47 +3184 4 0 1099 1494 1174 1214 +3185 4 0 1771 1795 2098 1758 +3186 4 0 2131 955 2086 2188 +3187 4 0 1763 2089 1928 2099 +3188 4 0 1590 1151 1494 1214 +3189 4 0 1763 1928 2080 1869 +3190 4 0 1590 1151 1123 1105 +3191 4 0 1977 1763 2089 1928 +3192 4 0 672 1839 1752 1929 +3193 4 0 2198 1896 1932 711 +3194 4 0 1835 1625 1752 1929 +3195 4 0 1105 2064 1494 1174 +3196 4 0 1996 1916 2025 1748 +3197 4 0 1932 1896 1746 1745 +3198 4 0 1835 1625 1929 679 +3199 4 0 1504 165 234 157 +3200 4 0 1504 102 157 221 +3201 4 0 1504 102 221 241 +3202 4 0 1318 1271 1316 2233 +3203 4 0 1905 1979 1990 1857 +3204 4 0 1318 1271 2233 1536 +3205 4 0 2115 1814 2000 1759 +3206 4 0 2115 1868 1759 2000 +3207 4 0 1814 1863 1759 2115 +3208 4 0 2115 1913 1759 1868 +3209 4 0 2115 1913 2137 1759 +3210 4 0 2115 1759 2137 1863 +3211 4 0 2018 1763 1841 2030 +3212 4 0 1934 2332 1861 923 +3213 4 0 2077 2162 2186 740 +3214 4 0 1938 651 660 1762 +3215 4 0 1799 1770 1963 2167 +3216 4 0 1887 1901 2164 1988 +3217 4 0 2289 1901 1514 1887 +3218 4 0 635 1725 1940 647 +3219 4 0 1432 1869 992 2045 +3220 4 0 279 198 267 1710 +3221 4 0 279 267 1571 1710 +3222 4 0 1631 202 283 1711 +3223 4 0 69 1712 1693 50 +3224 4 0 1916 1798 1941 2184 +3225 4 0 1831 2072 1671 1720 +3226 4 0 1688 518 524 1603 +3227 4 0 1425 1586 2027 2152 +3228 4 0 1603 518 524 490 +3229 4 0 1764 1766 463 1603 +3230 4 0 2021 1586 2152 2027 +3231 4 0 1980 2019 1791 1942 +3232 4 0 1683 1947 1829 1909 +3233 4 0 2249 1931 1867 1943 +3234 4 0 1931 1746 1943 2220 +3235 4 0 1938 1944 687 2112 +3236 4 0 1938 1762 713 1944 +3237 4 0 1762 1989 2105 1944 +3238 4 0 1930 1993 1989 2126 +3239 4 0 1715 1155 1087 1068 +3240 4 0 1715 1366 1200 1142 +3241 4 0 2169 680 1945 1514 +3242 4 0 1713 1892 894 1922 +3243 4 0 2285 1570 1554 2269 +3244 4 0 625 1857 644 621 +3245 4 0 1857 1990 2110 621 +3246 4 0 1570 1599 1482 1480 +3247 4 0 2015 733 721 1889 +3248 4 0 1804 1948 883 1757 +3249 4 0 1889 1991 721 2015 +3250 4 0 883 1948 1856 1757 +3251 4 0 1948 883 2091 1911 +3252 4 0 1804 1948 1911 883 +3253 4 0 1833 2158 2073 1913 +3254 4 0 1833 2073 2137 1913 +3255 4 0 1224 2228 1234 1278 +3256 4 0 2228 1460 1234 1641 +3257 4 0 1873 1829 1946 1909 +3258 4 0 1647 63 114 71 +3259 4 0 1702 1829 1946 1696 +3260 4 0 1829 1259 1946 1696 +3261 4 0 114 1556 63 1647 +3262 4 0 2230 1233 1642 1277 +3263 4 0 1947 1829 1909 1946 +3264 4 0 1461 1233 1642 2230 +3265 4 0 1259 1829 1946 1873 +3266 4 0 1702 1829 1947 1946 +3267 4 0 1760 2052 1998 1755 +3268 4 0 1828 829 839 874 +3269 4 0 1601 611 575 599 +3270 4 0 1996 1916 1765 2025 +3271 4 0 1810 1747 1805 1753 +3272 4 0 1876 772 781 704 +3273 4 0 1601 611 597 582 +3274 4 0 1930 2126 1944 1949 +3275 4 0 1905 1949 2112 624 +3276 4 0 1602 846 820 832 +3277 4 0 1602 820 846 2196 +3278 4 0 1767 2027 2113 1950 +3279 4 0 1673 1926 802 771 +3280 4 0 1722 774 790 1925 +3281 4 0 1722 790 774 1609 +3282 4 0 2102 1848 2027 1950 +3283 4 0 2102 1928 1848 1950 +3284 4 0 1680 752 769 1852 +3285 4 0 1950 2027 2113 2089 +3286 4 0 1667 645 1936 650 +3287 4 0 1940 647 1791 661 +3288 4 0 1725 647 1791 1940 +3289 4 0 1489 446 1668 445 +3290 4 0 1904 1734 1952 994 +3291 4 0 1904 1952 983 994 +3292 4 0 1720 2072 1936 1676 +3293 4 0 32 92 2084 1731 +3294 4 0 1763 1713 1977 2089 +3295 4 0 2169 1847 1806 1921 +3296 4 0 2038 532 523 552 +3297 4 0 1735 520 535 549 +3298 4 0 1736 510 521 550 +3299 4 0 522 533 2042 551 +3300 4 0 1889 721 2083 1941 +3301 4 0 629 1725 1940 635 +3302 4 0 348 1386 2224 1351 +3303 4 0 2108 2020 1897 2018 +3304 4 0 1970 1948 1951 1777 +3305 4 0 506 2038 532 523 +3306 4 0 2322 2038 506 523 +3307 4 0 520 1735 535 503 +3308 4 0 1510 503 1735 520 +3309 4 0 1682 510 521 1736 +3310 4 0 1959 1997 735 1748 +3311 4 0 1607 2319 62 20 +3312 4 0 2317 507 2042 522 +3313 4 0 1753 1907 2006 1810 +3314 4 0 1954 1955 2006 1927 +3315 4 0 1954 1806 2166 1955 +3316 4 0 1607 2319 2224 105 +3317 4 0 1954 1955 1927 1806 +3318 4 0 1954 2166 2090 1955 +3319 4 0 1353 1492 255 1557 +3320 4 0 265 255 1353 1578 +3321 4 0 2252 1435 2224 1351 +3322 4 0 1377 379 418 362 +3323 4 0 2125 1915 1954 2119 +3324 4 0 2125 2119 1954 1625 +3325 4 0 1791 677 1953 718 +3326 4 0 1791 718 1953 1860 +3327 4 0 2295 2137 1967 1957 +3328 4 0 1814 2226 1863 1957 +3329 4 0 1957 1863 2137 1967 +3330 4 0 2295 1549 1918 1799 +3331 4 0 2014 2075 1867 1931 +3332 4 0 494 1434 1479 1360 +3333 4 0 2218 1915 2090 1954 +3334 4 0 2189 907 1892 1741 +3335 4 0 1937 2189 2208 1846 +3336 4 0 2348 1354 87 140 +3337 4 0 676 1961 1752 1839 +3338 4 0 1839 1961 1745 684 +3339 4 0 1031 2049 2281 1006 +3340 4 0 1033 2347 2273 1008 +3341 4 0 1903 86 84 1353 +3342 4 0 2084 2282 86 1903 +3343 4 0 1916 1941 1889 2184 +3344 4 0 2184 1941 2083 657 +3345 4 0 2053 662 1958 1748 +3346 4 0 1996 2053 1958 1748 +3347 4 0 2116 1958 1996 2157 +3348 4 0 1996 1748 2025 2053 +3349 4 0 2137 1992 1964 1833 +3350 4 0 1762 2009 1996 1916 +3351 4 0 2009 1996 2116 1762 +3352 4 0 1625 672 2101 1752 +3353 4 0 1752 1961 1972 1932 +3354 4 0 1962 662 2116 660 +3355 4 0 2177 1963 2167 1799 +3356 4 0 2177 2109 2167 1963 +3357 4 0 1967 2137 761 2130 +3358 4 0 906 2219 1951 1970 +3359 4 0 1951 906 1970 2108 +3360 4 0 757 1971 1803 2206 +3361 4 0 2234 2167 2248 1971 +3362 4 0 2234 2206 2167 1971 +3363 4 0 2184 652 657 2083 +3364 4 0 1955 2158 1833 1992 +3365 4 0 1442 1664 1446 423 +3366 4 0 1442 2266 1407 1664 +3367 4 0 1976 1896 1932 2198 +3368 4 0 1976 1867 1932 1896 +3369 4 0 1976 2075 1932 1867 +3370 4 0 1378 2090 1833 1837 +3371 4 0 1614 1964 1837 1833 +3372 4 0 2137 1833 1964 1614 +3373 4 0 2080 1763 1977 1928 +3374 4 0 1754 2080 1846 1977 +3375 4 0 1905 2094 1990 2012 +3376 4 0 2032 1869 2051 2002 +3377 4 0 1869 1821 2008 2045 +3378 4 0 1806 1845 1982 680 +3379 4 0 1938 1962 1762 660 +3380 4 0 1887 2289 1982 1514 +3381 4 0 673 1806 1982 680 +3382 4 0 673 1972 680 1982 +3383 4 0 680 2289 1982 1972 +3384 4 0 1708 1985 1861 2089 +3385 4 0 1983 693 1940 1978 +3386 4 0 1861 1420 2156 2245 +3387 4 0 700 1812 1791 1978 +3388 4 0 1978 1908 1791 1940 +3389 4 0 728 1803 1986 2206 +3390 4 0 728 2206 1986 1805 +3391 4 0 1695 1666 1484 999 +3392 4 0 1695 1660 1666 999 +3393 4 0 2081 2221 2155 2072 +3394 4 0 1612 1378 1837 1810 +3395 4 0 1676 2072 1831 1720 +3396 4 0 628 634 1755 1981 +3397 4 0 944 2010 1937 954 +3398 4 0 902 1708 1985 2242 +3399 4 0 2242 908 1985 902 +3400 4 0 2310 1810 1964 755 +3401 4 0 1912 1986 728 702 +3402 4 0 1912 1805 728 1986 +3403 4 0 1753 1986 1912 702 +3404 4 0 1805 1986 1912 1753 +3405 4 0 1908 1940 1978 1983 +3406 4 0 1797 1994 2204 1983 +3407 4 0 1425 1767 1586 2131 +3408 4 0 2131 1767 1586 2086 +3409 4 0 1425 1767 2027 1586 +3410 4 0 2310 1810 755 2087 +3411 4 0 1992 1913 2137 2115 +3412 4 0 1791 1860 1980 1812 +3413 4 0 1860 1811 1980 1812 +3414 4 0 1811 1980 1801 1860 +3415 4 0 2289 1769 1901 1887 +3416 4 0 1887 2198 1927 2289 +3417 4 0 1791 677 661 1995 +3418 4 0 1791 1995 661 2001 +3419 4 0 253 1637 1468 344 +3420 4 0 2004 879 1713 1737 +3421 4 0 1386 1607 2224 105 +3422 4 0 209 1773 277 185 +3423 4 0 1633 1773 277 209 +3424 4 0 1713 1922 879 2004 +3425 4 0 280 1634 1966 208 +3426 4 0 651 1762 1938 2112 +3427 4 0 207 1635 1965 281 +3428 4 0 2117 2009 1762 1930 +3429 4 0 2159 1930 2003 2117 +3430 4 0 2003 1930 2009 2117 +3431 4 0 201 282 1775 1637 +3432 4 0 49 68 1776 1636 +3433 4 0 2181 2000 2199 2169 +3434 4 0 2000 2169 1868 1794 +3435 4 0 2181 1455 2199 2000 +3436 4 0 1799 2075 1810 2006 +3437 4 0 1955 1992 1964 2006 +3438 4 0 1955 1954 1753 2090 +3439 4 0 2006 1907 2075 1810 +3440 4 0 556 1651 509 526 +3441 4 0 1992 1799 1964 2006 +3442 4 0 1810 1955 1753 2090 +3443 4 0 2030 1763 1841 1914 +3444 4 0 1914 1713 1763 2089 +3445 4 0 629 1797 1940 1725 +3446 4 0 629 1692 1940 1797 +3447 4 0 1778 75 1619 7 +3448 4 0 1144 1129 1657 1055 +3449 4 0 1779 1657 1055 1144 +3450 4 0 1137 1780 1052 2327 +3451 4 0 1100 1249 1182 1120 +3452 4 0 1342 1621 1273 1340 +3453 4 0 2062 1239 1287 1227 +3454 4 0 954 2010 1937 1744 +3455 4 0 1051 2024 1781 1138 +3456 4 0 1624 1782 1143 1050 +3457 4 0 1786 1342 1287 1344 +3458 4 0 761 1967 1874 2137 +3459 4 0 1864 1348 1346 1268 +3460 4 0 2051 1869 2008 2002 +3461 4 0 1864 1346 1249 1268 +3462 4 0 1799 1957 755 2295 +3463 4 0 2295 2137 1957 755 +3464 4 0 1810 1964 755 1799 +3465 4 0 2077 1957 1799 1538 +3466 4 0 1921 2169 1868 2000 +3467 4 0 2077 1957 2226 1814 +3468 4 0 1538 2077 2016 758 +3469 4 0 2016 1814 2077 2226 +3470 4 0 1538 2077 758 1799 +3471 4 0 2077 2016 2186 2162 +3472 4 0 1410 135 2284 1618 +3473 4 0 2036 1948 1911 1777 +3474 4 0 1908 1812 1980 1998 +3475 4 0 1791 1812 1980 1908 +3476 4 0 2159 1930 1905 1990 +3477 4 0 2159 2003 1930 1990 +3478 4 0 2197 741 1896 720 +3479 4 0 1410 135 1618 90 +3480 4 0 2026 978 1821 2222 +3481 4 0 190 145 135 1410 +3482 4 0 2332 2027 1848 1861 +3483 4 0 1940 677 661 1791 +3484 4 0 1254 1061 1788 2347 +3485 4 0 1083 1254 1061 1788 +3486 4 0 2030 1892 1508 1741 +3487 4 0 2030 1741 1508 2018 +3488 4 0 1622 1264 2283 1789 +3489 4 0 2032 2007 1900 1678 +3490 4 0 1586 1767 2021 2098 +3491 4 0 1734 2032 1848 1678 +3492 4 0 1900 2051 1684 2007 +3493 4 0 1928 1869 2102 2032 +3494 4 0 1425 1898 1900 1767 +3495 4 0 2214 2102 1848 2027 +3496 4 0 1425 1767 2131 1898 +3497 4 0 2214 1900 1848 2102 +3498 4 0 1914 2034 1737 884 +3499 4 0 1804 1777 1911 1948 +3500 4 0 1713 2034 1737 1914 +3501 4 0 1846 2035 1708 1754 +3502 4 0 1708 1754 2035 2044 +3503 4 0 1848 2035 1977 2182 +3504 4 0 1754 1977 1846 2035 +3505 4 0 2112 1944 668 1949 +3506 4 0 1930 1993 2126 1949 +3507 4 0 1944 1949 2112 1930 +3508 4 0 1951 1777 1948 2036 +3509 4 0 1868 2037 1756 1794 +3510 4 0 1794 2037 1756 1883 +3511 4 0 2037 1847 1913 1756 +3512 4 0 1913 2037 1756 1868 +3513 4 0 1847 1756 2037 1883 +3514 4 0 1821 2040 978 993 +3515 4 0 2045 1821 2040 2059 +3516 4 0 1756 2073 1858 2183 +3517 4 0 1756 1847 1902 1883 +3518 4 0 1970 2219 1951 1948 +3519 4 0 2036 2091 1911 1948 +3520 4 0 1951 1948 2219 2036 +3521 4 0 940 1620 945 1003 +3522 4 0 2143 2073 2137 1833 +3523 4 0 2137 2143 1833 1614 +3524 4 0 1701 1941 1916 1798 +3525 4 0 2242 2044 1861 923 +3526 4 0 1934 1861 2044 923 +3527 4 0 2184 2088 1817 2009 +3528 4 0 2184 663 1941 657 +3529 4 0 1856 1970 918 1750 +3530 4 0 1755 1844 689 2052 +3531 4 0 1620 1706 1018 2312 +3532 4 0 1919 1869 1432 2031 +3533 4 0 2052 1844 1998 1755 +3534 4 0 1919 2031 1432 1793 +3535 4 0 743 1801 718 1860 +3536 4 0 1860 1953 1801 718 +3537 4 0 1624 1098 1143 1172 +3538 4 0 1624 1149 1098 1172 +3539 4 0 1997 733 1889 736 +3540 4 0 1624 1515 1149 1366 +3541 4 0 1889 733 1941 736 +3542 4 0 1997 1889 733 2015 +3543 4 0 1684 2051 2008 2074 +3544 4 0 1684 2051 2074 2007 +3545 4 0 1684 1869 2008 2051 +3546 4 0 1847 2056 1843 1902 +3547 4 0 662 1962 1958 1748 +3548 4 0 1996 1958 2053 2157 +3549 4 0 2044 953 962 1934 +3550 4 0 1835 2055 1747 2078 +3551 4 0 1713 879 2187 2076 +3552 4 0 1867 1943 1896 741 +3553 4 0 1955 1992 2006 1927 +3554 4 0 1992 1988 2075 1927 +3555 4 0 1992 2075 2006 1927 +3556 4 0 1992 1988 1927 1806 +3557 4 0 1955 1992 1927 1806 +3558 4 0 1626 609 613 588 +3559 4 0 2033 1988 758 2186 +3560 4 0 1626 2103 590 588 +3561 4 0 2077 2016 758 2186 +3562 4 0 649 618 666 653 +3563 4 0 649 618 1716 613 +3564 4 0 1690 640 717 666 +3565 4 0 649 618 1690 666 +3566 4 0 1945 680 2169 1849 +3567 4 0 1657 1579 1129 1520 +3568 4 0 1835 688 2078 702 +3569 4 0 1835 1929 2055 679 +3570 4 0 293 1631 1711 126 +3571 4 0 293 1631 1572 322 +3572 4 0 1631 202 254 312 +3573 4 0 675 674 2056 1883 +3574 4 0 1661 1772 689 1891 +3575 4 0 2024 1138 1058 1153 +3576 4 0 675 2056 2194 1849 +3577 4 0 2177 755 2109 1963 +3578 4 0 1896 741 1745 720 +3579 4 0 1896 741 1943 1745 +3580 4 0 1814 1886 2211 2134 +3581 4 0 2000 1814 2134 1886 +3582 4 0 911 2189 907 2208 +3583 4 0 1107 1147 2235 1078 +3584 4 0 2134 1886 2095 2000 +3585 4 0 1886 1794 737 2199 +3586 4 0 450 1357 414 2302 +3587 4 0 2246 975 2185 983 +3588 4 0 2080 2010 2185 2246 +3589 4 0 2080 1952 2185 992 +3590 4 0 1628 1815 789 778 +3591 4 0 1627 783 1816 775 +3592 4 0 1819 782 1629 776 +3593 4 0 1656 1871 548 553 +3594 4 0 548 1871 1656 519 +3595 4 0 2010 1793 2185 954 +3596 4 0 2073 1847 1902 1756 +3597 4 0 2241 701 2073 1547 +3598 4 0 2088 2083 656 644 +3599 4 0 656 644 1857 2088 +3600 4 0 1956 1210 1617 1509 +3601 4 0 2088 1930 2110 1857 +3602 4 0 2059 1821 2040 978 +3603 4 0 1930 2003 2088 2110 +3604 4 0 2014 2075 1976 1867 +3605 4 0 994 1952 983 2246 +3606 4 0 1638 1256 1210 1200 +3607 4 0 1956 1638 1262 1210 +3608 4 0 1638 1238 1256 1200 +3609 4 0 1897 946 1830 1919 +3610 4 0 1987 946 1897 1919 +3611 4 0 1638 1292 1238 2345 +3612 4 0 1638 1308 1292 2345 +3613 4 0 1684 2008 1821 2074 +3614 4 0 2123 6 60 4 +3615 4 0 6 74 2123 60 +3616 4 0 1791 677 1995 1953 +3617 4 0 1053 1147 1078 1472 +3618 4 0 1823 1049 1158 1074 +3619 4 0 1631 1356 295 197 +3620 4 0 1631 295 1356 2043 +3621 4 0 1905 616 2094 2012 +3622 4 0 2280 334 1468 1355 +3623 4 0 1993 682 656 1817 +3624 4 0 1817 682 656 2083 +3625 4 0 1817 682 1989 1993 +3626 4 0 1396 1275 1336 1334 +3627 4 0 1799 1992 1964 1957 +3628 4 0 1396 1394 1275 1231 +3629 4 0 1957 2137 1992 1964 +3630 4 0 1737 2076 1882 885 +3631 4 0 885 2076 1882 902 +3632 4 0 2187 885 902 2076 +3633 4 0 1396 1275 1281 1231 +3634 4 0 1988 2077 758 2186 +3635 4 0 1832 1828 2225 1361 +3636 4 0 1640 1231 2207 2255 +3637 4 0 1858 2137 2143 2073 +3638 4 0 2087 1612 1810 2206 +3639 4 0 2184 2083 2088 652 +3640 4 0 1848 1424 1678 1900 +3641 4 0 2088 1817 656 2083 +3642 4 0 569 563 583 559 +3643 4 0 2003 2088 2160 2009 +3644 4 0 2032 1900 1848 1678 +3645 4 0 1848 2032 2102 1900 +3646 4 0 1643 1267 1393 1296 +3647 4 0 1928 2089 1950 2099 +3648 4 0 1378 1810 1431 2090 +3649 4 0 2241 2090 1378 2200 +3650 4 0 1810 1431 2090 1753 +3651 4 0 1643 1290 1298 2067 +3652 4 0 1643 1290 2067 1246 +3653 4 0 1643 1290 1296 1298 +3654 4 0 723 2155 2081 715 +3655 4 0 1732 694 690 2092 +3656 4 0 1732 2204 1994 2092 +3657 4 0 2218 1548 1915 1800 +3658 4 0 1898 2131 1973 2149 +3659 4 0 2149 1898 2093 1973 +3660 4 0 1799 1918 1963 1770 +3661 4 0 2086 1684 1767 2098 +3662 4 0 1879 2086 2098 2132 +3663 4 0 2086 1795 2098 2132 +3664 4 0 2086 1767 1586 2098 +3665 4 0 1586 2086 2098 1879 +3666 4 0 13 2334 73 1768 +3667 4 0 2318 65 89 11 +3668 4 0 1831 2081 1878 2155 +3669 4 0 2120 677 1940 1791 +3670 4 0 1824 271 1350 1465 +3671 4 0 1878 697 1671 2155 +3672 4 0 2155 1671 1878 1831 +3673 4 0 2168 1579 1009 1520 +3674 4 0 1856 883 895 2091 +3675 4 0 2203 102 118 1444 +3676 4 0 2120 1860 2097 730 +3677 4 0 241 102 2203 1444 +3678 4 0 241 1504 102 1444 +3679 4 0 2120 1860 1812 2097 +3680 4 0 2036 2219 2091 1948 +3681 4 0 1887 2198 1976 1927 +3682 4 0 1887 1769 1901 2014 +3683 4 0 1887 1769 2014 1976 +3684 4 0 1944 2126 668 1949 +3685 4 0 1869 1830 2045 2031 +3686 4 0 1869 1684 2008 1821 +3687 4 0 224 1646 96 101 +3688 4 0 483 434 2106 475 +3689 4 0 483 501 475 2106 +3690 4 0 1759 767 2130 1863 +3691 4 0 2022 673 2166 1954 +3692 4 0 2148 673 2022 1954 +3693 4 0 1514 2289 1982 680 +3694 4 0 1899 1934 962 1840 +3695 4 0 1879 2098 1586 2146 +3696 4 0 1728 2089 2099 2113 +3697 4 0 2142 2082 2099 884 +3698 4 0 1763 2089 2099 1914 +3699 4 0 1944 2126 1989 2105 +3700 4 0 1944 687 668 2126 +3701 4 0 1988 1901 740 2014 +3702 4 0 2101 2148 2022 1954 +3703 4 0 1988 2033 2014 740 +3704 4 0 1988 1887 1901 2014 +3705 4 0 1752 1954 2101 1625 +3706 4 0 2075 1887 2014 1976 +3707 4 0 1752 2148 2101 1954 +3708 4 0 740 2077 2162 2095 +3709 4 0 1988 2014 2075 1887 +3710 4 0 1988 2014 2033 2075 +3711 4 0 1951 1970 1777 2108 +3712 4 0 1893 669 2140 650 +3713 4 0 2150 2031 1830 946 +3714 4 0 1796 2031 1830 2150 +3715 4 0 1728 2089 2156 1882 +3716 4 0 1861 1420 2245 1985 +3717 4 0 1944 687 2105 713 +3718 4 0 1762 2105 713 1944 +3719 4 0 1944 2126 2105 687 +3720 4 0 1366 1007 1624 1515 +3721 4 0 1504 165 252 234 +3722 4 0 1032 1007 1624 1366 +3723 4 0 1762 2105 1991 713 +3724 4 0 1854 1801 1860 1811 +3725 4 0 1860 1802 1801 1854 +3726 4 0 680 1847 2169 1849 +3727 4 0 2169 1847 680 1806 +3728 4 0 1849 680 1847 673 +3729 4 0 673 680 1847 1806 +3730 4 0 1806 1988 2100 1921 +3731 4 0 1074 1650 1103 1180 +3732 4 0 2316 2123 6 74 +3733 4 0 1845 1988 2100 1806 +3734 4 0 1650 1180 1426 1088 +3735 4 0 1088 1823 1063 1219 +3736 4 0 1088 1180 1158 1229 +3737 4 0 755 2087 2177 2109 +3738 4 0 1921 1988 2100 2000 +3739 4 0 1845 1988 2164 2100 +3740 4 0 2164 2000 2100 1988 +3741 4 0 1822 1056 2340 1145 +3742 4 0 1472 1053 1166 1645 +3743 4 0 286 1619 2223 317 +3744 4 0 1166 1053 1128 1645 +3745 4 0 1472 1166 1053 1147 +3746 4 0 2223 95 138 152 +3747 4 0 286 1738 1619 1778 +3748 4 0 2314 1136 1823 1049 +3749 4 0 2088 2110 644 1857 +3750 4 0 1682 2085 538 515 +3751 4 0 2110 2003 2088 2160 +3752 4 0 2075 1746 1932 1867 +3753 4 0 1049 1158 1136 1823 +3754 4 0 1931 2178 2065 2176 +3755 4 0 2304 1262 1312 1260 +3756 4 0 1954 1972 673 1982 +3757 4 0 1954 2148 1972 1752 +3758 4 0 673 1972 1954 2148 +3759 4 0 1927 1932 1954 1972 +3760 4 0 1954 1752 1972 1932 +3761 4 0 1928 2102 1869 1684 +3762 4 0 1767 1900 2102 1684 +3763 4 0 1684 2102 1767 1950 +3764 4 0 2056 1847 1843 2194 +3765 4 0 1684 1928 2102 1950 +3766 4 0 2102 1869 1684 2051 +3767 4 0 651 2117 1762 2112 +3768 4 0 648 2112 2117 651 +3769 4 0 1974 108 163 175 +3770 4 0 2102 2051 1684 1900 +3771 4 0 1811 1854 1878 1761 +3772 4 0 1984 1811 1878 1761 +3773 4 0 1652 219 1783 1809 +3774 4 0 2056 1847 2194 1849 +3775 4 0 1811 1801 1878 1854 +3776 4 0 1836 1919 1987 1763 +3777 4 0 57 2061 3 5 +3778 4 0 1811 1980 1878 1801 +3779 4 0 1980 1811 1878 1984 +3780 4 0 2183 1902 685 678 +3781 4 0 462 1359 1600 1384 +3782 4 0 1762 651 660 2116 +3783 4 0 1762 2116 1962 1958 +3784 4 0 1830 2150 1742 2175 +3785 4 0 2153 946 1987 1919 +3786 4 0 1830 2151 1742 2150 +3787 4 0 2153 1919 1793 946 +3788 4 0 2031 1793 1919 946 +3789 4 0 2087 747 1612 2206 +3790 4 0 2082 1777 1841 1911 +3791 4 0 1804 1777 2082 1911 +3792 4 0 1762 651 2116 2117 +3793 4 0 2112 2117 1762 1930 +3794 4 0 2034 1841 1508 1911 +3795 4 0 2090 2241 1378 1833 +3796 4 0 1614 2143 748 2137 +3797 4 0 1756 2137 1858 2073 +3798 4 0 897 2098 2082 882 +3799 4 0 1771 1758 2098 1757 +3800 4 0 1928 1848 2080 2032 +3801 4 0 1848 1928 2102 2032 +3802 4 0 748 2143 729 1858 +3803 4 0 2120 677 1791 718 +3804 4 0 2137 1759 2130 1863 +3805 4 0 730 1860 2097 753 +3806 4 0 2111 978 1821 2026 +3807 4 0 2312 1706 1370 2168 +3808 4 0 2111 1821 978 993 +3809 4 0 1897 2108 1970 2124 +3810 4 0 1728 2099 1737 884 +3811 4 0 1914 1737 2099 884 +3812 4 0 1770 1799 2065 2167 +3813 4 0 1623 2271 1018 1620 +3814 4 0 1728 2113 1727 2156 +3815 4 0 1727 2113 2021 2156 +3816 4 0 2099 2113 2021 1727 +3817 4 0 1728 2113 2099 1727 +3818 4 0 1992 1921 1913 2115 +3819 4 0 1727 2142 2098 2099 +3820 4 0 2146 2142 2098 1727 +3821 4 0 1992 1988 1921 2115 +3822 4 0 992 1952 983 1904 +3823 4 0 1906 1219 1263 1279 +3824 4 0 2080 2246 2185 1952 +3825 4 0 1623 945 873 859 +3826 4 0 1857 2110 644 621 +3827 4 0 2107 2181 2199 2169 +3828 4 0 2088 652 2083 644 +3829 4 0 1830 1869 1684 1763 +3830 4 0 1763 1830 1884 1684 +3831 4 0 1684 1763 2099 1884 +3832 4 0 1763 1928 1869 1684 +3833 4 0 1684 1763 1928 2099 +3834 4 0 1808 1655 2264 1412 +3835 4 0 2142 884 2099 1728 +3836 4 0 648 2159 2112 1905 +3837 4 0 1410 1355 360 393 +3838 4 0 2137 1756 1834 1759 +3839 4 0 1779 1167 1055 1080 +3840 4 0 1055 1167 1779 1144 +3841 4 0 7 1778 61 5 +3842 4 0 7 61 1778 75 +3843 4 0 2246 983 2185 1952 +3844 4 0 1077 1780 1052 1137 +3845 4 0 992 2185 983 1952 +3846 4 0 1927 2198 1932 2289 +3847 4 0 1051 1781 1076 1138 +3848 4 0 1782 1050 1075 1143 +3849 4 0 1821 2040 993 2074 +3850 4 0 1617 1155 1087 1715 +3851 4 0 1606 1617 1087 1715 +3852 4 0 2295 1967 1549 1957 +3853 4 0 1957 2226 1967 1549 +3854 4 0 1410 1355 1658 360 +3855 4 0 755 1874 2137 2310 +3856 4 0 1411 45 78 43 +3857 4 0 2327 1057 1137 1152 +3858 4 0 1874 2137 2310 1614 +3859 4 0 1893 1667 650 2140 +3860 4 0 1966 1634 289 2179 +3861 4 0 320 1634 2179 289 +3862 4 0 2273 2121 2024 1448 +3863 4 0 147 1635 287 1965 +3864 4 0 2018 2020 1763 2030 +3865 4 0 2282 1635 287 147 +3866 4 0 2218 1800 2125 683 +3867 4 0 683 1800 2125 2119 +3868 4 0 683 2119 2125 1625 +3869 4 0 23 1875 71 1647 +3870 4 0 696 698 1429 2349 +3871 4 0 1753 683 2218 2125 +3872 4 0 1876 781 803 800 +3873 4 0 2077 1988 758 1799 +3874 4 0 2098 1855 1777 1804 +3875 4 0 2098 1884 1777 1855 +3876 4 0 2098 1777 2082 1804 +3877 4 0 1836 1977 1846 2080 +3878 4 0 1373 1001 2353 937 +3879 4 0 1411 78 1658 109 +3880 4 0 1411 78 41 43 +3881 4 0 1411 78 109 41 +3882 4 0 1410 1355 145 109 +3883 4 0 1658 109 1410 1411 +3884 4 0 1410 1658 1355 109 +3885 4 0 1088 1229 1158 1219 +3886 4 0 2111 993 982 1821 +3887 4 0 1088 1158 1180 1426 +3888 4 0 582 2041 560 562 +3889 4 0 1042 2343 1010 1365 +3890 4 0 2160 652 2088 644 +3891 4 0 2110 2160 2088 644 +3892 4 0 1962 1958 2116 662 +3893 4 0 2137 1834 761 2130 +3894 4 0 2137 2130 1967 1863 +3895 4 0 61 2061 57 5 +3896 4 0 1446 2323 386 1360 +3897 4 0 289 2179 2039 262 +3898 4 0 276 1880 1653 184 +3899 4 0 1897 2124 1970 1742 +3900 4 0 897 1771 2098 882 +3901 4 0 268 1654 1881 278 +3902 4 0 1762 2116 660 1962 +3903 4 0 1041 1784 1013 1371 +3904 4 0 905 1795 2132 1771 +3905 4 0 1879 2132 2146 905 +3906 4 0 1412 453 1785 1416 +3907 4 0 2134 2213 2162 2239 +3908 4 0 1785 1412 1416 1655 +3909 4 0 2134 1886 1859 744 +3910 4 0 2095 2134 2162 2239 +3911 4 0 1855 1830 1910 1884 +3912 4 0 2062 1786 1287 1344 +3913 4 0 2062 1786 1227 1287 +3914 4 0 2098 1884 1855 1920 +3915 4 0 1855 1910 1920 1884 +3916 4 0 1236 1788 2066 1317 +3917 4 0 1768 73 128 116 +3918 4 0 73 116 1768 2334 +3919 4 0 2067 1789 1280 1298 +3920 4 0 1897 2124 1742 2151 +3921 4 0 2142 897 2098 2082 +3922 4 0 905 897 2098 2142 +3923 4 0 1830 946 2151 2150 +3924 4 0 1889 1941 2083 2184 +3925 4 0 2153 1836 2010 1919 +3926 4 0 397 1785 1560 1655 +3927 4 0 2334 15 73 1537 +3928 4 0 925 1474 1613 1463 +3929 4 0 1855 1742 1970 1750 +3930 4 0 116 73 67 1537 +3931 4 0 2081 1691 2155 723 +3932 4 0 1984 1761 2081 2174 +3933 4 0 927 2292 1613 2294 +3934 4 0 1890 1691 2081 723 +3935 4 0 1551 1729 1560 2256 +3936 4 0 1761 1890 2081 723 +3937 4 0 926 2309 901 1488 +3938 4 0 1715 867 899 1381 +3939 4 0 867 1715 1382 1381 +3940 4 0 1500 1903 84 1353 +3941 4 0 289 2179 1659 2039 +3942 4 0 2174 723 2081 715 +3943 4 0 2174 1761 2081 723 +3944 4 0 1558 1363 2296 819 +3945 4 0 2296 1629 813 809 +3946 4 0 2332 1420 2156 1861 +3947 4 0 1561 2296 827 834 +3948 4 0 1502 664 654 631 +3949 4 0 1502 654 610 631 +3950 4 0 1878 742 697 2155 +3951 4 0 1502 654 636 610 +3952 4 0 2116 1958 2157 662 +3953 4 0 1356 1663 2335 1505 +3954 4 0 2157 1958 2053 662 +3955 4 0 1508 2036 1841 2018 +3956 4 0 905 2142 2098 2146 +3957 4 0 2167 2144 2209 1770 +3958 4 0 2058 465 480 503 +3959 4 0 450 2302 414 465 +3960 4 0 2058 495 503 1510 +3961 4 0 648 2159 2117 2112 +3962 4 0 2112 1930 2159 2117 +3963 4 0 1647 1704 2229 114 +3964 4 0 2160 2088 2184 2009 +3965 4 0 1505 302 351 353 +3966 4 0 1547 2170 2073 1813 +3967 4 0 1846 2076 2187 1708 +3968 4 0 2075 1867 1931 1746 +3969 4 0 1846 2089 1708 2035 +3970 4 0 1713 2089 1846 1977 +3971 4 0 1846 2187 2076 1713 +3972 4 0 1663 2311 1664 2266 +3973 4 0 2035 1977 1846 2089 +3974 4 0 1663 349 1356 2043 +3975 4 0 902 1708 2076 1985 +3976 4 0 1505 302 1356 1664 +3977 4 0 1882 2089 2156 2245 +3978 4 0 2187 2076 902 1708 +3979 4 0 2076 2089 1882 2245 +3980 4 0 1356 1663 1505 1664 +3981 4 0 954 2010 1744 975 +3982 4 0 2010 954 2185 975 +3983 4 0 1767 1684 2149 1898 +3984 4 0 2149 1684 1767 2086 +3985 4 0 2227 2166 1915 1954 +3986 4 0 2262 433 2261 469 +3987 4 0 1387 2262 455 1604 +3988 4 0 2086 2149 1684 1853 +3989 4 0 2018 2030 1841 1508 +3990 4 0 1508 2030 1841 1914 +3991 4 0 1845 1514 1982 680 +3992 4 0 2128 2257 1382 1362 +3993 4 0 2128 861 854 917 +3994 4 0 2273 1160 2121 1368 +3995 4 0 1931 2220 2176 1746 +3996 4 0 1971 2167 2216 1746 +3997 4 0 1843 1902 678 685 +3998 4 0 998 1715 2257 1005 +3999 4 0 2282 1353 1467 192 +4000 4 0 2065 1770 2167 2209 +4001 4 0 1380 961 887 935 +4002 4 0 1466 291 193 1634 +4003 4 0 1466 266 1354 193 +4004 4 0 1005 2257 929 1362 +4005 4 0 81 25 1875 23 +4006 4 0 71 1875 23 81 +4007 4 0 2145 746 1877 705 +4008 4 0 1856 1970 1750 1757 +4009 4 0 1948 1970 1856 1757 +4010 4 0 1921 2100 2169 2000 +4011 4 0 1381 2257 998 1715 +4012 4 0 998 2257 917 929 +4013 4 0 1381 998 1380 1044 +4014 4 0 2000 1814 1886 1759 +4015 4 0 740 1455 2164 2000 +4016 4 0 2164 2000 1988 740 +4017 4 0 2122 1362 817 1433 +4018 4 0 1087 1606 1715 1005 +4019 4 0 1938 1762 1944 2112 +4020 4 0 2090 1847 2073 2158 +4021 4 0 1762 1930 1944 2112 +4022 4 0 2166 1806 1847 2158 +4023 4 0 1921 1847 2158 1913 +4024 4 0 1845 2181 1514 2169 +4025 4 0 1921 1847 1806 2158 +4026 4 0 2158 1847 2073 1913 +4027 4 0 2166 1847 2090 2158 +4028 4 0 1898 1900 1684 2007 +4029 4 0 2120 718 1860 730 +4030 4 0 2120 718 1791 1860 +4031 4 0 1837 2310 1810 1964 +4032 4 0 1833 2090 1955 1964 +4033 4 0 1570 1615 1480 924 +4034 4 0 2090 2158 1833 1955 +4035 4 0 1992 2158 1833 1913 +4036 4 0 1992 1833 2137 1913 +4037 4 0 1967 2130 761 766 +4038 4 0 1863 2130 1967 766 +4039 4 0 1889 2184 2083 1817 +4040 4 0 1616 1356 1407 146 +4041 4 0 47 82 1636 1409 +4042 4 0 2077 2000 1988 2115 +4043 4 0 712 2107 2169 691 +4044 4 0 761 1874 748 2137 +4045 4 0 1791 1860 1953 1980 +4046 4 0 1980 1953 1801 1860 +4047 4 0 648 2159 1905 626 +4048 4 0 2112 1930 1905 2159 +4049 4 0 1869 2045 1432 2031 +4050 4 0 1797 1983 1940 1725 +4051 4 0 693 1692 2204 1797 +4052 4 0 1797 2204 693 1983 +4053 4 0 2114 1012 1369 1522 +4054 4 0 2229 1608 303 1654 +4055 4 0 1591 1440 2228 1011 +4056 4 0 1908 1725 1791 1940 +4057 4 0 2352 1480 1580 898 +4058 4 0 2332 2021 2027 1861 +4059 4 0 2332 2156 2021 1861 +4060 4 0 1767 2027 2021 2113 +4061 4 0 2099 1767 2021 2113 +4062 4 0 1845 1887 1514 2164 +4063 4 0 1514 2164 1901 1455 +4064 4 0 1887 1901 1514 2164 +4065 4 0 1845 2164 1514 2181 +4066 4 0 2181 2000 2100 2164 +4067 4 0 2181 2000 2164 1455 +4068 4 0 2177 755 1963 1799 +4069 4 0 1799 2295 1963 1918 +4070 4 0 1746 1745 1747 1932 +4071 4 0 2166 673 1847 1806 +4072 4 0 2166 1847 1915 2090 +4073 4 0 2166 1806 2158 1955 +4074 4 0 2166 2158 2090 1955 +4075 4 0 2056 674 1902 1883 +4076 4 0 1927 1932 2075 1907 +4077 4 0 1821 978 2059 2222 +4078 4 0 2295 755 1874 2137 +4079 4 0 1332 1923 2207 1281 +4080 4 0 1330 1332 1281 1923 +4081 4 0 725 2047 751 1815 +4082 4 0 944 2153 2010 1793 +4083 4 0 944 1836 1937 2010 +4084 4 0 944 1836 911 1937 +4085 4 0 911 2189 1836 2141 +4086 4 0 2141 2153 1836 911 +4087 4 0 944 1836 2010 2153 +4088 4 0 695 1925 745 2171 +4089 4 0 759 790 745 1925 +4090 4 0 1722 1925 790 799 +4091 4 0 749 1926 731 1447 +4092 4 0 2181 2000 2169 2100 +4093 4 0 80 22 70 1723 +4094 4 0 24 22 80 1723 +4095 4 0 905 922 2132 1795 +4096 4 0 2169 1945 2107 1514 +4097 4 0 2352 2286 1599 872 +4098 4 0 1492 389 1578 328 +4099 4 0 2352 1599 930 1580 +4100 4 0 2160 2088 652 2184 +4101 4 0 1905 2094 626 2159 +4102 4 0 1799 2075 758 1931 +4103 4 0 1988 2075 758 1799 +4104 4 0 496 510 521 1682 +4105 4 0 2167 1963 2144 1770 +4106 4 0 2167 2109 2144 1963 +4107 4 0 2234 2144 2167 2109 +4108 4 0 683 1835 1753 702 +4109 4 0 2276 455 445 446 +4110 4 0 2184 2083 1817 2088 +4111 4 0 1743 1753 1912 702 +4112 4 0 1835 2078 1753 702 +4113 4 0 1753 2078 1986 702 +4114 4 0 2170 1902 1843 685 +4115 4 0 922 2132 1879 905 +4116 4 0 1799 1549 1538 1957 +4117 4 0 2295 1957 1549 1799 +4118 4 0 1547 1813 2090 1548 +4119 4 0 1954 1955 1753 2006 +4120 4 0 1547 2073 2090 1813 +4121 4 0 1863 767 766 2172 +4122 4 0 1547 2073 2241 2090 +4123 4 0 1841 2036 1777 2018 +4124 4 0 748 2137 1874 1614 +4125 4 0 1951 2108 1777 2018 +4126 4 0 2108 1897 1777 2018 +4127 4 0 1930 1949 2112 1905 +4128 4 0 1934 953 962 1840 +4129 4 0 2037 1847 1921 1913 +4130 4 0 1921 2037 1913 1868 +4131 4 0 1908 1983 1978 2173 +4132 4 0 1760 2173 1983 1908 +4133 4 0 1760 1994 1983 2173 +4134 4 0 2174 715 2081 2221 +4135 4 0 1982 2289 1927 1972 +4136 4 0 2174 715 2221 1851 +4137 4 0 1835 1929 1747 2055 +4138 4 0 2045 1796 1830 2175 +4139 4 0 2222 2059 1821 2175 +4140 4 0 2176 2178 2065 2209 +4141 4 0 2176 2167 1746 2216 +4142 4 0 2209 2176 2167 2065 +4143 4 0 2176 2220 2216 1746 +4144 4 0 1831 2081 2072 1676 +4145 4 0 1970 906 918 2124 +4146 4 0 1750 1742 2243 2251 +4147 4 0 1810 755 2177 1799 +4148 4 0 1673 802 1926 799 +4149 4 0 1610 786 2225 1673 +4150 4 0 1610 851 822 2225 +4151 4 0 488 1605 508 513 +4152 4 0 1810 1955 2090 1964 +4153 4 0 1955 1964 1810 2006 +4154 4 0 1964 1799 1810 2006 +4155 4 0 1837 2090 1964 1810 +4156 4 0 1814 1863 2115 1957 +4157 4 0 1957 2115 2137 1863 +4158 4 0 2125 1792 1835 1625 +4159 4 0 2125 1835 1792 1753 +4160 4 0 1872 2244 2178 1931 +4161 4 0 1734 979 1678 1899 +4162 4 0 1734 2002 1678 1904 +4163 4 0 979 1899 962 1424 +4164 4 0 1899 1424 979 1678 +4165 4 0 106 1551 1537 2350 +4166 4 0 1988 2075 2033 758 +4167 4 0 2075 2014 2033 1931 +4168 4 0 1754 994 1734 979 +4169 4 0 1734 1754 1952 994 +4170 4 0 994 1952 2246 1754 +4171 4 0 209 2223 181 271 +4172 4 0 181 2223 1350 271 +4173 4 0 2168 1520 1370 1071 +4174 4 0 1193 1520 1129 1163 +4175 4 0 1370 2325 1225 1520 +4176 4 0 609 618 1716 653 +4177 4 0 1978 1812 1791 1908 +4178 4 0 2303 1270 1304 2247 +4179 4 0 609 1939 1716 613 +4180 4 0 1791 1908 1980 1942 +4181 4 0 1642 1065 1040 2230 +4182 4 0 1862 1641 1039 2228 +4183 4 0 1862 1039 1064 2228 +4184 4 0 1039 1460 2228 1641 +4185 4 0 2229 1647 114 71 +4186 4 0 1647 284 1875 2229 +4187 4 0 1431 1743 2218 1753 +4188 4 0 2218 683 1753 1743 +4189 4 0 1389 1183 1528 1110 +4190 4 0 1389 1528 1183 1116 +4191 4 0 1753 2125 2218 1954 +4192 4 0 198 248 2202 279 +4193 4 0 1753 1431 2090 2218 +4194 4 0 1753 1954 2218 2090 +4195 4 0 1937 1836 2189 1846 +4196 4 0 1836 1713 1846 1977 +4197 4 0 50 69 2203 52 +4198 4 0 1846 1836 2189 1713 +4199 4 0 1876 781 760 1429 +4200 4 0 698 760 1876 756 +4201 4 0 1514 2181 2107 2169 +4202 4 0 1514 1455 2107 2181 +4203 4 0 1845 2181 2100 2164 +4204 4 0 1514 2181 2164 1455 +4205 4 0 1845 2181 2169 2100 +4206 4 0 2000 1886 2095 2199 +4207 4 0 2107 1455 2199 2181 +4208 4 0 1713 1914 1737 2089 +4209 4 0 1547 2200 2090 2241 +4210 4 0 2022 673 1847 2166 +4211 4 0 2182 1754 2080 1734 +4212 4 0 1754 1734 2182 1899 +4213 4 0 2182 1977 2080 1754 +4214 4 0 2182 2035 1754 2044 +4215 4 0 2182 2035 1977 1754 +4216 4 0 1754 2044 1899 2182 +4217 4 0 1054 1552 1079 1146 +4218 4 0 2091 883 1948 1856 +4219 4 0 1361 1419 875 2196 +4220 4 0 846 856 1419 2353 +4221 4 0 875 846 2196 1419 +4222 4 0 2142 2082 2098 2099 +4223 4 0 2219 895 2091 1856 +4224 4 0 2277 455 2276 456 +4225 4 0 1988 2186 2033 740 +4226 4 0 456 455 2276 446 +4227 4 0 2187 1713 894 879 +4228 4 0 2188 955 1795 947 +4229 4 0 1879 2188 2132 922 +4230 4 0 1710 198 178 141 +4231 4 0 2188 1795 2132 922 +4232 4 0 270 118 126 1444 +4233 4 0 50 69 1712 2203 +4234 4 0 1846 2189 2208 2187 +4235 4 0 2189 1892 907 894 +4236 4 0 708 716 1819 776 +4237 4 0 716 2048 2329 708 +4238 4 0 2136 1707 257 1880 +4239 4 0 1379 1867 741 1943 +4240 4 0 1908 2173 1978 2190 +4241 4 0 1978 1812 1908 2190 +4242 4 0 1676 2072 2191 2221 +4243 4 0 1797 1692 2204 1732 +4244 4 0 1732 690 2204 2092 +4245 4 0 2243 2251 921 2192 +4246 4 0 1703 1434 1479 494 +4247 4 0 1885 1685 1998 1844 +4248 4 0 2052 1844 1885 1998 +4249 4 0 681 1849 2169 675 +4250 4 0 2056 1883 2169 675 +4251 4 0 1849 2056 2169 675 +4252 4 0 681 2169 1794 675 +4253 4 0 1794 2169 1883 675 +4254 4 0 2099 1950 2113 2089 +4255 4 0 1434 499 1703 467 +4256 4 0 1971 1746 1803 1866 +4257 4 0 1971 1866 2167 1746 +4258 4 0 1803 1746 1747 1866 +4259 4 0 1401 246 163 228 +4260 4 0 2063 1401 219 1809 +4261 4 0 2063 163 158 228 +4262 4 0 261 1738 1974 1773 +4263 4 0 906 2124 1970 2108 +4264 4 0 242 1965 147 263 +4265 4 0 2201 262 112 1966 +4266 4 0 51 1776 49 68 +4267 4 0 1971 2206 2167 1866 +4268 4 0 2087 747 2206 2109 +4269 4 0 2234 2167 2206 2109 +4270 4 0 264 1775 125 243 +4271 4 0 1968 579 554 547 +4272 4 0 1575 1533 1349 1507 +4273 4 0 1533 1483 1349 2237 +4274 4 0 1586 2131 2086 1879 +4275 4 0 2132 2098 2146 905 +4276 4 0 2226 1838 2016 2211 +4277 4 0 1863 2172 766 1967 +4278 4 0 1488 933 2279 1706 +4279 4 0 1534 1372 951 2275 +4280 4 0 436 409 1390 389 +4281 4 0 1747 1932 1745 1839 +4282 4 0 246 175 185 1974 +4283 4 0 1974 185 246 1773 +4284 4 0 2098 1853 1920 1758 +4285 4 0 249 2201 171 1966 +4286 4 0 1853 1795 1758 2098 +4287 4 0 2098 1853 1684 1920 +4288 4 0 250 1965 170 1441 +4289 4 0 1803 1866 1747 2206 +4290 4 0 2098 2086 1684 1853 +4291 4 0 2086 1795 1853 2098 +4292 4 0 552 564 577 2038 +4293 4 0 2177 2087 1810 2206 +4294 4 0 755 2087 1810 2177 +4295 4 0 32 58 1731 1565 +4296 4 0 2241 2073 2143 1833 +4297 4 0 2241 1614 1378 1833 +4298 4 0 2041 545 550 575 +4299 4 0 2143 2241 1833 1614 +4300 4 0 2182 1934 1899 1848 +4301 4 0 1908 1718 1998 1942 +4302 4 0 1942 1685 1755 1998 +4303 4 0 1718 1755 1998 1942 +4304 4 0 1942 1908 1980 1998 +4305 4 0 1872 2178 2065 1931 +4306 4 0 1799 1931 758 2065 +4307 4 0 122 89 2318 65 +4308 4 0 2318 122 65 1619 +4309 4 0 64 121 88 2161 +4310 4 0 2002 1734 2080 992 +4311 4 0 1258 1284 1476 1226 +4312 4 0 1839 1961 684 676 +4313 4 0 2123 60 1576 4 +4314 4 0 2080 2010 1432 2185 +4315 4 0 1887 1769 2198 2289 +4316 4 0 1887 1769 1976 2198 +4317 4 0 1769 2197 2198 2165 +4318 4 0 1976 2197 2198 1769 +4319 4 0 1081 1822 1168 1056 +4320 4 0 672 676 2101 1752 +4321 4 0 2199 1794 737 712 +4322 4 0 1455 712 2199 737 +4323 4 0 2107 1455 712 2199 +4324 4 0 758 1820 1931 2033 +4325 4 0 1547 1548 2090 2200 +4326 4 0 1327 1329 1641 1278 +4327 4 0 2030 1892 2189 1713 +4328 4 0 2030 2189 1892 1741 +4329 4 0 2082 1841 1777 2099 +4330 4 0 2099 1777 2098 1884 +4331 4 0 2098 2099 2082 1777 +4332 4 0 1988 2077 2186 740 +4333 4 0 740 1988 2077 2000 +4334 4 0 1970 1855 1750 1757 +4335 4 0 1804 1855 1948 1757 +4336 4 0 1948 1855 1970 1757 +4337 4 0 2098 1757 1855 1804 +4338 4 0 2101 1954 2119 1625 +4339 4 0 2005 1598 2154 46 +4340 4 0 2154 79 134 2005 +4341 4 0 83 1598 1693 2005 +4342 4 0 2167 2144 2248 2209 +4343 4 0 479 1584 1357 454 +4344 4 0 1714 412 418 457 +4345 4 0 1900 2032 2051 2007 +4346 4 0 2102 1869 2051 2032 +4347 4 0 2102 2032 2051 1900 +4348 4 0 1365 1477 1010 1042 +4349 4 0 2036 1911 1508 1841 +4350 4 0 418 407 1714 440 +4351 4 0 493 1469 2288 1357 +4352 4 0 493 1469 516 2288 +4353 4 0 1820 1867 2249 1931 +4354 4 0 1820 741 1379 1867 +4355 4 0 979 2044 962 1899 +4356 4 0 2208 2189 907 894 +4357 4 0 1714 1709 412 457 +4358 4 0 1377 407 418 379 +4359 4 0 1972 2079 1961 684 +4360 4 0 1752 676 1972 1961 +4361 4 0 1716 653 710 643 +4362 4 0 2026 2175 1742 2251 +4363 4 0 1855 1742 1750 1910 +4364 4 0 710 751 653 2047 +4365 4 0 2176 765 2209 768 +4366 4 0 2248 2176 2167 2209 +4367 4 0 1845 1887 1927 1982 +4368 4 0 1845 1887 1982 1514 +4369 4 0 1868 1756 1759 1794 +4370 4 0 2000 1868 1759 1794 +4371 4 0 2000 1759 1886 1794 +4372 4 0 1942 1720 1685 1676 +4373 4 0 1676 1720 1980 1942 +4374 4 0 1942 1676 1685 1998 +4375 4 0 1998 1676 1980 1942 +4376 4 0 763 2211 767 1859 +4377 4 0 2211 1863 767 1759 +4378 4 0 2211 1759 767 1859 +4379 4 0 1838 2172 767 2211 +4380 4 0 2211 2172 767 1863 +4381 4 0 2211 767 1838 763 +4382 4 0 2023 2235 1248 1266 +4383 4 0 1754 1734 1899 979 +4384 4 0 979 1754 2044 1899 +4385 4 0 1719 513 508 1605 +4386 4 0 2171 1925 745 706 +4387 4 0 1104 1181 2232 1075 +4388 4 0 2235 1147 1204 1472 +4389 4 0 554 1968 518 1688 +4390 4 0 547 554 1968 518 +4391 4 0 555 571 580 1437 +4392 4 0 561 542 1451 571 +4393 4 0 1451 542 534 571 +4394 4 0 911 2153 1836 944 +4395 4 0 2044 923 953 1934 +4396 4 0 1324 1277 1265 1850 +4397 4 0 1326 1324 1850 1277 +4398 4 0 1325 1278 1327 1862 +4399 4 0 1325 1278 1862 1266 +4400 4 0 1708 2044 2035 1861 +4401 4 0 2035 1861 2044 1934 +4402 4 0 2182 2035 2044 1934 +4403 4 0 1814 2211 2213 2134 +4404 4 0 1859 763 2213 754 +4405 4 0 1814 2211 2016 2213 +4406 4 0 1425 1424 1840 2214 +4407 4 0 1425 1424 2214 1900 +4408 4 0 1425 1767 2214 2027 +4409 4 0 1425 1900 2214 1767 +4410 4 0 1425 2027 2214 2152 +4411 4 0 1571 267 217 178 +4412 4 0 2252 217 178 1571 +4413 4 0 1425 2214 1840 2152 +4414 4 0 1883 1902 678 674 +4415 4 0 2038 564 532 552 +4416 4 0 1551 1729 116 2334 +4417 4 0 1684 2093 2074 1821 +4418 4 0 1684 1853 2093 1821 +4419 4 0 1898 2149 2093 1684 +4420 4 0 569 1495 549 574 +4421 4 0 1684 1898 2007 2093 +4422 4 0 2093 1684 2074 2007 +4423 4 0 33 59 2039 93 +4424 4 0 1388 33 59 2039 +4425 4 0 32 1731 58 92 +4426 4 0 545 510 1736 550 +4427 4 0 1971 2167 2248 2216 +4428 4 0 550 1736 545 2041 +4429 4 0 2176 2167 2216 2248 +4430 4 0 2176 765 768 2216 +4431 4 0 551 2212 565 2042 +4432 4 0 2042 551 533 565 +4433 4 0 1897 946 2151 1830 +4434 4 0 1830 1897 1742 2151 +4435 4 0 1431 1743 1548 2218 +4436 4 0 2218 1431 2090 1548 +4437 4 0 1086 1004 1599 1016 +4438 4 0 1606 1005 1087 1017 +4439 4 0 1446 260 327 338 +4440 4 0 1849 1847 2169 2056 +4441 4 0 259 337 1600 326 +4442 4 0 717 1816 707 2046 +4443 4 0 2047 710 751 1815 +4444 4 0 2334 73 15 13 +4445 4 0 1988 2115 1957 2077 +4446 4 0 708 716 2048 1819 +4447 4 0 1059 2049 1662 1031 +4448 4 0 1861 2113 2027 2089 +4449 4 0 1861 2156 2113 2089 +4450 4 0 1254 1061 2347 2273 +4451 4 0 1033 1061 2273 2347 +4452 4 0 1639 1591 1185 2228 +4453 4 0 1821 2074 993 982 +4454 4 0 1821 2093 2074 982 +4455 4 0 1352 1704 2229 303 +4456 4 0 1397 127 88 72 +4457 4 0 1400 1397 72 127 +4458 4 0 1848 2182 2080 1734 +4459 4 0 1848 1977 2080 2182 +4460 4 0 2080 1928 1977 1848 +4461 4 0 1285 1281 1923 1330 +4462 4 0 1848 1734 2080 2032 +4463 4 0 1461 1285 1923 1330 +4464 4 0 2089 1846 2076 1713 +4465 4 0 2130 767 766 1863 +4466 4 0 2226 1838 1538 2016 +4467 4 0 812 1828 1610 2225 +4468 4 0 2206 2167 2177 2109 +4469 4 0 1538 1549 1838 2226 +4470 4 0 2225 1673 822 1610 +4471 4 0 1538 1549 2226 1957 +4472 4 0 2077 1957 1538 2226 +4473 4 0 2016 2226 2077 1538 +4474 4 0 2119 1800 1915 1739 +4475 4 0 2218 1800 1915 2125 +4476 4 0 2125 1800 1915 2119 +4477 4 0 1548 1915 2090 2218 +4478 4 0 1612 2087 1810 2310 +4479 4 0 2205 1545 1354 266 +4480 4 0 2205 1466 266 1354 +4481 4 0 1404 1545 2205 347 +4482 4 0 906 895 2219 1856 +4483 4 0 1856 2091 2219 1948 +4484 4 0 1931 2244 2176 2220 +4485 4 0 2176 765 2216 2220 +4486 4 0 715 2155 2081 2221 +4487 4 0 2095 1886 744 737 +4488 4 0 744 1886 2095 2134 +4489 4 0 483 501 2106 1605 +4490 4 0 2231 1783 237 2061 +4491 4 0 1836 1763 1713 1977 +4492 4 0 1000 1484 2057 1666 +4493 4 0 1763 2030 1713 1914 +4494 4 0 2030 1836 1763 1713 +4495 4 0 684 711 2079 1961 +4496 4 0 1745 1961 711 684 +4497 4 0 678 1843 674 1902 +4498 4 0 2241 701 729 2073 +4499 4 0 1858 2073 729 701 +4500 4 0 2241 2073 729 2143 +4501 4 0 1858 2143 729 2073 +4502 4 0 2251 2150 952 2238 +4503 4 0 2192 2251 952 963 +4504 4 0 2175 2150 2251 2238 +4505 4 0 2026 2251 2192 963 +4506 4 0 1821 2175 2026 2222 +4507 4 0 2026 2175 2251 2222 +4508 4 0 2060 1167 1779 1080 +4509 4 0 1778 2061 61 5 +4510 4 0 1737 885 879 2076 +4511 4 0 879 885 2187 2076 +4512 4 0 2064 1076 1138 1174 +4513 4 0 2175 2059 1796 2238 +4514 4 0 1781 2064 1076 1138 +4515 4 0 2026 978 2222 963 +4516 4 0 2222 978 2059 963 +4517 4 0 2238 2059 2222 2175 +4518 4 0 2222 2251 2026 963 +4519 4 0 1083 1254 1788 1236 +4520 4 0 1083 2066 1099 1236 +4521 4 0 1236 1788 1083 2066 +4522 4 0 1075 1169 1782 1143 +4523 4 0 712 2199 2169 2107 +4524 4 0 923 2242 1420 1861 +4525 4 0 2076 1985 2089 2245 +4526 4 0 1931 2244 2178 2176 +4527 4 0 2176 765 2178 2209 +4528 4 0 2068 1668 1430 416 +4529 4 0 1567 1355 2254 301 +4530 4 0 2069 541 2071 511 +4531 4 0 2069 2138 2071 541 +4532 4 0 2070 417 2147 1668 +4533 4 0 1838 1549 2172 2226 +4534 4 0 2226 1967 2172 1863 +4535 4 0 2226 1967 1863 1957 +4536 4 0 911 1836 2189 1937 +4537 4 0 1766 524 500 466 +4538 4 0 1899 1840 962 1424 +4539 4 0 1777 2108 1970 1897 +4540 4 0 2072 669 1671 1893 +4541 4 0 2072 669 1893 650 +4542 4 0 2072 697 1671 669 +4543 4 0 2022 2227 2166 1739 +4544 4 0 2119 1915 2227 1739 +4545 4 0 1739 2022 2227 2119 +4546 4 0 1739 2166 1915 2227 +4547 4 0 1897 1742 1855 1830 +4548 4 0 1364 797 818 2324 +4549 4 0 1897 1742 1970 1855 +4550 4 0 1357 1709 1469 448 +4551 4 0 2288 1469 448 1357 +4552 4 0 1840 1934 923 2332 +4553 4 0 1470 1358 486 1593 +4554 4 0 1934 923 953 1840 +4555 4 0 1363 819 798 2296 +4556 4 0 1362 881 1372 849 +4557 4 0 1372 847 876 2275 +4558 4 0 2210 1201 1263 1219 +4559 4 0 975 2010 1744 2246 +4560 4 0 2010 975 2185 2246 +4561 4 0 1985 1708 1861 2242 +4562 4 0 1985 1708 2076 2089 +4563 4 0 1455 2000 740 2095 +4564 4 0 1813 1847 1843 1902 +4565 4 0 1813 1843 1847 1739 +4566 4 0 683 679 1835 688 +4567 4 0 1871 578 548 553 +4568 4 0 1835 679 2055 688 +4569 4 0 1870 581 556 546 +4570 4 0 2085 481 482 510 +4571 4 0 2085 1682 482 2287 +4572 4 0 1566 840 1497 1630 +4573 4 0 1972 684 1961 676 +4574 4 0 1497 840 1363 841 +4575 4 0 1566 1363 1497 840 +4576 4 0 1509 1366 1200 1715 +4577 4 0 740 2077 2095 2000 +4578 4 0 1814 2000 2095 2077 +4579 4 0 2000 1814 2095 2134 +4580 4 0 1814 2000 2077 2115 +4581 4 0 2077 2115 1957 1814 +4582 4 0 1867 1896 1976 2197 +4583 4 0 2014 1867 2197 741 +4584 4 0 2014 741 1820 1867 +4585 4 0 1481 461 489 484 +4586 4 0 1651 1481 489 484 +4587 4 0 2109 747 2206 757 +4588 4 0 754 2239 1859 744 +4589 4 0 2134 1859 2239 744 +4590 4 0 1488 2271 866 2270 +4591 4 0 764 2248 768 1971 +4592 4 0 757 2206 2234 1971 +4593 4 0 757 2144 2234 2109 +4594 4 0 757 2234 2206 2109 +4595 4 0 2044 1934 1899 2182 +4596 4 0 1548 1800 2218 683 +4597 4 0 873 1363 1566 840 +4598 4 0 1548 683 2218 1743 +4599 4 0 1583 1566 1363 819 +4600 4 0 1566 1623 1363 873 +4601 4 0 1708 2044 1861 2242 +4602 4 0 1763 1897 1777 1884 +4603 4 0 1884 1897 1830 1763 +4604 4 0 2018 1763 1777 1841 +4605 4 0 2018 1763 1897 1777 +4606 4 0 1841 1777 2099 1763 +4607 4 0 1583 1363 1566 1623 +4608 4 0 1884 1763 2099 1777 +4609 4 0 279 198 1710 2202 +4610 4 0 267 1710 198 178 +4611 4 0 1250 1222 1249 1518 +4612 4 0 1250 1116 1222 1518 +4613 4 0 2079 2289 2198 1769 +4614 4 0 2165 2079 2198 1769 +4615 4 0 1813 1847 2073 2090 +4616 4 0 1915 1847 1813 2090 +4617 4 0 1739 1847 1813 1915 +4618 4 0 1813 1847 1902 2073 +4619 4 0 1985 908 2245 902 +4620 4 0 1882 2076 2245 902 +4621 4 0 2076 1985 2245 902 +4622 4 0 2299 373 380 406 +4623 4 0 2299 314 380 373 +4624 4 0 1741 2141 2189 907 +4625 4 0 911 907 2189 2141 +4626 4 0 1790 2338 1594 1560 +4627 4 0 391 358 1655 2333 +4628 4 0 1879 2188 2086 2132 +4629 4 0 2188 1795 2086 2132 +4630 4 0 566 568 2103 588 +4631 4 0 566 1871 2103 568 +4632 4 0 566 2104 1870 543 +4633 4 0 2104 587 546 568 +4634 4 0 2104 587 568 588 +4635 4 0 1326 1850 1642 1277 +4636 4 0 1631 254 202 173 +4637 4 0 2102 2027 1767 1950 +4638 4 0 1820 2014 1867 1931 +4639 4 0 2014 1820 2033 1931 +4640 4 0 1388 1385 77 31 +4641 4 0 2222 2059 2238 963 +4642 4 0 2251 2238 2222 2175 +4643 4 0 2211 1838 2016 763 +4644 4 0 2211 763 2213 1859 +4645 4 0 2211 763 2016 2213 +4646 4 0 1031 2049 1662 2281 +4647 4 0 1006 1564 2049 2281 +4648 4 0 93 140 2179 2348 +4649 4 0 2134 744 2239 2095 +4650 4 0 2347 2273 1008 2304 +4651 4 0 1830 1742 1910 2175 +4652 4 0 2282 86 1353 139 +4653 4 0 1821 1910 2026 2175 +4654 4 0 1910 2175 1742 2026 +4655 4 0 2282 92 86 139 +4656 4 0 2084 92 86 2282 +4657 4 0 1830 2175 1910 1821 +4658 4 0 1742 2251 1750 2026 +4659 4 0 1631 197 254 173 +4660 4 0 1994 2052 2240 1760 +4661 4 0 1760 1994 2173 2240 +4662 4 0 2197 1867 1896 741 +4663 4 0 2197 1896 2198 2165 +4664 4 0 1976 1896 2198 2197 +4665 4 0 2056 1883 1847 2169 +4666 4 0 1794 2037 1883 2169 +4667 4 0 2060 1167 1080 1109 +4668 4 0 1105 1076 2064 1174 +4669 4 0 2206 1810 2167 1866 +4670 4 0 1810 2177 2167 1799 +4671 4 0 2206 2167 1810 2177 +4672 4 0 1466 291 266 193 +4673 4 0 2079 2165 2198 711 +4674 4 0 1466 291 2205 266 +4675 4 0 265 1467 192 290 +4676 4 0 265 346 1467 290 +4677 4 0 2198 1896 711 2165 +4678 4 0 376 1467 346 290 +4679 4 0 1635 1467 290 192 +4680 4 0 1057 1506 1001 1072 +4681 4 0 1152 1506 1057 1072 +4682 4 0 1058 1073 2121 1153 +4683 4 0 1686 2121 1058 1073 +4684 4 0 1448 1058 2121 2024 +4685 4 0 2024 2273 1153 2121 +4686 4 0 2234 2248 2167 2144 +4687 4 0 2230 1552 1127 1165 +4688 4 0 757 764 2234 2144 +4689 4 0 268 199 1881 179 +4690 4 0 268 179 1654 218 +4691 4 0 1849 1847 2194 673 +4692 4 0 1654 179 268 1881 +4693 4 0 2194 673 1847 2022 +4694 4 0 911 2189 2208 1937 +4695 4 0 1934 962 2044 1899 +4696 4 0 1928 2089 1848 1950 +4697 4 0 1950 1848 2027 2089 +4698 4 0 1848 2089 1977 2035 +4699 4 0 1977 1928 2089 1848 +4700 4 0 1574 1507 1575 1349 +4701 4 0 1574 1349 1575 398 +4702 4 0 1099 2066 1272 1236 +4703 4 0 1777 1897 1855 1884 +4704 4 0 2154 110 79 1439 +4705 4 0 2023 1266 1325 1473 +4706 4 0 1325 1862 1473 1266 +4707 4 0 1739 1847 1915 2166 +4708 4 0 2022 2166 1847 1739 +4709 4 0 2249 1379 762 1943 +4710 4 0 1379 2249 1867 1943 +4711 4 0 1820 1867 1379 2249 +4712 4 0 696 698 2349 646 +4713 4 0 961 1044 1029 2258 +4714 4 0 2050 1043 1028 960 +4715 4 0 1824 271 1465 339 +4716 4 0 1853 982 1894 964 +4717 4 0 1821 1853 2093 982 +4718 4 0 1914 1508 1713 2034 +4719 4 0 405 372 370 1807 +4720 4 0 1030 1070 957 2305 +4721 4 0 1713 1508 1922 2034 +4722 4 0 2305 957 1019 1070 +4723 4 0 273 370 2264 325 +4724 4 0 273 2264 370 323 +4725 4 0 1713 1508 1892 1922 +4726 4 0 2030 1508 1892 1713 +4727 4 0 2030 1508 1713 1914 +4728 4 0 2101 676 2148 1752 +4729 4 0 676 1972 2148 1752 +4730 4 0 757 2234 764 1971 +4731 4 0 2214 1767 2102 2027 +4732 4 0 2214 1900 2102 1767 +4733 4 0 1858 2073 701 2183 +4734 4 0 372 1807 323 370 +4735 4 0 1807 405 1413 370 +4736 4 0 420 2338 397 1785 +4737 4 0 862 836 2290 1459 +4738 4 0 1561 827 2296 863 +4739 4 0 1851 1676 1685 2191 +4740 4 0 1685 692 1851 2191 +4741 4 0 1524 530 529 2071 +4742 4 0 245 2136 184 174 +4743 4 0 245 184 2136 1880 +4744 4 0 2243 2151 2150 1742 +4745 4 0 1835 688 2055 2078 +4746 4 0 2139 2071 2138 541 +4747 4 0 1970 2124 2243 1742 +4748 4 0 2243 2124 2151 1742 +4749 4 0 2242 908 1420 1985 +4750 4 0 2047 653 1716 649 +4751 4 0 501 483 2215 1605 +4752 4 0 1609 812 2225 1832 +4753 4 0 1609 820 2196 2225 +4754 4 0 413 1593 355 1790 +4755 4 0 722 1429 704 2349 +4756 4 0 1429 781 722 704 +4757 4 0 1876 704 781 1429 +4758 4 0 2187 1713 2189 894 +4759 4 0 2187 2189 2208 894 +4760 4 0 1594 355 1593 1790 +4761 4 0 38 1475 1618 84 +4762 4 0 1064 1645 1472 2228 +4763 4 0 2228 1472 1166 1645 +4764 4 0 1064 1645 2228 1039 +4765 4 0 1945 2169 681 1849 +4766 4 0 1065 1552 2230 1165 +4767 4 0 1536 1247 1271 1213 +4768 4 0 2233 1271 1213 1536 +4769 4 0 2147 1430 1668 367 +4770 4 0 1750 2243 918 2192 +4771 4 0 1970 2243 918 1750 +4772 4 0 918 2243 921 2192 +4773 4 0 918 2151 921 2243 +4774 4 0 1970 2124 918 2243 +4775 4 0 918 2124 2151 2243 +4776 4 0 431 474 1436 1434 +4777 4 0 1238 1270 2247 2345 +4778 4 0 2338 397 1785 1560 +4779 4 0 683 1835 679 1625 +4780 4 0 2338 1785 1594 1560 +4781 4 0 397 420 1785 1655 +4782 4 0 1848 1861 2035 1934 +4783 4 0 1848 2035 2182 1934 +4784 4 0 1848 2089 2035 1861 +4785 4 0 196 1637 253 172 +4786 4 0 253 1637 201 172 +4787 4 0 712 1794 691 2169 +4788 4 0 1853 2149 2093 1973 +4789 4 0 2149 1853 2093 1684 +4790 4 0 2073 2170 1547 701 +4791 4 0 2183 2073 701 685 +4792 4 0 2170 1902 685 2073 +4793 4 0 2073 1902 685 2183 +4794 4 0 944 2010 954 1793 +4795 4 0 1350 1808 1824 358 +4796 4 0 2010 1793 1432 2185 +4797 4 0 2178 762 765 2244 +4798 4 0 2244 2220 1943 765 +4799 4 0 332 1350 1824 358 +4800 4 0 2244 765 2176 2220 +4801 4 0 2244 765 2178 2176 +4802 4 0 2244 1943 762 765 +4803 4 0 1420 908 2245 1985 +4804 4 0 2197 720 1896 2165 +4805 4 0 1794 2199 2169 712 +4806 4 0 2174 2221 2081 1676 +4807 4 0 2174 2221 1676 1851 +4808 4 0 2265 85 40 39 +4809 4 0 2265 85 1406 40 +4810 4 0 586 596 571 1437 +4811 4 0 1743 702 683 1753 +4812 4 0 1042 2250 2343 1365 +4813 4 0 2301 1237 1423 1269 +4814 4 0 2301 1178 1211 1365 +4815 4 0 1861 2245 2156 2089 +4816 4 0 1371 1476 1013 1041 +4817 4 0 2251 2238 952 963 +4818 4 0 2222 2238 2251 963 +4819 4 0 1883 1902 2183 678 +4820 4 0 2248 2209 764 768 +4821 4 0 768 2176 2248 2209 +4822 4 0 1270 1212 1238 2247 +4823 4 0 1971 2248 768 2216 +4824 4 0 2176 2248 2216 768 +4825 4 0 1212 2283 2303 1244 +4826 4 0 2093 1853 964 982 +4827 4 0 1853 955 1894 1795 +4828 4 0 1973 1853 955 964 +4829 4 0 1853 1894 955 964 +4830 4 0 2073 685 2170 701 +4831 4 0 1655 1808 2264 1350 +4832 4 0 1409 78 82 103 +4833 4 0 1409 133 78 103 +4834 4 0 1733 1780 1418 1197 +4835 4 0 1872 2249 2244 1931 +4836 4 0 1715 1366 1142 2258 +4837 4 0 300 355 1560 298 +4838 4 0 1838 2226 2172 2211 +4839 4 0 2211 2226 2172 1863 +4840 4 0 1699 821 847 1648 +4841 4 0 2211 1759 1859 1886 +4842 4 0 2211 1886 1859 2134 +4843 4 0 654 749 1447 703 +4844 4 0 2248 2144 764 2209 +4845 4 0 2234 764 2248 2144 +4846 4 0 1482 1828 1361 2285 +4847 4 0 1790 397 1560 2300 +4848 4 0 1560 1790 2300 363 +4849 4 0 1851 1676 2191 2221 +4850 4 0 1933 686 726 667 +4851 4 0 2152 2027 2214 1848 +4852 4 0 2152 2214 1840 1848 +4853 4 0 1560 355 1790 363 +4854 4 0 1001 1373 2353 1014 +4855 4 0 711 1896 1745 720 +4856 4 0 1896 720 711 2165 +4857 4 0 2167 1931 1799 2065 +4858 4 0 1931 2167 1746 2176 +4859 4 0 2176 1931 2167 2065 +4860 4 0 2167 2075 1799 1931 +4861 4 0 1746 1931 2075 2167 +4862 4 0 586 567 1968 561 +4863 4 0 1861 2242 1420 1985 +4864 4 0 990 1003 1071 2312 +4865 4 0 1620 1018 1003 2312 +4866 4 0 2312 1018 1069 1706 +4867 4 0 2169 1945 681 691 +4868 4 0 265 328 255 1578 +4869 4 0 1861 2027 1848 2089 +4870 4 0 2251 2150 921 952 +4871 4 0 1815 1628 789 816 +4872 4 0 2192 2251 921 952 +4873 4 0 2244 2249 762 1943 +4874 4 0 1872 762 2178 2244 +4875 4 0 1872 2249 762 2244 +4876 4 0 2086 955 1853 1795 +4877 4 0 2131 1853 955 1973 +4878 4 0 2086 2131 2149 1853 +4879 4 0 2131 955 1853 2086 +4880 4 0 2149 2131 1973 1853 +4881 4 0 1847 1843 2194 1739 +4882 4 0 1847 2194 2022 1739 +4883 4 0 140 87 2348 93 +4884 4 0 2179 93 2348 1443 +4885 4 0 2134 1859 2213 2239 +4886 4 0 1843 2056 674 1902 +4887 4 0 675 2056 674 2194 +4888 4 0 2056 1843 674 2194 +4889 4 0 998 1715 1005 1068 +4890 4 0 2269 1004 1067 997 +4891 4 0 1600 350 337 274 +4892 4 0 2323 1505 1664 302 +4893 4 0 338 275 351 2323 +4894 4 0 1446 275 338 2323 +4895 4 0 2188 947 1795 922 +4896 4 0 958 1488 1018 1623 +4897 4 0 1853 1973 2093 964 +4898 4 0 1613 959 1036 1019 +4899 4 0 1613 959 1019 2294 +4900 4 0 316 1655 369 325 +4901 4 0 2239 1859 2213 754 +4902 4 0 2211 1859 2213 2134 +4903 4 0 1800 1813 1915 1739 +4904 4 0 1548 1813 1915 1800 +4905 4 0 421 2337 454 1493 +4906 4 0 906 1856 2219 1970 +4907 4 0 1970 1856 2219 1948 +4908 4 0 764 2234 2248 1971 +4909 4 0 1814 2213 2162 2134 +4910 4 0 2077 1814 2016 2162 +4911 4 0 1814 2095 2162 2077 +4912 4 0 2095 1814 2162 2134 +4913 4 0 1814 2213 2016 2162 +4914 4 0 2249 2244 1931 1943 +4915 4 0 2244 2220 1931 1943 +4916 4 0 2351 2136 1749 235 +4917 4 0 1783 237 1974 1401 +4918 4 0 1212 1270 1244 2303 +4919 4 0 1351 210 153 2252 +4920 4 0 2252 1435 217 1571 +4921 4 0 2252 210 1435 1351 +4922 4 0 1491 1502 664 654 +4923 4 0 636 703 654 1447 +4924 4 0 2039 1443 33 93 +4925 4 0 1443 35 33 93 +4926 4 0 37 1443 93 35 +4927 4 0 2196 848 846 875 +4928 4 0 1419 2353 875 846 +4929 4 0 1699 849 847 821 +4930 4 0 1864 1239 1346 1287 +4931 4 0 467 464 1434 431 +4932 4 0 2321 463 1391 430 +4933 4 0 2321 1764 1391 463 +4934 4 0 1864 2062 1239 1287 +4935 4 0 1603 463 1764 488 +4936 4 0 1864 1344 2062 1287 +4937 4 0 2305 1070 1019 1613 +4938 4 0 249 1456 171 2201 +4939 4 0 1450 117 101 243 +4940 4 0 1450 243 1776 117 +4941 4 0 1646 1450 101 243 +4942 4 0 1503 164 251 243 +4943 4 0 251 243 164 176 +4944 4 0 2335 1356 353 295 +4945 4 0 1485 2202 240 99 +4946 4 0 2202 99 141 240 +4947 4 0 2203 102 52 118 +4948 4 0 865 1463 2292 1613 +4949 4 0 2203 118 52 69 +4950 4 0 52 2203 1644 102 +4951 4 0 252 177 165 1444 +4952 4 0 252 165 1504 1444 +4953 4 0 2292 2180 1463 900 +4954 4 0 2292 1463 865 900 +4955 4 0 133 2268 1355 196 +4956 4 0 133 172 103 2163 +4957 4 0 2305 1030 2306 941 +4958 4 0 2293 896 860 2290 +4959 4 0 896 2293 860 893 +4960 4 0 2293 959 910 1364 +4961 4 0 2293 910 2290 1364 +4962 4 0 1520 2325 1225 1251 +4963 4 0 1374 1521 2286 1373 +4964 4 0 1073 2121 1368 1686 +4965 4 0 1686 1002 1073 1058 +4966 4 0 296 1483 180 216 +4967 4 0 304 1399 1483 151 +4968 4 0 2210 2250 1042 1365 +4969 4 0 1906 2250 1063 1042 +4970 4 0 1477 2210 1906 1042 +4971 4 0 1243 1477 1211 2210 +4972 4 0 1906 2210 2250 1042 +4973 4 0 1358 478 492 2328 +4974 4 0 2085 1358 515 2287 +4975 4 0 492 1358 1470 1593 +4976 4 0 492 1358 515 1470 +4977 4 0 577 1471 2038 564 +4978 4 0 2287 482 471 496 +4979 4 0 585 2212 576 1717 +4980 4 0 576 585 565 2212 +4981 4 0 492 478 1358 1593 +4982 4 0 485 506 2322 2288 +4983 4 0 2288 1469 2322 485 +4984 4 0 506 504 2288 485 +4985 4 0 779 816 1627 1573 +4986 4 0 1627 842 2324 1573 +4987 4 0 507 2317 505 486 +4988 4 0 507 497 2317 486 +4989 4 0 2296 813 815 837 +4990 4 0 2296 1497 815 1629 +4991 4 0 1497 787 815 1629 +4992 4 0 1493 315 225 214 +4993 4 0 1493 225 168 214 +4994 4 0 1655 226 316 215 +4995 4 0 1655 169 215 2256 +4996 4 0 1613 1036 1131 1118 +4997 4 0 1613 1118 1131 1177 +4998 4 0 1488 1035 1117 1130 +4999 4 0 1488 1117 1176 1130 +5000 4 0 1956 1216 1368 1210 +5001 4 0 1380 961 917 887 +5002 4 0 1715 1005 1068 1087 +5003 4 0 2252 70 123 113 +5004 4 0 353 1356 2335 1505 +5005 4 0 1682 482 510 2085 +5006 4 0 2085 481 510 505 +5007 4 0 2317 2085 2267 505 +5008 4 0 1682 2267 538 2085 +5009 4 0 1497 841 815 801 +5010 4 0 2252 217 161 178 +5011 4 0 1571 1710 267 178 +5012 4 0 292 178 1710 1571 +5013 4 0 1516 1687 2258 1380 +5014 4 0 1516 2258 1381 1380 +5015 4 0 2288 504 503 480 +5016 4 0 2288 2058 480 503 +5017 4 0 2288 2058 503 1510 +5018 4 0 2103 590 568 578 +5019 4 0 1626 578 590 2103 +5020 4 0 1939 587 581 2104 +5021 4 0 917 2257 861 929 +5022 4 0 874 2285 916 928 +5023 4 0 105 2224 2252 2319 +5024 4 0 1545 266 347 329 +5025 4 0 2205 1545 266 347 +5026 4 0 1506 1521 1001 1072 +5027 4 0 1506 1373 1001 1521 +5028 4 0 1002 1073 1015 1686 +5029 4 0 265 328 1578 346 +5030 4 0 265 346 1578 1467 +5031 4 0 376 1578 346 1467 +5032 4 0 209 181 2223 152 +5033 4 0 209 2223 271 1465 +5034 4 0 1633 1465 2223 209 +5035 4 0 271 1465 2223 1350 +5036 4 0 913 1474 981 970 +5037 4 0 2224 1351 105 2252 +5038 4 0 2224 348 1351 1435 +5039 4 0 68 2163 1636 82 +5040 4 0 1609 812 786 2225 +5041 4 0 1609 2225 2196 1832 +5042 4 0 1603 513 518 490 +5043 4 0 2282 1353 1903 333 +5044 4 0 1372 876 847 849 +5045 4 0 2084 36 92 34 +5046 4 0 1065 1552 1165 1090 +5047 4 0 199 258 1881 179 +5048 4 0 284 179 1654 1881 +5049 4 0 284 179 1881 258 +5050 4 0 1166 1472 2228 1224 +5051 4 0 1483 180 216 151 +5052 4 0 1653 200 151 216 +5053 4 0 2329 665 716 641 +5054 4 0 716 2329 641 708 +5055 4 0 1653 151 1483 216 +5056 4 0 2329 617 1587 623 +5057 4 0 2329 617 641 1587 +5058 4 0 2229 124 71 114 +5059 4 0 2231 1652 57 3 +5060 4 0 57 3 2061 2231 +5061 4 0 1478 1104 1175 2232 +5062 4 0 89 13 73 1768 +5063 4 0 1768 89 128 73 +5064 4 0 1768 128 1729 116 +5065 4 0 1768 1729 2334 116 +5066 4 0 1185 1591 1639 1128 +5067 4 0 1639 1185 1645 2228 +5068 4 0 1011 1591 1639 2228 +5069 4 0 1011 1460 1440 2228 +5070 4 0 162 1352 1608 211 +5071 4 0 162 179 218 1654 +5072 4 0 2229 1608 1654 162 +5073 4 0 1254 2273 2347 1206 +5074 4 0 1254 1260 2347 1313 +5075 4 0 1107 2235 1147 1187 +5076 4 0 2347 1206 2273 2304 +5077 4 0 1590 1187 2235 1107 +5078 4 0 1062 1207 1657 1779 +5079 4 0 1008 1448 2273 2024 +5080 4 0 1313 1312 1260 2347 +5081 4 0 1402 2235 1248 2023 +5082 4 0 2283 1624 1172 1366 +5083 4 0 196 172 2163 1637 +5084 4 0 1532 2237 1483 1533 +5085 4 0 1532 352 1507 404 +5086 4 0 2237 1483 212 296 +5087 4 0 1483 216 1531 305 +5088 4 0 1483 1653 216 305 +5089 4 0 1483 1531 216 296 +5090 4 0 64 1935 2161 1589 +5091 4 0 304 1399 331 1483 +5092 4 0 64 10 1589 1397 +5093 4 0 80 1723 70 123 +5094 4 0 1832 2196 1361 2225 +5095 4 0 490 488 463 1603 +5096 4 0 1764 488 463 1359 +5097 4 0 2223 95 122 1619 +5098 4 0 1520 2325 1251 1621 +5099 4 0 1933 686 667 627 +5100 4 0 1933 627 667 1555 +5101 4 0 1555 2329 627 667 +5102 4 0 8 1935 64 10 +5103 4 0 649 653 1716 618 +5104 4 0 613 1939 588 609 +5105 4 0 1377 407 379 374 +5106 4 0 134 2154 110 79 +5107 4 0 1456 195 229 231 +5108 4 0 1709 1376 1714 412 +5109 4 0 1456 195 160 229 +5110 4 0 249 195 171 1456 +5111 4 0 2201 132 1456 171 +5112 4 0 1456 160 195 132 +5113 4 0 82 2163 103 143 +5114 4 0 873 840 1566 835 +5115 4 0 859 873 1566 835 +5116 4 0 130 1354 87 85 +5117 4 0 2348 1438 87 1354 +5118 4 0 1611 1215 1259 1261 +5119 4 0 2281 1215 1696 1611 +5120 4 0 2049 1917 1215 1205 +5121 4 0 2049 1215 1917 2281 +5122 4 0 1262 1260 2304 1216 +5123 4 0 1216 1260 2304 1206 +5124 4 0 2347 1260 1206 2304 +5125 4 0 1082 1111 2067 1230 +5126 4 0 1789 2067 1280 1220 +5127 4 0 509 484 1651 489 +5128 4 0 1402 1323 1248 1321 +5129 4 0 1321 1402 1272 1248 +5130 4 0 1323 2023 1248 1266 +5131 4 0 1323 1402 1248 2023 +5132 4 0 1537 106 67 116 +5133 4 0 73 116 2334 1537 +5134 4 0 258 81 142 2307 +5135 4 0 258 124 1875 284 +5136 4 0 1656 491 519 514 +5137 4 0 2314 1063 2250 1042 +5138 4 0 2314 2250 2343 1042 +5139 4 0 1219 2250 2210 1201 +5140 4 0 1875 71 124 81 +5141 4 0 1875 124 71 2229 +5142 4 0 1647 1875 71 2229 +5143 4 0 2043 1631 295 345 +5144 4 0 2335 345 2043 295 +5145 4 0 2161 149 1349 180 +5146 4 0 2161 151 121 180 +5147 4 0 2161 94 121 151 +5148 4 0 2161 64 121 94 +5149 4 0 1194 1476 2259 1252 +5150 4 0 1356 197 2005 134 +5151 4 0 1871 519 548 543 +5152 4 0 756 1877 698 760 +5153 4 0 696 1877 746 760 +5154 4 0 2080 2185 1432 992 +5155 4 0 152 181 2223 122 +5156 4 0 122 181 2223 1350 +5157 4 0 1129 1579 1071 1520 +5158 4 0 1657 1520 1129 1193 +5159 4 0 369 2264 325 1655 +5160 4 0 563 2038 559 527 +5161 4 0 506 527 532 2038 +5162 4 0 816 1627 814 788 +5163 4 0 779 725 1816 788 +5164 4 0 1627 788 783 814 +5165 4 0 2317 507 528 2042 +5166 4 0 1819 726 780 787 +5167 4 0 1428 956 989 939 +5168 4 0 2005 83 104 144 +5169 4 0 2005 104 173 144 +5170 4 0 1923 1285 1461 1241 +5171 4 0 1618 1353 84 135 +5172 4 0 2344 1500 1618 1353 +5173 4 0 2255 1130 1176 1189 +5174 4 0 2255 1176 1231 1189 +5175 4 0 1488 2255 1130 1176 +5176 4 0 1640 1394 1231 2255 +5177 4 0 1539 1232 1177 1190 +5178 4 0 116 2256 156 169 +5179 4 0 1522 989 1037 2114 +5180 4 0 215 2256 169 156 +5181 4 0 1655 2256 1560 1729 +5182 4 0 168 155 115 1351 +5183 4 0 168 155 1351 214 +5184 4 0 1493 214 168 1351 +5185 4 0 2316 94 2161 151 +5186 4 0 1066 2259 1194 1041 +5187 4 0 1585 1488 2309 926 +5188 4 0 82 2163 125 68 +5189 4 0 2163 125 1776 288 +5190 4 0 1359 2096 2106 428 +5191 4 0 1428 989 956 1037 +5192 4 0 989 1037 1428 1522 +5193 4 0 854 2128 917 1380 +5194 4 0 2128 861 2257 1362 +5195 4 0 1380 2257 2128 917 +5196 4 0 2288 480 485 504 +5197 4 0 2288 480 1357 448 +5198 4 0 1573 1628 842 1364 +5199 4 0 457 1714 440 418 +5200 4 0 816 1628 842 1573 +5201 4 0 567 571 542 561 +5202 4 0 2085 481 505 486 +5203 4 0 2085 481 486 1358 +5204 4 0 2024 1051 1022 1138 +5205 4 0 2024 1138 1022 1058 +5206 4 0 1497 2296 815 841 +5207 4 0 1497 1363 2296 841 +5208 4 0 1629 813 815 2296 +5209 4 0 1413 425 459 415 +5210 4 0 415 2328 1413 1416 +5211 4 0 1416 2328 1358 415 +5212 4 0 2258 961 1687 1029 +5213 4 0 2258 1687 961 1380 +5214 4 0 2258 1044 1381 1380 +5215 4 0 2258 1044 1380 961 +5216 4 0 1622 1032 1060 2283 +5217 4 0 143 172 2163 103 +5218 4 0 869 1628 1364 842 +5219 4 0 862 1628 1364 869 +5220 4 0 1628 824 842 869 +5221 4 0 2122 852 1362 1433 +5222 4 0 2122 825 852 1433 +5223 4 0 1502 610 636 598 +5224 4 0 1590 1214 1187 1151 +5225 4 0 1590 1187 1214 1248 +5226 4 0 2210 1219 1263 1906 +5227 4 0 1088 1063 2129 1219 +5228 4 0 1663 1505 1664 2311 +5229 4 0 1410 1355 190 145 +5230 4 0 2145 696 746 1542 +5231 4 0 1360 1479 461 464 +5232 4 0 1712 2203 118 270 +5233 4 0 859 873 1623 1566 +5234 4 0 1010 2343 1563 1365 +5235 4 0 69 1693 1712 126 +5236 4 0 293 1693 126 1712 +5237 4 0 2253 2236 1363 914 +5238 4 0 2236 2253 912 914 +5239 4 0 2253 980 912 914 +5240 4 0 1703 491 1479 464 +5241 4 0 1656 1703 491 1479 +5242 4 0 1656 514 1479 491 +5243 4 0 1372 847 1699 849 +5244 4 0 2054 194 232 230 +5245 4 0 2054 1485 159 230 +5246 4 0 302 1356 239 353 +5247 4 0 2054 131 159 1485 +5248 4 0 353 239 295 1356 +5249 4 0 1505 1356 302 353 +5250 4 0 2043 1356 2335 295 +5251 4 0 2237 1349 1507 324 +5252 4 0 352 2237 1507 324 +5253 4 0 1533 1349 1507 2237 +5254 4 0 2237 212 1349 272 +5255 4 0 369 1413 2264 1412 +5256 4 0 2058 465 495 470 +5257 4 0 2302 2058 450 1357 +5258 4 0 2210 2250 1365 1171 +5259 4 0 2210 1171 1201 2250 +5260 4 0 1735 2288 504 503 +5261 4 0 504 535 1735 503 +5262 4 0 1510 503 2288 1735 +5263 4 0 174 227 2351 158 +5264 4 0 314 363 298 2300 +5265 4 0 2299 2300 363 314 +5266 4 0 59 112 2039 93 +5267 4 0 1388 112 244 2039 +5268 4 0 1546 1235 1213 2233 +5269 4 0 1453 1235 2233 1316 +5270 4 0 1453 1787 1235 1681 +5271 4 0 92 1731 58 111 +5272 4 0 2233 1271 1235 1213 +5273 4 0 257 1749 1707 2136 +5274 4 0 1505 2335 353 411 +5275 4 0 411 1529 353 1505 +5276 4 0 2252 123 161 113 +5277 4 0 2252 1723 123 70 +5278 4 0 2265 1438 87 39 +5279 4 0 1401 237 219 1783 +5280 4 0 2229 284 179 1654 +5281 4 0 2316 137 94 151 +5282 4 0 2316 94 137 74 +5283 4 0 1066 2259 1208 1194 +5284 4 0 318 1467 1635 2282 +5285 4 0 1211 1269 1477 1243 +5286 4 0 2301 1477 1211 1269 +5287 4 0 2301 1237 1269 1211 +5288 4 0 2303 1212 1270 2247 +5289 4 0 2247 1212 1238 1366 +5290 4 0 133 78 1658 1409 +5291 4 0 133 78 109 1658 +5292 4 0 79 104 134 2005 +5293 4 0 2303 1622 1302 1264 +5294 4 0 290 1467 310 343 +5295 4 0 2267 510 1736 545 +5296 4 0 2041 1736 545 2267 +5297 4 0 583 563 2038 559 +5298 4 0 560 562 2212 582 +5299 4 0 528 2317 2042 2267 +5300 4 0 2042 2212 560 562 +5301 4 0 1819 738 716 2048 +5302 4 0 782 716 1819 738 +5303 4 0 1816 739 717 783 +5304 4 0 576 551 2212 565 +5305 4 0 2046 717 1816 739 +5306 4 0 1766 1603 524 490 +5307 4 0 119 60 1576 2123 +5308 4 0 1576 60 107 2 +5309 4 0 1091 1517 1116 1240 +5310 4 0 2084 318 2282 1903 +5311 4 0 1551 1537 116 106 +5312 4 0 1285 1241 1923 1281 +5313 4 0 1923 2207 1281 1241 +5314 4 0 92 36 2084 86 +5315 4 0 822 1673 2225 799 +5316 4 0 799 2225 790 1722 +5317 4 0 1722 1609 2225 790 +5318 4 0 1731 92 2282 147 +5319 4 0 513 490 1603 488 +5320 4 0 2282 318 2084 287 +5321 4 0 2268 133 2163 196 +5322 4 0 1778 1738 1619 75 +5323 4 0 1062 1085 1786 1207 +5324 4 0 1193 1621 1251 1207 +5325 4 0 1251 1273 1207 1621 +5326 4 0 1383 2106 434 475 +5327 4 0 434 1543 2096 1383 +5328 4 0 434 2096 2106 1383 +5329 4 0 799 1722 731 786 +5330 4 0 799 2225 1722 786 +5331 4 0 786 1609 2225 1722 +5332 4 0 1688 561 1968 542 +5333 4 0 1688 518 1603 513 +5334 4 0 1605 488 1359 460 +5335 4 0 2123 2316 285 137 +5336 4 0 1543 2096 1384 395 +5337 4 0 487 2106 1359 2096 +5338 4 0 2123 60 74 119 +5339 4 0 2127 2259 1288 1228 +5340 4 0 1066 2259 1091 1208 +5341 4 0 2258 1366 1142 1102 +5342 4 0 1515 2258 1687 1029 +5343 4 0 1384 2096 462 1359 +5344 4 0 462 487 1359 2096 +5345 4 0 57 2231 2061 108 +5346 4 0 61 57 2061 108 +5347 4 0 1926 786 799 731 +5348 4 0 1926 749 731 799 +5349 4 0 508 487 2106 1359 +5350 4 0 301 350 1600 274 +5351 4 0 998 1044 1715 1068 +5352 4 0 1715 1044 998 1381 +5353 4 0 2269 1599 1067 1004 +5354 4 0 2269 1067 1043 997 +5355 4 0 370 1807 323 2264 +5356 4 0 1807 2264 1413 1412 +5357 4 0 2005 46 79 83 +5358 4 0 2005 1598 46 83 +5359 4 0 79 83 104 2005 +5360 4 0 1380 998 917 961 +5361 4 0 2257 998 1380 1381 +5362 4 0 1807 1824 323 2264 +5363 4 0 1529 396 435 401 +5364 4 0 1011 1460 2228 1039 +5365 4 0 1591 2228 1440 1185 +5366 4 0 1127 1184 1369 2230 +5367 4 0 1461 1369 2230 1012 +5368 4 0 1461 2230 1642 1012 +5369 4 0 114 1352 2229 162 +5370 4 0 114 2229 124 162 +5371 4 0 1352 1704 114 2229 +5372 4 0 1025 2114 1127 989 +5373 4 0 2114 1369 1127 1037 +5374 4 0 2269 2285 928 916 +5375 4 0 258 124 81 1875 +5376 4 0 1482 850 872 2118 +5377 4 0 299 1705 356 354 +5378 4 0 299 315 356 1493 +5379 4 0 2352 872 1480 898 +5380 4 0 1036 1046 977 1613 +5381 4 0 1364 977 981 1046 +5382 4 0 1613 977 1364 1046 +5383 4 0 1045 2253 1035 976 +5384 4 0 1045 2253 976 980 +5385 4 0 1488 1035 1045 2253 +5386 4 0 1602 856 846 832 +5387 4 0 2118 2286 1361 1419 +5388 4 0 1419 846 1602 856 +5389 4 0 1403 1589 127 1349 +5390 4 0 2161 1589 149 88 +5391 4 0 88 1397 1589 127 +5392 4 0 1403 127 1589 1397 +5393 4 0 149 1589 2161 1349 +5394 4 0 316 325 226 1655 +5395 4 0 169 1655 215 226 +5396 4 0 1118 1613 1036 1019 +5397 4 0 854 861 2122 830 +5398 4 0 1619 95 1738 2223 +5399 4 0 1619 1738 95 75 +5400 4 0 1062 1621 1193 1207 +5401 4 0 1207 1786 1062 1621 +5402 4 0 2236 837 863 2296 +5403 4 0 1561 2296 2236 863 +5404 4 0 817 1362 2122 2128 +5405 4 0 1484 2135 1596 2133 +5406 4 0 912 1561 2236 863 +5407 4 0 2133 55 1596 1484 +5408 4 0 1299 1906 1279 2129 +5409 4 0 1318 1320 1271 1536 +5410 4 0 2129 1088 1229 1113 +5411 4 0 1693 144 126 83 +5412 4 0 1693 83 2005 144 +5413 4 0 1693 83 126 69 +5414 4 0 799 759 731 1925 +5415 4 0 2154 2005 134 1356 +5416 4 0 1722 1925 799 731 +5417 4 0 1688 1968 518 542 +5418 4 0 1968 547 518 542 +5419 4 0 1688 542 518 513 +5420 4 0 1968 579 547 567 +5421 4 0 731 664 2171 695 +5422 4 0 349 1356 322 2154 +5423 4 0 1509 1200 1638 1210 +5424 4 0 1617 1210 1155 1200 +5425 4 0 2096 428 1359 395 +5426 4 0 1543 434 2096 395 +5427 4 0 2154 79 44 1439 +5428 4 0 2266 382 349 1663 +5429 4 0 1522 1037 1428 1047 +5430 4 0 1585 1047 1428 1452 +5431 4 0 1585 1369 1522 1047 +5432 4 0 1522 1047 1428 1585 +5433 4 0 1474 1649 1462 913 +5434 4 0 2314 2250 1063 1823 +5435 4 0 1219 1158 2250 1201 +5436 4 0 1823 1158 2250 1219 +5437 4 0 211 2300 298 1352 +5438 4 0 1089 1862 1064 1224 +5439 4 0 1472 1266 1224 1204 +5440 4 0 1472 1266 1204 2235 +5441 4 0 1414 1440 1048 1591 +5442 4 0 1445 1038 1048 970 +5443 4 0 2269 997 916 928 +5444 4 0 2269 916 997 960 +5445 4 0 916 960 2269 1554 +5446 4 0 493 2058 1357 2288 +5447 4 0 516 2058 2288 1510 +5448 4 0 1409 133 2163 2268 +5449 4 0 2326 1481 435 429 +5450 4 0 2326 396 1529 2323 +5451 4 0 352 2237 272 296 +5452 4 0 324 1349 272 2237 +5453 4 0 1355 1468 2280 2254 +5454 4 0 506 2288 504 527 +5455 4 0 506 2322 527 2038 +5456 4 0 2322 2288 506 527 +5457 4 0 779 1627 816 788 +5458 4 0 1627 779 1816 788 +5459 4 0 787 1629 780 1819 +5460 4 0 1629 787 782 1819 +5461 4 0 1629 813 787 815 +5462 4 0 2269 960 997 1043 +5463 4 0 1956 2304 1368 1216 +5464 4 0 61 108 2061 120 +5465 4 0 1778 61 2061 120 +5466 4 0 1786 1287 1273 1227 +5467 4 0 1100 2062 1085 1227 +5468 4 0 2285 2269 928 1361 +5469 4 0 916 853 1554 2285 +5470 4 0 2285 1554 916 2269 +5471 4 0 853 874 1828 2285 +5472 4 0 2285 1828 1361 877 +5473 4 0 2168 1579 1520 1071 +5474 4 0 1780 2327 1137 2049 +5475 4 0 140 148 2179 193 +5476 4 0 208 2179 148 193 +5477 4 0 208 1634 2179 193 +5478 4 0 1781 1138 2024 2273 +5479 4 0 1781 1138 2273 1198 +5480 4 0 1033 2024 2273 1061 +5481 4 0 2282 1731 2084 92 +5482 4 0 192 1635 147 207 +5483 4 0 318 1635 287 2282 +5484 4 0 82 2163 143 125 +5485 4 0 1776 2163 1636 68 +5486 4 0 68 125 1776 2163 +5487 4 0 1517 1293 1345 1347 +5488 4 0 74 2123 119 137 +5489 4 0 2123 74 2316 137 +5490 4 0 1293 1347 1518 1348 +5491 4 0 1091 1208 2259 1228 +5492 4 0 1517 1345 1293 1288 +5493 4 0 1517 2127 1345 1288 +5494 4 0 1388 59 112 2039 +5495 4 0 112 77 59 1388 +5496 4 0 112 1385 77 1388 +5497 4 0 111 76 1565 58 +5498 4 0 111 1565 76 242 +5499 4 0 1731 58 111 1565 +5500 4 0 1446 386 384 1360 +5501 4 0 1545 329 384 1446 +5502 4 0 147 1635 1965 207 +5503 4 0 1061 1781 2024 2273 +5504 4 0 1061 1781 2273 1198 +5505 4 0 1083 1781 1061 1198 +5506 4 0 1059 2327 1780 2049 +5507 4 0 561 513 531 1719 +5508 4 0 561 542 1688 513 +5509 4 0 208 1966 148 2179 +5510 4 0 208 1634 1966 2179 +5511 4 0 1633 286 1773 1738 +5512 4 0 209 138 152 2223 +5513 4 0 1633 2223 138 209 +5514 4 0 301 388 2254 1543 +5515 4 0 1133 2306 1030 1096 +5516 4 0 1164 1096 1784 1133 +5517 4 0 1784 1096 2306 1133 +5518 4 0 294 253 1468 344 +5519 4 0 196 253 1637 1468 +5520 4 0 1631 197 295 254 +5521 4 0 1029 1624 1515 1149 +5522 4 0 1624 1098 1149 1029 +5523 4 0 2343 1097 1028 1148 +5524 4 0 1482 1570 2285 2269 +5525 4 0 1613 1371 1118 1177 +5526 4 0 2180 925 1463 900 +5527 4 0 1540 1276 1512 1335 +5528 4 0 1539 1535 1276 1540 +5529 4 0 2180 1613 925 1539 +5530 4 0 2319 2224 2252 321 +5531 4 0 1539 1232 1512 1276 +5532 4 0 1906 1063 1219 2129 +5533 4 0 1906 2250 2210 1219 +5534 4 0 1063 1219 2250 1906 +5535 4 0 369 415 425 1413 +5536 4 0 1352 1551 106 2350 +5537 4 0 1354 1438 2195 335 +5538 4 0 649 2046 739 666 +5539 4 0 1690 666 2046 649 +5540 4 0 1733 1197 1418 1173 +5541 4 0 1780 1197 1137 1418 +5542 4 0 1966 148 171 208 +5543 4 0 207 1965 147 170 +5544 4 0 1083 2064 1198 1174 +5545 4 0 1083 1781 1198 2064 +5546 4 0 1354 85 1406 2265 +5547 4 0 1535 1613 1371 968 +5548 4 0 2303 1264 1302 1270 +5549 4 0 152 122 2223 95 +5550 4 0 1619 122 2223 1350 +5551 4 0 1370 1163 1520 1225 +5552 4 0 1871 1656 519 514 +5553 4 0 1871 514 519 543 +5554 4 0 756 1648 760 800 +5555 4 0 756 1648 1877 760 +5556 4 0 1778 1738 75 120 +5557 4 0 61 120 1778 75 +5558 4 0 1085 1786 1207 1227 +5559 4 0 1085 2062 1786 1227 +5560 4 0 1019 957 2305 2293 +5561 4 0 2293 959 1019 957 +5562 4 0 1864 1100 1239 2062 +5563 4 0 910 2290 862 896 +5564 4 0 2293 959 896 910 +5565 4 0 2293 896 2290 910 +5566 4 0 2328 1413 459 415 +5567 4 0 1416 369 1413 415 +5568 4 0 414 465 2302 424 +5569 4 0 2342 368 414 424 +5570 4 0 2342 414 2302 424 +5571 4 0 1433 830 825 805 +5572 4 0 2122 825 830 861 +5573 4 0 1433 830 2122 825 +5574 4 0 2263 1526 537 536 +5575 4 0 1396 1332 2207 1281 +5576 4 0 2207 1231 1241 2255 +5577 4 0 1396 1332 1281 1334 +5578 4 0 731 1925 759 695 +5579 4 0 731 1925 695 2171 +5580 4 0 542 1968 547 567 +5581 4 0 1591 1135 1038 1128 +5582 4 0 1591 1135 1128 1185 +5583 4 0 1369 1127 1037 1134 +5584 4 0 2114 1127 1369 2230 +5585 4 0 1369 1127 1134 1184 +5586 4 0 211 314 1608 218 +5587 4 0 162 211 1608 218 +5588 4 0 162 1608 1654 218 +5589 4 0 1472 1064 2228 1224 +5590 4 0 1185 1645 2228 1166 +5591 4 0 1039 1645 2228 1639 +5592 4 0 162 2229 1608 1352 +5593 4 0 162 2229 124 179 +5594 4 0 162 2229 179 1654 +5595 4 0 1065 2230 1223 1165 +5596 4 0 750 787 1818 726 +5597 4 0 1818 801 787 750 +5598 4 0 562 2042 2267 560 +5599 4 0 1595 458 413 1593 +5600 4 0 2318 1350 1768 89 +5601 4 0 1768 1350 128 89 +5602 4 0 823 1433 1362 852 +5603 4 0 1362 861 2122 2128 +5604 4 0 140 2179 1354 193 +5605 4 0 2179 1466 193 1634 +5606 4 0 2179 1466 1354 193 +5607 4 0 192 2282 1353 139 +5608 4 0 2282 1467 1635 192 +5609 4 0 192 147 2282 139 +5610 4 0 2282 1635 147 192 +5611 4 0 143 172 201 1637 +5612 4 0 1220 1143 1202 2283 +5613 4 0 1060 1624 2283 1032 +5614 4 0 2228 1278 1641 1234 +5615 4 0 2230 1277 1223 1233 +5616 4 0 1719 534 525 555 +5617 4 0 1100 1239 2062 1227 +5618 4 0 1162 1617 1368 1210 +5619 4 0 1617 1210 1200 1509 +5620 4 0 1200 1509 1715 1617 +5621 4 0 2253 1369 1047 1045 +5622 4 0 1452 1047 969 2253 +5623 4 0 2308 2309 1452 2253 +5624 4 0 2308 1452 912 2253 +5625 4 0 1673 799 786 2225 +5626 4 0 1673 1926 786 799 +5627 4 0 559 2038 532 527 +5628 4 0 725 739 2046 1816 +5629 4 0 725 1816 788 739 +5630 4 0 528 2042 533 560 +5631 4 0 2042 2212 565 560 +5632 4 0 1819 738 2048 726 +5633 4 0 1819 787 738 726 +5634 4 0 256 329 1446 327 +5635 4 0 256 327 1446 260 +5636 4 0 1545 329 1446 256 +5637 4 0 1446 256 260 1616 +5638 4 0 1545 1354 256 1446 +5639 4 0 1017 1606 1015 1095 +5640 4 0 1017 1087 1606 1095 +5641 4 0 951 1017 1606 1015 +5642 4 0 1460 1242 1512 1440 +5643 4 0 1088 1219 2129 1229 +5644 4 0 69 118 126 1712 +5645 4 0 69 2203 118 1712 +5646 4 0 1085 1062 1779 1207 +5647 4 0 1085 1779 1167 1207 +5648 4 0 534 1719 2215 513 +5649 4 0 90 84 1618 1475 +5650 4 0 1618 135 84 90 +5651 4 0 1082 1230 2067 1220 +5652 4 0 1082 2067 1789 1220 +5653 4 0 68 125 117 1776 +5654 4 0 68 51 1776 117 +5655 4 0 1421 1245 1113 1229 +5656 4 0 1289 1421 1229 1245 +5657 4 0 1421 1113 2129 1229 +5658 4 0 1421 1245 1393 1113 +5659 4 0 1421 1289 1229 2129 +5660 4 0 1789 1220 2283 1082 +5661 4 0 1169 1220 1082 1782 +5662 4 0 1775 176 201 125 +5663 4 0 2067 1111 1246 1230 +5664 4 0 1643 1246 2067 1111 +5665 4 0 1643 1393 1267 1111 +5666 4 0 60 119 1576 107 +5667 4 0 1091 1228 1517 1240 +5668 4 0 1091 2127 1517 1228 +5669 4 0 1091 2259 2127 1228 +5670 4 0 1719 561 542 1451 +5671 4 0 2215 525 1719 534 +5672 4 0 1719 542 534 1451 +5673 4 0 561 513 1719 542 +5674 4 0 1568 1353 1578 1467 +5675 4 0 1729 169 2256 116 +5676 4 0 1600 1567 1543 301 +5677 4 0 1384 2298 1543 1600 +5678 4 0 1644 102 241 221 +5679 4 0 2203 241 1644 102 +5680 4 0 1871 568 543 548 +5681 4 0 1871 548 578 568 +5682 4 0 698 1877 696 760 +5683 4 0 698 2145 696 1877 +5684 4 0 695 631 664 1632 +5685 4 0 664 1632 2171 695 +5686 4 0 1717 632 607 646 +5687 4 0 1717 646 607 597 +5688 4 0 1497 787 801 815 +5689 4 0 1497 801 787 1818 +5690 4 0 1497 801 1818 1630 +5691 4 0 1682 510 1736 2267 +5692 4 0 2267 505 510 528 +5693 4 0 2267 2085 510 505 +5694 4 0 1682 510 2267 2085 +5695 4 0 1651 514 1870 509 +5696 4 0 509 1651 514 489 +5697 4 0 509 546 514 1870 +5698 4 0 2279 1394 1370 974 +5699 4 0 2279 1370 1176 1488 +5700 4 0 1652 2231 57 98 +5701 4 0 1631 126 144 202 +5702 4 0 1711 202 177 126 +5703 4 0 577 1471 564 584 +5704 4 0 1471 2038 564 559 +5705 4 0 560 585 2212 565 +5706 4 0 2048 738 665 686 +5707 4 0 2329 2048 686 667 +5708 4 0 1209 1215 1499 1261 +5709 4 0 1499 1611 1261 1215 +5710 4 0 2278 2277 2276 456 +5711 4 0 1031 1059 2049 2327 +5712 4 0 140 148 93 2179 +5713 4 0 1061 1254 1198 2273 +5714 4 0 1407 1616 146 91 +5715 4 0 812 786 2225 1610 +5716 4 0 1828 1361 851 2225 +5717 4 0 632 646 1542 696 +5718 4 0 1542 2145 696 646 +5719 4 0 1805 2206 1810 1612 +5720 4 0 1631 144 173 202 +5721 4 0 1711 1631 202 126 +5722 4 0 2 107 1576 1652 +5723 4 0 1518 1517 1250 1116 +5724 4 0 2288 2058 1357 480 +5725 4 0 2324 1573 842 1364 +5726 4 0 2085 486 505 2317 +5727 4 0 2085 486 1470 1358 +5728 4 0 1679 1431 1378 1810 +5729 4 0 209 1773 185 138 +5730 4 0 1974 1773 138 185 +5731 4 0 2321 1359 430 383 +5732 4 0 1390 383 2321 430 +5733 4 0 1600 1384 1359 395 +5734 4 0 1714 457 1888 1709 +5735 4 0 867 1382 1715 1362 +5736 4 0 1382 1715 2257 1381 +5737 4 0 1481 484 435 429 +5738 4 0 1481 461 484 429 +5739 4 0 434 428 483 2106 +5740 4 0 2106 428 483 460 +5741 4 0 1605 483 460 2106 +5742 4 0 839 1828 877 851 +5743 4 0 874 1828 877 839 +5744 4 0 1610 1828 839 851 +5745 4 0 2085 451 482 481 +5746 4 0 2287 459 482 451 +5747 4 0 431 1360 1436 384 +5748 4 0 143 172 1637 2163 +5749 4 0 143 1775 2163 1637 +5750 4 0 457 448 485 1469 +5751 4 0 412 1709 448 457 +5752 4 0 458 449 1593 486 +5753 4 0 458 1593 449 413 +5754 4 0 871 1364 864 2324 +5755 4 0 871 913 864 1364 +5756 4 0 1649 913 1364 1422 +5757 4 0 2324 1649 1364 1422 +5758 4 0 2324 864 871 838 +5759 4 0 870 863 2236 837 +5760 4 0 870 912 2236 863 +5761 4 0 351 396 2323 1529 +5762 4 0 1409 82 78 45 +5763 4 0 1419 950 2353 2286 +5764 4 0 87 37 2348 93 +5765 4 0 2348 37 1443 93 +5766 4 0 116 2256 1551 106 +5767 4 0 116 156 2256 106 +5768 4 0 1396 2207 1640 1231 +5769 4 0 1241 2255 1231 1189 +5770 4 0 115 155 105 1351 +5771 4 0 1659 2179 1443 2039 +5772 4 0 1440 1242 1512 1190 +5773 4 0 1539 1440 1512 1190 +5774 4 0 1483 1532 1531 296 +5775 4 0 1062 1207 1193 1657 +5776 4 0 2196 1361 1419 1832 +5777 4 0 1003 1018 1069 2312 +5778 4 0 1071 1132 1370 2312 +5779 4 0 1071 1003 1132 2312 +5780 4 0 2312 1132 1370 1069 +5781 4 0 2168 1370 2312 1071 +5782 4 0 2303 1032 1622 2283 +5783 4 0 2254 336 301 238 +5784 4 0 2254 294 336 238 +5785 4 0 1749 1809 2351 235 +5786 4 0 423 1446 394 1545 +5787 4 0 1636 2163 319 2268 +5788 4 0 2327 1006 1506 2049 +5789 4 0 1404 347 2205 375 +5790 4 0 1404 347 375 408 +5791 4 0 2179 1354 2348 140 +5792 4 0 2282 1353 86 1903 +5793 4 0 2282 147 92 139 +5794 4 0 1606 949 951 1362 +5795 4 0 1606 1015 1534 951 +5796 4 0 143 1637 201 1775 +5797 4 0 143 125 1775 201 +5798 4 0 1624 1060 2283 1782 +5799 4 0 2283 1143 1782 1220 +5800 4 0 1082 1782 1220 2283 +5801 4 0 1060 1082 2283 1782 +5802 4 0 1404 329 347 390 +5803 4 0 1404 1436 329 390 +5804 4 0 1248 1187 1204 2235 +5805 4 0 2023 1266 1089 2235 +5806 4 0 1436 329 1545 1404 +5807 4 0 2260 199 160 142 +5808 4 0 2260 199 142 258 +5809 4 0 1186 1498 1247 1203 +5810 4 0 1090 1203 1115 1498 +5811 4 0 1168 1822 1091 1208 +5812 4 0 1066 1822 2340 1194 +5813 4 0 323 2264 1824 1350 +5814 4 0 1366 1715 1516 2258 +5815 4 0 2257 917 861 2128 +5816 4 0 1380 917 854 887 +5817 4 0 1382 1715 1362 2257 +5818 4 0 1454 606 595 583 +5819 4 0 1454 606 583 584 +5820 4 0 1343 1288 2259 1274 +5821 4 0 1343 1341 1274 2259 +5822 4 0 2260 247 229 160 +5823 4 0 2260 199 247 160 +5824 4 0 2260 258 142 236 +5825 4 0 2084 32 34 92 +5826 4 0 2307 81 56 25 +5827 4 0 2307 100 142 236 +5828 4 0 2307 236 142 258 +5829 4 0 2154 79 46 44 +5830 4 0 1398 1386 66 16 +5831 4 0 2272 381 399 1493 +5832 4 0 1607 1386 16 66 +5833 4 0 66 1607 18 16 +5834 4 0 381 1400 1386 1351 +5835 4 0 1363 1623 866 1488 +5836 4 0 1706 2271 1488 2270 +5837 4 0 2271 1018 1620 1706 +5838 4 0 866 1363 1558 844 +5839 4 0 866 1623 1363 844 +5840 4 0 1706 1488 1370 2279 +5841 4 0 1488 1706 2270 933 +5842 4 0 866 1488 1623 2271 +5843 4 0 940 945 1620 892 +5844 4 0 16 66 1398 14 +5845 4 0 1398 1400 72 115 +5846 4 0 1400 1403 1397 127 +5847 4 0 1398 66 72 14 +5848 4 0 1710 269 141 178 +5849 4 0 2202 269 141 1710 +5850 4 0 141 240 269 2202 +5851 4 0 198 1710 2202 141 +5852 4 0 1556 63 106 114 +5853 4 0 2254 344 377 294 +5854 4 0 2254 1355 1468 238 +5855 4 0 808 1627 783 814 +5856 4 0 808 814 828 1627 +5857 4 0 63 19 21 1556 +5858 4 0 2049 1215 1367 1159 +5859 4 0 1287 1344 1346 1864 +5860 4 0 1629 782 809 776 +5861 4 0 1588 1618 2284 1353 +5862 4 0 392 2284 1600 1557 +5863 4 0 422 392 2284 1600 +5864 4 0 2284 392 1588 1353 +5865 4 0 1410 1475 41 90 +5866 4 0 298 363 1560 2300 +5867 4 0 2353 1419 875 950 +5868 4 0 2320 1391 466 430 +5869 4 0 1870 544 514 1651 +5870 4 0 1693 2005 322 1572 +5871 4 0 2005 1598 1693 322 +5872 4 0 1572 322 1693 293 +5873 4 0 1470 2085 1358 515 +5874 4 0 1310 1262 1956 1638 +5875 4 0 1421 1289 1297 1295 +5876 4 0 1421 2129 1297 1289 +5877 4 0 2353 1001 942 937 +5878 4 0 1014 2286 2353 950 +5879 4 0 1373 2286 2353 1014 +5880 4 0 1373 1521 2286 1014 +5881 4 0 1506 1373 1521 1374 +5882 4 0 836 2290 860 862 +5883 4 0 797 1459 1364 818 +5884 4 0 2294 2293 2291 959 +5885 4 0 1459 862 1364 2290 +5886 4 0 372 271 323 1824 +5887 4 0 1824 339 372 271 +5888 4 0 1807 2264 370 1413 +5889 4 0 1807 1808 2264 1412 +5890 4 0 2293 896 957 893 +5891 4 0 1019 2293 2305 2294 +5892 4 0 1613 2291 959 2294 +5893 4 0 2293 896 959 957 +5894 4 0 2294 959 1019 2293 +5895 4 0 927 2180 2292 900 +5896 4 0 959 2293 2291 1364 +5897 4 0 968 2305 1613 1371 +5898 4 0 1558 1363 819 844 +5899 4 0 1412 1808 1655 391 +5900 4 0 1807 1824 372 323 +5901 4 0 1807 1824 2264 1808 +5902 4 0 2336 76 99 26 +5903 4 0 2297 26 99 80 +5904 4 0 2336 99 2297 26 +5905 4 0 2297 99 240 80 +5906 4 0 2336 1485 223 220 +5907 4 0 342 291 1466 309 +5908 4 0 1399 2316 1935 2161 +5909 4 0 1935 331 304 1399 +5910 4 0 1567 1543 2298 1600 +5911 4 0 410 388 1383 1543 +5912 4 0 1383 410 443 388 +5913 4 0 395 1600 1543 350 +5914 4 0 301 2254 1567 1543 +5915 4 0 393 1355 1567 1600 +5916 4 0 2298 1600 422 393 +5917 4 0 410 336 2254 377 +5918 4 0 508 1719 531 513 +5919 4 0 833 864 2324 1627 +5920 4 0 373 2300 2299 314 +5921 4 0 2299 406 380 363 +5922 4 0 1460 1440 1512 1513 +5923 4 0 1512 1286 1460 1331 +5924 4 0 1460 1440 1513 966 +5925 4 0 1331 1333 1512 1282 +5926 4 0 1460 1242 1286 1512 +5927 4 0 1011 1440 1460 966 +5928 4 0 269 178 1710 292 +5929 4 0 1423 1305 1291 1307 +5930 4 0 1582 1255 1423 1199 +5931 4 0 1307 1255 1291 1423 +5932 4 0 1199 1178 2301 1365 +5933 4 0 1582 1615 1199 1365 +5934 4 0 1582 1365 1199 2301 +5935 4 0 2331 1423 1582 1255 +5936 4 0 248 159 198 2202 +5937 4 0 1277 1326 1328 1642 +5938 4 0 1642 1065 2230 1850 +5939 4 0 1249 1120 1222 1182 +5940 4 0 1249 1239 1100 1182 +5941 4 0 1864 1120 1249 1100 +5942 4 0 1249 1268 1250 1518 +5943 4 0 1249 1100 1239 1864 +5944 4 0 1519 2207 1923 1241 +5945 4 0 1519 2207 1369 967 +5946 4 0 1519 1369 2207 1241 +5947 4 0 1198 2064 1138 1174 +5948 4 0 1781 1138 1198 2064 +5949 4 0 1083 2064 1174 1099 +5950 4 0 1460 1329 1331 1286 +5951 4 0 1460 1641 1329 1286 +5952 4 0 1477 1269 1263 1243 +5953 4 0 1303 1477 2301 1269 +5954 4 0 1477 1263 1269 1301 +5955 4 0 1568 2344 333 359 +5956 4 0 383 1392 1492 1562 +5957 4 0 1390 389 383 430 +5958 4 0 1562 389 383 1390 +5959 4 0 1562 383 1392 2321 +5960 4 0 1492 1568 1353 1578 +5961 4 0 447 2298 1600 422 +5962 4 0 1368 1408 1015 1686 +5963 4 0 936 2275 1002 943 +5964 4 0 2274 1606 932 1408 +5965 4 0 1686 2274 1015 2275 +5966 4 0 1408 1606 932 1368 +5967 4 0 1408 1606 1015 2274 +5968 4 0 2327 1057 987 1023 +5969 4 0 2342 1357 454 479 +5970 4 0 2302 479 493 1357 +5971 4 0 2302 493 2058 1357 +5972 4 0 493 516 2058 2288 +5973 4 0 1951 1777 2036 2018 +5974 4 0 2036 1911 1841 1777 +5975 4 0 2247 1366 2303 1212 +5976 4 0 2303 1302 1304 1270 +5977 4 0 2304 1262 1310 1312 +5978 4 0 973 1956 2304 1368 +5979 4 0 973 1368 2304 1008 +5980 4 0 2306 2305 1371 1133 +5981 4 0 2305 2293 957 941 +5982 4 0 2306 1030 991 941 +5983 4 0 2307 1385 100 236 +5984 4 0 2307 81 100 56 +5985 4 0 100 1385 222 236 +5986 4 0 1385 56 2307 100 +5987 4 0 2307 27 25 56 +5988 4 0 1058 2024 986 1022 +5989 4 0 1448 2273 1368 1008 +5990 4 0 2308 2253 866 2309 +5991 4 0 1561 903 858 863 +5992 4 0 1561 903 863 912 +5993 4 0 903 858 891 1561 +5994 4 0 1452 912 1561 2308 +5995 4 0 1452 903 1561 912 +5996 4 0 1452 903 1428 891 +5997 4 0 912 2236 2308 2253 +5998 4 0 912 1561 2308 2236 +5999 4 0 912 980 2253 969 +6000 4 0 1363 2236 2253 2308 +6001 4 0 866 1363 2308 1558 +6002 4 0 1363 2236 2308 1558 +6003 4 0 866 2309 2253 1488 +6004 4 0 866 1363 2253 2308 +6005 4 0 1452 2253 2309 1585 +6006 4 0 901 1488 866 2270 +6007 4 0 1810 1612 1378 1679 +6008 4 0 755 2137 1964 2310 +6009 4 0 2137 1964 2310 1614 +6010 4 0 420 1655 1412 1785 +6011 4 0 420 1785 1412 453 +6012 4 0 1655 420 391 1729 +6013 4 0 1655 1729 391 2333 +6014 4 0 1416 1412 369 1655 +6015 4 0 391 1655 1412 420 +6016 4 0 358 1808 1655 1350 +6017 4 0 1808 391 358 1655 +6018 4 0 2128 1362 1382 845 +6019 4 0 400 2311 1442 423 +6020 4 0 2326 1360 1530 477 +6021 4 0 2326 494 1360 477 +6022 4 0 1505 2311 452 1664 +6023 4 0 494 1481 2326 1360 +6024 4 0 2311 452 1664 423 +6025 4 0 452 423 1446 1664 +6026 4 0 452 1664 1446 1530 +6027 4 0 1505 2323 1529 351 +6028 4 0 2311 1442 423 1664 +6029 4 0 1591 1440 1135 1185 +6030 4 0 1460 1440 1234 1242 +6031 4 0 1862 1224 1089 1266 +6032 4 0 1389 1240 1183 1168 +6033 4 0 2322 539 527 2038 +6034 4 0 1003 1620 2312 940 +6035 4 0 990 1003 2312 940 +6036 4 0 498 2322 506 523 +6037 4 0 2322 539 2288 527 +6038 4 0 1436 390 441 431 +6039 4 0 1436 390 1404 441 +6040 4 0 1446 1545 1354 361 +6041 4 0 423 1545 452 1446 +6042 4 0 1377 362 313 379 +6043 4 0 1714 418 1377 407 +6044 4 0 826 2118 1482 1361 +6045 4 0 950 1419 1361 2286 +6046 4 0 1419 1832 1361 2118 +6047 4 0 548 1656 1592 519 +6048 4 0 1258 1476 2313 1371 +6049 4 0 1284 2330 1339 1258 +6050 4 0 2330 1284 1341 1476 +6051 4 0 1535 1258 1218 1276 +6052 4 0 1535 1258 1371 1218 +6053 4 0 2330 1258 1535 1337 +6054 4 0 1258 1339 1337 2330 +6055 4 0 2314 1020 1136 1049 +6056 4 0 2250 1158 1136 1201 +6057 4 0 1536 1115 1457 1247 +6058 4 0 1457 1320 1536 1247 +6059 4 0 1320 1271 1536 1247 +6060 4 0 217 1571 341 308 +6061 4 0 321 1435 348 2224 +6062 4 0 321 1571 2252 292 +6063 4 0 1626 602 590 578 +6064 4 0 808 783 1627 775 +6065 4 0 1582 1365 965 924 +6066 4 0 1365 1010 965 1563 +6067 4 0 2343 1097 1148 1171 +6068 4 0 1303 2301 1423 1269 +6069 4 0 2315 1617 1509 1956 +6070 4 0 1509 1238 1638 1200 +6071 4 0 1569 2315 1715 1509 +6072 4 0 2315 1715 1617 1606 +6073 4 0 1699 817 1372 1362 +6074 4 0 847 1372 855 2275 +6075 4 0 845 817 1362 1372 +6076 4 0 1648 823 792 1699 +6077 4 0 1362 2128 817 845 +6078 4 0 1561 834 827 858 +6079 4 0 2349 722 637 704 +6080 4 0 2318 2333 1350 358 +6081 4 0 2318 1350 2333 1768 +6082 4 0 936 1686 1002 2275 +6083 4 0 1414 1639 1038 988 +6084 4 0 1355 190 145 203 +6085 4 0 1600 190 203 274 +6086 4 0 1591 1038 1414 1639 +6087 4 0 1850 1277 1265 1223 +6088 4 0 1850 1277 1223 2230 +6089 4 0 1642 1850 2230 1277 +6090 4 0 1862 1278 1224 1266 +6091 4 0 1862 1278 1641 2228 +6092 4 0 1445 1038 988 1414 +6093 4 0 1284 1476 2330 1258 +6094 4 0 1284 2330 1341 1339 +6095 4 0 1416 369 1412 1413 +6096 4 0 2319 1723 292 2252 +6097 4 0 1032 1624 2283 1366 +6098 4 0 2319 292 321 2252 +6099 4 0 2054 170 194 131 +6100 4 0 2054 131 242 170 +6101 4 0 779 1628 1815 816 +6102 4 0 779 1815 788 816 +6103 4 0 779 788 1815 725 +6104 4 0 1644 96 102 221 +6105 4 0 1644 102 96 54 +6106 4 0 276 200 184 1653 +6107 4 0 200 137 1653 151 +6108 4 0 184 1653 200 137 +6109 4 0 96 54 1646 1644 +6110 4 0 1407 110 146 1356 +6111 4 0 224 243 1646 101 +6112 4 0 1366 1509 1238 2247 +6113 4 0 1509 2247 1366 1569 +6114 4 0 1828 1610 839 829 +6115 4 0 1828 874 853 829 +6116 4 0 1482 826 1361 1828 +6117 4 0 779 816 1573 1628 +6118 4 0 842 816 1573 1627 +6119 4 0 2317 2085 538 2267 +6120 4 0 2317 2085 486 1470 +6121 4 0 1482 2118 826 850 +6122 4 0 1610 804 839 829 +6123 4 0 1610 2225 1828 851 +6124 4 0 2252 161 123 178 +6125 4 0 1599 1004 2269 1361 +6126 4 0 1570 2269 1482 1599 +6127 4 0 1828 1832 812 826 +6128 4 0 725 1815 751 788 +6129 4 0 286 1619 1738 2223 +6130 4 0 1917 1787 1733 1662 +6131 4 0 2039 148 2179 93 +6132 4 0 2179 148 2039 262 +6133 4 0 2179 93 1443 2039 +6134 4 0 147 263 287 1731 +6135 4 0 147 1731 287 2282 +6136 4 0 1731 2282 2084 287 +6137 4 0 2315 1617 1715 1509 +6138 4 0 1646 224 96 221 +6139 4 0 1366 2283 2303 1212 +6140 4 0 2303 1264 2283 1622 +6141 4 0 1477 1365 1211 2210 +6142 4 0 1171 1211 2210 1243 +6143 4 0 133 1658 2268 1409 +6144 4 0 2005 104 134 173 +6145 4 0 649 739 725 751 +6146 4 0 649 2047 751 725 +6147 4 0 338 2323 351 396 +6148 4 0 1664 275 1446 2323 +6149 4 0 1715 1362 2257 1005 +6150 4 0 1361 2269 1599 1482 +6151 4 0 1370 1132 1071 1163 +6152 4 0 271 213 1350 181 +6153 4 0 271 1350 213 323 +6154 4 0 1570 1554 2269 2050 +6155 4 0 1553 1570 1365 2050 +6156 4 0 544 1870 543 566 +6157 4 0 1636 82 2163 1409 +6158 4 0 2163 1409 82 103 +6159 4 0 1409 2163 133 103 +6160 4 0 620 1717 632 607 +6161 4 0 1717 585 600 576 +6162 4 0 1717 607 585 582 +6163 4 0 1815 789 788 816 +6164 4 0 811 789 1628 824 +6165 4 0 1628 824 789 816 +6166 4 0 1608 1654 218 307 +6167 4 0 1608 218 340 307 +6168 4 0 1323 1266 1325 2023 +6169 4 0 1088 1158 1823 1219 +6170 4 0 1823 1158 1136 2250 +6171 4 0 1391 430 1390 2321 +6172 4 0 1390 383 1562 2321 +6173 4 0 2320 430 436 1390 +6174 4 0 1391 1390 430 2320 +6175 4 0 2322 2288 539 516 +6176 4 0 2335 1663 1356 2043 +6177 4 0 2335 378 345 295 +6178 4 0 2335 353 378 295 +6179 4 0 1595 458 1593 472 +6180 4 0 1595 2339 419 439 +6181 4 0 1358 2328 492 2287 +6182 4 0 1595 439 458 472 +6183 4 0 1595 1593 413 1790 +6184 4 0 1595 413 419 2339 +6185 4 0 773 791 746 1877 +6186 4 0 2325 1283 1225 1251 +6187 4 0 1283 1338 2325 1257 +6188 4 0 2325 1283 1251 1340 +6189 4 0 335 2195 1354 361 +6190 4 0 361 1466 2205 1354 +6191 4 0 1545 329 347 1404 +6192 4 0 342 2205 347 375 +6193 4 0 2205 291 1466 342 +6194 4 0 2205 347 266 291 +6195 4 0 320 1466 1354 2179 +6196 4 0 1505 1530 1664 452 +6197 4 0 1530 2326 2323 1360 +6198 4 0 1023 1137 2327 1057 +6199 4 0 471 1413 459 2328 +6200 4 0 1785 1594 1358 478 +6201 4 0 1785 1416 453 478 +6202 4 0 1628 842 824 816 +6203 4 0 1731 111 242 1565 +6204 4 0 32 58 1565 30 +6205 4 0 1555 1501 617 596 +6206 4 0 1501 608 617 589 +6207 4 0 596 617 1587 589 +6208 4 0 2329 627 667 686 +6209 4 0 1371 1535 2313 1258 +6210 4 0 2331 1581 1499 1209 +6211 4 0 2331 1499 1255 1209 +6212 4 0 1644 54 52 102 +6213 4 0 2333 1350 1729 1768 +6214 4 0 1729 169 128 1350 +6215 4 0 2333 1655 1729 1350 +6216 4 0 13 2318 1768 89 +6217 4 0 1715 1044 1381 2258 +6218 4 0 1381 2258 1516 1715 +6219 4 0 899 1715 1516 931 +6220 4 0 1516 1381 1715 899 +6221 4 0 1652 107 97 1975 +6222 4 0 98 108 2231 57 +6223 4 0 1663 349 2266 1356 +6224 4 0 2336 30 1565 76 +6225 4 0 813 809 1629 782 +6226 4 0 1629 787 813 782 +6227 4 0 393 1600 1567 2298 +6228 4 0 2280 1567 1355 2254 +6229 4 0 1567 360 2280 1355 +6230 4 0 1567 360 1355 393 +6231 4 0 1567 1355 301 1600 +6232 4 0 1476 1252 1341 2259 +6233 4 0 1864 1268 1518 1348 +6234 4 0 1864 1249 1346 1239 +6235 4 0 1864 1268 1249 1518 +6236 4 0 1518 1293 1250 1517 +6237 4 0 1518 1348 1268 1293 +6238 4 0 1518 1268 1250 1293 +6239 4 0 1517 1250 1240 1293 +6240 4 0 1518 1864 1120 1249 +6241 4 0 399 2337 421 1493 +6242 4 0 2291 1364 2217 843 +6243 4 0 1364 2291 865 843 +6244 4 0 2291 1364 2290 2217 +6245 4 0 2291 1364 2293 2290 +6246 4 0 2291 2294 1613 2292 +6247 4 0 2291 865 2292 1613 +6248 4 0 397 1790 1560 2338 +6249 4 0 363 1790 2299 2339 +6250 4 0 1594 355 1790 1560 +6251 4 0 1595 2339 1790 413 +6252 4 0 1560 2300 397 364 +6253 4 0 2339 2299 363 406 +6254 4 0 2299 1790 363 2300 +6255 4 0 1560 364 1352 2300 +6256 4 0 453 1785 2338 420 +6257 4 0 1594 453 478 1785 +6258 4 0 453 1785 1594 2338 +6259 4 0 1605 488 483 2215 +6260 4 0 1719 1605 501 2215 +6261 4 0 1719 501 525 2215 +6262 4 0 810 801 840 1630 +6263 4 0 596 1587 1496 589 +6264 4 0 589 1496 586 567 +6265 4 0 1435 1751 217 1571 +6266 4 0 2342 368 1357 414 +6267 4 0 1507 437 387 424 +6268 4 0 437 465 2302 470 +6269 4 0 2342 454 1523 1574 +6270 4 0 2342 2302 437 424 +6271 4 0 2342 1357 2302 414 +6272 4 0 424 2302 437 465 +6273 4 0 2145 746 696 1877 +6274 4 0 2145 1542 746 705 +6275 4 0 1877 791 746 760 +6276 4 0 320 335 2348 1354 +6277 4 0 2179 1659 1443 2348 +6278 4 0 2179 2348 1354 320 +6279 4 0 1066 1194 2340 1041 +6280 4 0 1066 1208 1822 1194 +6281 4 0 1822 1145 2340 1194 +6282 4 0 2054 223 242 131 +6283 4 0 2283 1264 2303 1244 +6284 4 0 563 1735 539 527 +6285 4 0 563 559 535 527 +6286 4 0 563 535 559 569 +6287 4 0 41 109 1411 1410 +6288 4 0 1410 109 90 41 +6289 4 0 1562 1492 389 409 +6290 4 0 1492 1562 389 383 +6291 4 0 2341 1600 1392 1557 +6292 4 0 1600 462 1392 1359 +6293 4 0 2341 1392 1600 447 +6294 4 0 2341 422 447 1600 +6295 4 0 2341 392 422 1600 +6296 4 0 2342 437 1507 424 +6297 4 0 1493 454 421 1574 +6298 4 0 424 1507 2342 368 +6299 4 0 465 470 2058 2302 +6300 4 0 2343 1028 1365 1148 +6301 4 0 2250 1136 2343 1171 +6302 4 0 1171 1097 1136 2343 +6303 4 0 2250 1171 2343 1365 +6304 4 0 244 2039 112 262 +6305 4 0 244 132 112 1385 +6306 4 0 1388 33 31 59 +6307 4 0 244 1385 112 1388 +6308 4 0 1608 218 373 340 +6309 4 0 1786 1342 1273 1287 +6310 4 0 1568 2344 1588 1353 +6311 4 0 2061 1738 261 1778 +6312 4 0 942 2353 846 875 +6313 4 0 2118 1482 1361 1599 +6314 4 0 856 846 942 2353 +6315 4 0 342 347 2205 291 +6316 4 0 901 933 1395 1488 +6317 4 0 933 1395 1488 2279 +6318 4 0 1396 1640 1394 1231 +6319 4 0 1448 973 1008 1368 +6320 4 0 1448 973 1368 1408 +6321 4 0 1969 689 2052 1755 +6322 4 0 1221 1181 1111 1175 +6323 4 0 1221 1267 1111 1246 +6324 4 0 1221 1111 1122 1175 +6325 4 0 805 803 825 1433 +6326 4 0 1398 1386 115 66 +6327 4 0 1398 1400 115 1386 +6328 4 0 381 2272 1400 1597 +6329 4 0 2272 421 1493 399 +6330 4 0 1569 2315 931 1715 +6331 4 0 1360 477 494 2346 +6332 4 0 330 364 2300 1352 +6333 4 0 1608 2300 373 314 +6334 4 0 1352 330 1704 303 +6335 4 0 1352 330 303 1608 +6336 4 0 2300 1608 330 1352 +6337 4 0 1608 314 373 218 +6338 4 0 2273 2304 1216 1368 +6339 4 0 2273 2304 1368 1008 +6340 4 0 37 87 2348 39 +6341 4 0 643 609 1716 653 +6342 4 0 643 1716 609 1939 +6343 4 0 643 1939 609 605 +6344 4 0 1027 2340 1056 1145 +6345 4 0 556 1651 1870 509 +6346 4 0 1992 2115 2137 1957 +6347 4 0 2349 646 611 632 +6348 4 0 722 696 760 1429 +6349 4 0 106 67 63 1556 +6350 4 0 330 1352 1704 2350 +6351 4 0 1537 106 1556 67 +6352 4 0 2350 364 330 1352 +6353 4 0 106 1556 1704 2350 +6354 4 0 1556 1647 114 1704 +6355 4 0 1537 2350 1556 106 +6356 4 0 1619 2318 9 65 +6357 4 0 2063 227 158 2351 +6358 4 0 2063 2351 1809 235 +6359 4 0 158 2063 228 227 +6360 4 0 1809 1783 1401 219 +6361 4 0 2063 1401 163 228 +6362 4 0 2351 174 245 227 +6363 4 0 2351 245 174 2136 +6364 4 0 2353 942 856 889 +6365 4 0 2353 942 889 937 +6366 4 0 930 1599 2286 1374 +6367 4 0 930 1367 1599 1374 +6368 4 0 898 2352 930 1580 +6369 4 0 930 2286 1599 2352 +6370 4 0 1459 2217 1364 818 +6371 4 0 862 811 836 1459 +6372 4 0 862 824 811 1628 +6373 4 0 1459 1364 2217 2290 +$EndElements +$ElementData +1 +"color" +1 +0.0 +3 +0 +1 +6373 +1 4.07216 +2 4.40384 +3 3.85908 +4 4.15868 +5 4.44049 +6 3.57836 +7 3.67949 +8 4.01056 +9 4.25685 +10 4.32953 +11 3.7469 +12 4.19499 +13 3.36012 +14 4.66313 +15 4.15065 +16 3.37307 +17 3.73212 +18 3.77056 +19 4.22448 +20 3.71136 +21 4.32752 +22 4.09295 +23 3.39868 +24 4.03593 +25 4.35258 +26 4.34545 +27 4.6412 +28 3.53169 +29 3.55846 +30 3.26197 +31 4.90758 +32 4.5128 +33 4.0833 +34 3.49179 +35 3.39458 +36 4.08776 +37 3.09036 +38 4.28083 +39 3.63512 +40 4.90439 +41 4.16011 +42 4.41595 +43 3.47607 +44 3.54623 +45 3.43285 +46 3.98509 +47 3.54308 +48 4.6216 +49 3.92967 +50 3.96811 +51 4.01078 +52 3.89556 +53 4.13917 +54 3.43478 +55 3.75597 +56 4.57731 +57 4.5054 +58 3.65247 +59 3.81005 +60 3.52359 +61 4.5245 +62 4.70119 +63 4.16702 +64 3.39131 +65 3.20742 +66 5.33844 +67 3.42887 +68 3.69463 +69 4.56731 +70 4.43908 +71 4.48128 +72 3.80018 +73 3.68274 +74 3.73637 +75 3.53121 +76 3.84843 +77 3.28191 +78 4.72253 +79 4.17961 +80 3.79646 +81 3.60637 +82 3.12318 +83 3.49762 +84 5.1008 +85 3.88024 +86 3.89458 +87 3.67268 +88 3.48621 +89 5.86213 +90 5.6308 +91 3.55885 +92 3.17499 +93 4.67241 +94 4.44208 +95 5.1286 +96 5.00465 +97 3.87793 +98 4.57163 +99 3.49341 +100 3.92621 +101 3.0846 +102 3.79746 +103 3.7623 +104 3.24678 +105 3.25102 +106 4.01772 +107 3.51946 +108 3.67027 +109 4.78291 +110 4.46626 +111 4.26563 +112 4.41602 +113 6.79082 +114 3.43136 +115 4.05841 +116 4.50242 +117 4.14631 +118 3.66739 +119 3.63983 +120 3.07087 +121 4.09768 +122 5.20611 +123 5.1798 +124 5.54956 +125 4.89823 +126 5.25811 +127 3.71296 +128 3.60146 +129 5.49597 +130 4.26445 +131 3.6114 +132 3.2771 +133 3.33279 +134 3.3222 +135 3.8129 +136 5.6746 +137 3.79892 +138 3.80669 +139 5.38297 +140 3.66882 +141 3.79278 +142 4.3703 +143 3.45486 +144 6.04148 +145 6.66212 +146 3.74758 +147 4.21512 +148 4.38344 +149 3.31297 +150 5.64402 +151 5.5129 +152 3.50333 +153 4.73341 +154 3.76375 +155 3.7108 +156 3.4186 +157 3.76532 +158 4.1276 +159 3.6474 +160 3.5376 +161 4.10098 +162 3.3107 +163 3.81761 +164 4.18992 +165 3.11688 +166 3.86547 +167 4.35924 +168 4.1266 +169 4.0167 +170 4.16461 +171 3.34409 +172 3.9892 +173 3.86133 +174 3.27014 +175 3.4651 +176 4.39216 +177 3.98165 +178 3.74144 +179 3.7529 +180 4.01877 +181 4.09361 +182 6.29435 +183 4.67048 +184 4.21144 +185 4.53362 +186 3.84419 +187 4.66721 +188 4.26389 +189 4.2659 +190 3.18097 +191 3.40215 +192 3.45506 +193 4.08628 +194 4.18048 +195 5.44955 +196 4.16314 +197 4.03635 +198 6.54758 +199 4.48171 +200 3.26493 +201 4.01938 +202 3.93549 +203 3.98087 +204 3.68511 +205 3.12328 +206 3.67612 +207 3.72735 +208 3.18766 +209 3.59376 +210 3.50027 +211 5.06656 +212 3.44722 +213 3.55014 +214 4.67461 +215 6.31403 +216 4.50718 +217 4.22099 +218 3.5089 +219 3.69887 +220 3.89063 +221 3.38481 +222 3.73087 +223 3.10303 +224 3.73639 +225 3.76828 +226 3.51213 +227 3.49069 +228 3.34785 +229 3.6075 +230 3.48509 +231 4.20917 +232 4.34682 +233 4.64204 +234 3.65043 +235 4.37043 +236 4.29365 +237 4.47694 +238 3.43101 +239 4.41407 +240 4.09059 +241 3.74316 +242 3.04066 +243 3.41742 +244 3.26457 +245 4.05615 +246 3.41452 +247 5.15687 +248 4.32299 +249 4.88987 +250 4.56698 +251 4.06357 +252 4.12677 +253 4.01773 +254 4.35394 +255 4.94007 +256 4.03229 +257 4.40158 +258 3.79689 +259 3.71229 +260 4.15254 +261 3.46324 +262 4.27357 +263 4.9207 +264 5.05141 +265 4.53011 +266 4.50407 +267 4.73502 +268 3.4068 +269 3.76337 +270 4.64286 +271 3.45874 +272 3.34476 +273 3.69369 +274 3.22899 +275 3.83939 +276 4.468 +277 5.05097 +278 5.16676 +279 5.27108 +280 4.15804 +281 4.15066 +282 4.52861 +283 4.67016 +284 3.37466 +285 3.54281 +286 4.48939 +287 3.38711 +288 4.03062 +289 4.27535 +290 3.07242 +291 4.95664 +292 4.80212 +293 4.77805 +294 3.55481 +295 5.28264 +296 4.65284 +297 5.02301 +298 3.73852 +299 3.33407 +300 3.88033 +301 3.57545 +302 4.21138 +303 3.9593 +304 3.62882 +305 3.49814 +306 3.98287 +307 3.24679 +308 4.26464 +309 4.39795 +310 4.00786 +311 3.30157 +312 3.35197 +313 3.99165 +314 3.51301 +315 5.53551 +316 4.71973 +317 5.10249 +318 3.26576 +319 4.29171 +320 3.99238 +321 3.35277 +322 3.98154 +323 3.56175 +324 3.91597 +325 3.66037 +326 4.25205 +327 3.40499 +328 3.7221 +329 4.31619 +330 4.34783 +331 3.3346 +332 5.11051 +333 4.17711 +334 3.86079 +335 5.95138 +336 3.66235 +337 4.49726 +338 4.90081 +339 5.8852 +340 4.60896 +341 4.40741 +342 4.69238 +343 3.31018 +344 3.39301 +345 3.84802 +346 3.86544 +347 4.39829 +348 3.75421 +349 3.33066 +350 3.40009 +351 3.9202 +352 4.38529 +353 3.6562 +354 4.72021 +355 4.36786 +356 4.12309 +357 4.43436 +358 3.49346 +359 4.07119 +360 4.93799 +361 3.37118 +362 3.48113 +363 4.43673 +364 4.18227 +365 4.12999 +366 4.31277 +367 3.59873 +368 3.96704 +369 3.96236 +370 4.68926 +371 4.86548 +372 4.22483 +373 4.85804 +374 3.92395 +375 3.7672 +376 3.50294 +377 3.50195 +378 4.68236 +379 4.01407 +380 3.01945 +381 4.63291 +382 3.93036 +383 3.51355 +384 3.60338 +385 4.37381 +386 4.63509 +387 5.23244 +388 4.16046 +389 3.39787 +390 3.60486 +391 4.03186 +392 3.42995 +393 3.41138 +394 3.6043 +395 4.50302 +396 4.00223 +397 4.12376 +398 4.13408 +399 4.43874 +400 4.35366 +401 3.44548 +402 3.55793 +403 3.28053 +404 4.51339 +405 4.00008 +406 3.81466 +407 3.16796 +408 3.67501 +409 3.8875 +410 3.76852 +411 3.74298 +412 4.34788 +413 4.72223 +414 3.08016 +415 3.3379 +416 4.04105 +417 3.6771 +418 4.49973 +419 3.65852 +420 3.76398 +421 3.50542 +422 3.32769 +423 3.91042 +424 3.15364 +425 4.24668 +426 4.08705 +427 4.18577 +428 4.25103 +429 3.35 +430 3.40544 +431 4.80867 +432 4.73819 +433 3.9054 +434 3.52431 +435 3.3168 +436 3.67529 +437 3.8494 +438 4.5765 +439 3.49569 +440 5.35308 +441 4.02729 +442 3.8728 +443 3.29308 +444 3.08941 +445 4.30939 +446 4.3909 +447 3.16938 +448 3.2818 +449 3.13977 +450 3.61888 +451 4.04974 +452 4.06226 +453 4.25351 +454 4.6902 +455 3.86572 +456 3.89496 +457 4.63987 +458 3.3814 +459 3.5092 +460 3.91698 +461 4.49788 +462 3.34896 +463 4.04829 +464 3.28469 +465 4.17721 +466 3.1855 +467 4.28166 +468 4.61107 +469 4.07887 +470 4.06472 +471 3.41265 +472 3.51821 +473 4.37684 +474 4.42929 +475 3.26994 +476 3.36177 +477 3.40355 +478 4.26688 +479 4.99449 +480 3.90232 +481 3.26526 +482 3.53129 +483 3.41122 +484 3.78368 +485 3.23173 +486 5.06818 +487 3.63722 +488 3.33914 +489 3.47787 +490 3.20564 +491 3.46041 +492 4.48714 +493 3.80863 +494 3.48697 +495 3.70086 +496 3.10063 +497 4.41796 +498 3.50464 +499 5.12515 +500 3.78029 +501 3.88866 +502 3.18298 +503 4.5403 +504 3.39649 +505 3.1888 +506 4.89157 +507 3.56868 +508 4.11173 +509 4.38541 +510 3.47073 +511 4.39041 +512 3.9422 +513 3.43481 +514 4.02903 +515 4.19061 +516 4.53201 +517 3.59784 +518 3.92555 +519 3.99339 +520 3.80634 +521 3.57796 +522 4.28641 +523 3.46611 +524 3.2483 +525 3.57047 +526 3.17791 +527 4.23255 +528 3.32338 +529 3.89619 +530 3.84374 +531 3.34394 +532 3.81297 +533 4.26424 +534 5.04411 +535 3.24843 +536 4.85871 +537 4.02911 +538 3.49774 +539 3.63186 +540 3.3621 +541 3.51638 +542 4.34417 +543 3.40816 +544 3.04864 +545 3.61755 +546 4.23119 +547 3.69372 +548 3.74347 +549 3.52072 +550 4.23247 +551 4.21194 +552 4.09417 +553 4.0445 +554 3.3377 +555 4.98752 +556 4.06885 +557 5.67294 +558 4.02082 +559 3.83457 +560 3.85479 +561 3.65795 +562 4.13177 +563 4.33266 +564 3.25721 +565 3.7767 +566 3.49436 +567 4.24699 +568 3.66607 +569 3.54224 +570 3.26748 +571 3.34798 +572 4.10802 +573 3.44248 +574 3.63774 +575 4.29275 +576 3.28195 +577 4.6519 +578 4.18915 +579 5.52561 +580 4.15255 +581 4.43438 +582 3.57612 +583 3.59278 +584 3.962 +585 3.71482 +586 3.79351 +587 3.97958 +588 3.38502 +589 3.91542 +590 3.82259 +591 4.07485 +592 4.08621 +593 3.6157 +594 4.53736 +595 3.86259 +596 3.54021 +597 3.49244 +598 4.73998 +599 3.87326 +600 3.45126 +601 3.66044 +602 3.79153 +603 3.26434 +604 3.10569 +605 3.70693 +606 3.54227 +607 3.86058 +608 4.58361 +609 3.27159 +610 3.38481 +611 3.69371 +612 3.38469 +613 3.34094 +614 3.47731 +615 3.89892 +616 3.4289 +617 3.5706 +618 3.35798 +619 3.69539 +620 3.74248 +621 3.42519 +622 3.08931 +623 3.64672 +624 3.50737 +625 3.47144 +626 3.4343 +627 4.91037 +628 4.57687 +629 3.93345 +630 3.51302 +631 4.16852 +632 4.05991 +633 3.96752 +634 4.39169 +635 4.00515 +636 4.95258 +637 4.8454 +638 3.94167 +639 3.3174 +640 3.60334 +641 4.48142 +642 4.5549 +643 3.95426 +644 4.36324 +645 4.07864 +646 3.24047 +647 3.70465 +648 3.54679 +649 3.85813 +650 4.82744 +651 3.79875 +652 3.76829 +653 3.6786 +654 3.86425 +655 3.65827 +656 4.54813 +657 3.53315 +658 3.42052 +659 4.62822 +660 4.16889 +661 4.89471 +662 4.07961 +663 4.51368 +664 4.50943 +665 4.22122 +666 4.10383 +667 4.49109 +668 4.75271 +669 3.79295 +670 3.56849 +671 3.41661 +672 4.06392 +673 3.73194 +674 3.98532 +675 3.76358 +676 3.84212 +677 3.64949 +678 3.55871 +679 3.75356 +680 4.07656 +681 3.70246 +682 3.93901 +683 3.7979 +684 4.91252 +685 3.50962 +686 3.34522 +687 3.31431 +688 3.83445 +689 3.18914 +690 3.4451 +691 4.25828 +692 3.78612 +693 4.30392 +694 4.31039 +695 3.45055 +696 3.65668 +697 4.27642 +698 4.11734 +699 4.1135 +700 3.59403 +701 4.04674 +702 4.37857 +703 4.12616 +704 4.42212 +705 4.92372 +706 3.4608 +707 4.31829 +708 3.4817 +709 5.28015 +710 4.29624 +711 3.48906 +712 5.62054 +713 3.6072 +714 3.8365 +715 4.05441 +716 4.01986 +717 4.38285 +718 4.47133 +719 4.21796 +720 3.52959 +721 4.3176 +722 3.41181 +723 3.1991 +724 3.74255 +725 3.90687 +726 4.31435 +727 3.82388 +728 3.46096 +729 3.91341 +730 3.96058 +731 4.19523 +732 4.60852 +733 4.02636 +734 3.36851 +735 3.39134 +736 4.1684 +737 3.93122 +738 4.33579 +739 3.88506 +740 4.55549 +741 4.06684 +742 4.66379 +743 4.45747 +744 4.02778 +745 5.60128 +746 3.44792 +747 4.49425 +748 4.17648 +749 4.79972 +750 3.92402 +751 6.15384 +752 4.15282 +753 4.60397 +754 4.62997 +755 4.87847 +756 4.28395 +757 4.28853 +758 4.69734 +759 3.13982 +760 3.8086 +761 4.30127 +762 3.2631 +763 4.27839 +764 4.17297 +765 3.80435 +766 3.59283 +767 3.43167 +768 3.45196 +769 3.68813 +770 3.65213 +771 3.37777 +772 4.35726 +773 4.39803 +774 3.95647 +775 3.67672 +776 3.75929 +777 4.07339 +778 3.87434 +779 4.51214 +780 3.78758 +781 3.52444 +782 3.75143 +783 4.48718 +784 3.25693 +785 4.57208 +786 4.31133 +787 4.07851 +788 3.70485 +789 3.45173 +790 3.20032 +791 4.1139 +792 3.82674 +793 4.83896 +794 4.01471 +795 3.64466 +796 3.84579 +797 3.84734 +798 4.30209 +799 3.83784 +800 4.08711 +801 3.9096 +802 4.23803 +803 4.31083 +804 4.36165 +805 3.52726 +806 3.70833 +807 4.28848 +808 4.32885 +809 4.22082 +810 3.85934 +811 4.20635 +812 3.84053 +813 3.79478 +814 3.75663 +815 4.37966 +816 4.58452 +817 3.89478 +818 3.50791 +819 3.69454 +820 4.27801 +821 3.59101 +822 4.04184 +823 3.22536 +824 3.44529 +825 5.34511 +826 3.94201 +827 4.51936 +828 6.34552 +829 3.72864 +830 4.2872 +831 3.91873 +832 5.05168 +833 4.82771 +834 4.80341 +835 3.4594 +836 3.92596 +837 3.57928 +838 3.49564 +839 4.09942 +840 3.7059 +841 3.63202 +842 4.03021 +843 3.80741 +844 3.61988 +845 3.39697 +846 4.90355 +847 3.65221 +848 4.00269 +849 4.76089 +850 3.52326 +851 3.87767 +852 3.78558 +853 3.57239 +854 3.25275 +855 3.34446 +856 3.3912 +857 4.02115 +858 4.2134 +859 3.456 +860 3.7904 +861 3.07728 +862 3.26631 +863 3.88099 +864 3.91403 +865 3.89079 +866 4.12809 +867 4.44312 +868 5.81855 +869 3.75453 +870 4.0877 +871 5.10206 +872 4.01152 +873 3.76781 +874 3.99459 +875 4.37258 +876 3.4746 +877 4.23501 +878 3.57263 +879 3.16762 +880 3.85524 +881 3.69019 +882 3.2128 +883 4.56498 +884 3.76371 +885 3.61168 +886 3.47473 +887 3.1852 +888 3.37758 +889 3.72488 +890 4.12915 +891 3.3126 +892 3.67058 +893 3.88704 +894 3.1476 +895 4.86073 +896 4.41558 +897 4.58921 +898 3.74851 +899 4.28644 +900 3.76359 +901 5.19776 +902 3.41963 +903 3.14554 +904 5.10025 +905 3.58355 +906 3.86307 +907 3.50944 +908 4.02869 +909 4.37894 +910 5.7706 +911 4.66727 +912 3.61901 +913 3.86094 +914 5.0833 +915 3.99342 +916 4.83158 +917 3.13129 +918 3.21665 +919 3.6689 +920 3.56815 +921 4.65611 +922 4.33883 +923 3.6377 +924 3.7374 +925 4.10394 +926 3.92807 +927 4.13676 +928 4.6837 +929 3.90264 +930 3.2256 +931 3.31288 +932 3.36248 +933 4.1296 +934 3.14656 +935 5.05294 +936 5.29497 +937 5.09327 +938 4.21473 +939 4.07293 +940 4.11846 +941 3.98187 +942 4.74549 +943 4.23449 +944 3.72107 +945 3.57832 +946 4.26623 +947 3.37689 +948 4.62173 +949 3.8568 +950 3.41528 +951 3.19654 +952 4.20752 +953 3.59478 +954 3.83264 +955 3.83106 +956 3.99913 +957 3.21146 +958 3.13027 +959 3.50639 +960 4.70517 +961 4.67973 +962 4.27636 +963 4.74999 +964 5.76911 +965 3.85853 +966 3.53105 +967 3.94545 +968 3.30801 +969 4.84003 +970 4.7132 +971 4.59407 +972 3.89198 +973 3.9158 +974 3.69303 +975 4.23303 +976 4.31786 +977 4.37422 +978 4.10535 +979 3.80903 +980 4.26279 +981 3.60798 +982 3.67313 +983 4.23008 +984 3.278 +985 3.4584 +986 3.36987 +987 4.36178 +988 4.53016 +989 4.61288 +990 4.09148 +991 3.4882 +992 4.75739 +993 3.30965 +994 3.5502 +995 4.13509 +996 3.91066 +997 3.72789 +998 3.9946 +999 4.59778 +1000 3.60318 +1001 3.42172 +1002 4.77264 +1003 3.74866 +1004 5.20568 +1005 6.10506 +1006 3.7874 +1007 4.4039 +1008 4.58336 +1009 3.7822 +1010 3.81331 +1011 3.30162 +1012 4.01794 +1013 3.84531 +1014 5.13801 +1015 3.13903 +1016 5.05065 +1017 4.60296 +1018 4.13507 +1019 4.30252 +1020 3.55734 +1021 3.86731 +1022 4.48067 +1023 3.37533 +1024 4.37091 +1025 3.49663 +1026 3.44995 +1027 3.97674 +1028 4.00623 +1029 3.28764 +1030 3.39764 +1031 4.22563 +1032 3.96689 +1033 4.1431 +1034 3.61063 +1035 3.85969 +1036 3.94596 +1037 3.54584 +1038 3.72651 +1039 3.5479 +1040 4.08423 +1041 4.48583 +1042 4.12185 +1043 4.74471 +1044 4.48583 +1045 3.31904 +1046 3.73869 +1047 3.8004 +1048 3.40856 +1049 3.94063 +1050 4.03248 +1051 3.70735 +1052 3.43969 +1053 4.113 +1054 4.09924 +1055 3.11705 +1056 3.52477 +1057 3.10996 +1058 3.46914 +1059 4.57223 +1060 4.67177 +1061 3.79598 +1062 3.63263 +1063 3.67412 +1064 4.70266 +1065 4.14575 +1066 4.00403 +1067 5.22142 +1068 3.83338 +1069 4.00386 +1070 4.56644 +1071 3.97551 +1072 3.73057 +1073 4.70654 +1074 3.26679 +1075 3.84998 +1076 3.19494 +1077 3.81992 +1078 4.67208 +1079 4.46307 +1080 4.74983 +1081 3.66313 +1082 4.33129 +1083 3.13549 +1084 3.32004 +1085 3.25423 +1086 3.0838 +1087 3.60177 +1088 3.99217 +1089 4.12071 +1090 4.21878 +1091 3.70227 +1092 5.93134 +1093 4.06945 +1094 3.6792 +1095 4.28937 +1096 4.44627 +1097 3.78016 +1098 5.16824 +1099 3.96572 +1100 4.0594 +1101 3.16378 +1102 3.93959 +1103 3.7892 +1104 3.94778 +1105 3.71616 +1106 3.37602 +1107 3.96828 +1108 3.77164 +1109 3.25982 +1110 4.30736 +1111 3.92439 +1112 4.21337 +1113 4.55591 +1114 4.60237 +1115 3.48617 +1116 4.77092 +1117 3.13534 +1118 5.04618 +1119 4.95714 +1120 4.05364 +1121 3.86215 +1122 5.14965 +1123 3.84967 +1124 4.42052 +1125 4.48597 +1126 3.26231 +1127 4.15332 +1128 4.32743 +1129 4.11052 +1130 3.30302 +1131 3.3781 +1132 3.52666 +1133 3.72532 +1134 3.77491 +1135 3.48472 +1136 3.7 +1137 3.98645 +1138 4.81433 +1139 4.09597 +1140 3.48474 +1141 4.02966 +1142 4.29132 +1143 3.7564 +1144 4.19087 +1145 5.53309 +1146 4.19434 +1147 4.04699 +1148 4.37261 +1149 4.4118 +1150 3.43584 +1151 4.65481 +1152 4.22411 +1153 3.6901 +1154 4.13793 +1155 4.04579 +1156 4.27876 +1157 3.64188 +1158 4.60104 +1159 4.47882 +1160 3.42136 +1161 3.76208 +1162 3.62217 +1163 4.11991 +1164 3.84068 +1165 3.40329 +1166 3.84901 +1167 4.03082 +1168 3.84417 +1169 3.65308 +1170 3.29345 +1171 4.27983 +1172 3.37001 +1173 3.39362 +1174 4.36596 +1175 3.24779 +1176 3.82073 +1177 3.83297 +1178 3.64667 +1179 5.12607 +1180 4.09948 +1181 4.76873 +1182 4.04795 +1183 3.32645 +1184 3.37397 +1185 4.72042 +1186 5.48112 +1187 3.67757 +1188 3.71925 +1189 3.7863 +1190 4.4961 +1191 4.80629 +1192 3.9771 +1193 4.80316 +1194 3.98762 +1195 3.67321 +1196 3.58516 +1197 4.47184 +1198 3.93019 +1199 3.53696 +1200 4.28395 +1201 3.55321 +1202 3.82073 +1203 3.75562 +1204 4.88297 +1205 3.52895 +1206 3.51206 +1207 4.07474 +1208 3.34298 +1209 3.83619 +1210 3.68705 +1211 3.362 +1212 3.33902 +1213 4.12149 +1214 3.35031 +1215 3.50407 +1216 3.8031 +1217 3.49626 +1218 4.14573 +1219 3.31962 +1220 3.74099 +1221 3.8216 +1222 3.64308 +1223 3.57315 +1224 3.87031 +1225 3.31731 +1226 3.42652 +1227 4.17221 +1228 5.17608 +1229 3.67848 +1230 4.15107 +1231 3.95316 +1232 3.45711 +1233 4.21751 +1234 3.60232 +1235 5.52992 +1236 5.50268 +1237 3.70419 +1238 4.5347 +1239 3.86388 +1240 3.49884 +1241 4.08245 +1242 4.31537 +1243 3.27482 +1244 3.14992 +1245 3.12457 +1246 3.60849 +1247 3.6565 +1248 4.4337 +1249 4.79185 +1250 3.33567 +1251 4.02574 +1252 4.47084 +1253 3.19799 +1254 3.20269 +1255 3.37415 +1256 3.9329 +1257 4.38673 +1258 3.39628 +1259 4.3652 +1260 5.10295 +1261 3.64059 +1262 4.46852 +1263 3.1853 +1264 3.96319 +1265 3.4244 +1266 3.93485 +1267 3.51253 +1268 3.72759 +1269 3.10004 +1270 4.87112 +1271 3.42033 +1272 3.65894 +1273 4.59439 +1274 3.28367 +1275 3.83633 +1276 4.11882 +1277 4.03796 +1278 4.13938 +1279 5.28948 +1280 3.77394 +1281 3.67123 +1282 3.70821 +1283 4.38497 +1284 3.9843 +1285 3.71234 +1286 4.47092 +1287 3.72687 +1288 3.85817 +1289 3.48307 +1290 4.78244 +1291 4.25265 +1292 3.89706 +1293 3.86415 +1294 4.99393 +1295 3.23695 +1296 4.14514 +1297 3.36119 +1298 3.31264 +1299 4.83342 +1300 5.0134 +1301 4.04266 +1302 3.61778 +1303 3.98912 +1304 3.67126 +1305 3.64274 +1306 3.80927 +1307 3.91799 +1308 3.45833 +1309 3.14571 +1310 3.76649 +1311 3.84799 +1312 3.5061 +1313 4.78504 +1314 4.1838 +1315 3.57529 +1316 4.05399 +1317 4.25042 +1318 5.56146 +1319 5.88089 +1320 3.13155 +1321 3.5234 +1322 5.88259 +1323 4.08053 +1324 3.64916 +1325 4.38356 +1326 4.11522 +1327 3.9304 +1328 4.00418 +1329 3.71029 +1330 3.80138 +1331 4.04432 +1332 4.58361 +1333 3.15624 +1334 3.63282 +1335 4.5003 +1336 3.11507 +1337 3.77681 +1338 3.47228 +1339 3.68364 +1340 3.52658 +1341 4.01365 +1342 3.47044 +1343 3.61122 +1344 4.16745 +1345 3.84666 +1346 4.3076 +1347 3.99287 +1348 3.40779 +1349 3.80717 +1350 3.56582 +1351 3.29342 +1352 4.13352 +1353 4.1962 +1354 4.2486 +1355 4.16249 +1356 3.90707 +1357 4.20335 +1358 3.4325 +1359 4.07306 +1360 5.19085 +1361 3.48769 +1362 4.31467 +1363 4.49321 +1364 3.55977 +1365 3.14169 +1366 3.73722 +1367 4.25217 +1368 4.24923 +1369 3.21492 +1370 3.97729 +1371 3.60149 +1372 3.06006 +1373 3.3598 +1374 3.59122 +1375 4.7577 +1376 3.19332 +1377 4.23668 +1378 4.37482 +1379 4.358 +1380 5.5413 +1381 3.68062 +1382 3.84271 +1383 3.66593 +1384 3.4526 +1385 3.98036 +1386 3.6024 +1387 3.43972 +1388 3.88154 +1389 3.94792 +1390 4.10554 +1391 3.38815 +1392 3.77876 +1393 3.15179 +1394 3.82881 +1395 3.89718 +1396 3.67766 +1397 4.29402 +1398 4.59482 +1399 5.43643 +1400 5.78054 +1401 3.36058 +1402 4.87724 +1403 4.3828 +1404 5.05591 +1405 6.25506 +1406 3.7775 +1407 3.89344 +1408 3.53662 +1409 3.90922 +1410 3.60249 +1411 5.01935 +1412 3.37331 +1413 4.5836 +1414 4.43542 +1415 4.05449 +1416 4.5056 +1417 4.81748 +1418 3.67664 +1419 5.19297 +1420 5.28668 +1421 4.69009 +1422 4.32719 +1423 5.1672 +1424 3.6912 +1425 4.24482 +1426 4.24126 +1427 4.4451 +1428 5.59377 +1429 3.56721 +1430 3.36453 +1431 4.21111 +1432 4.29328 +1433 3.19326 +1434 3.98631 +1435 4.63932 +1436 3.56221 +1437 3.89238 +1438 3.96518 +1439 3.37079 +1440 3.57479 +1441 3.52369 +1442 3.68742 +1443 3.58958 +1444 3.91224 +1445 3.57985 +1446 3.65045 +1447 3.29219 +1448 4.03715 +1449 4.0759 +1450 3.88713 +1451 4.40145 +1452 3.87867 +1453 4.26069 +1454 5.04772 +1455 3.91235 +1456 3.73011 +1457 4.68927 +1458 5.35658 +1459 4.22974 +1460 3.61409 +1461 3.19763 +1462 3.65403 +1463 4.05983 +1464 3.71917 +1465 3.77356 +1466 4.79047 +1467 3.6935 +1468 4.22929 +1469 4.74078 +1470 4.15068 +1471 3.699 +1472 4.34508 +1473 3.90942 +1474 3.71229 +1475 3.83709 +1476 4.34089 +1477 4.74768 +1478 4.70448 +1479 5.02113 +1480 3.71778 +1481 3.92276 +1482 4.0247 +1483 4.38939 +1484 3.13228 +1485 3.22176 +1486 4.58088 +1487 4.27227 +1488 4.41584 +1489 4.35361 +1490 3.466 +1491 4.78067 +1492 4.60195 +1493 3.13334 +1494 3.40458 +1495 4.16971 +1496 3.75495 +1497 4.58138 +1498 4.01145 +1499 4.35734 +1500 4.07833 +1501 4.87876 +1502 3.78325 +1503 4.49034 +1504 4.9711 +1505 4.73375 +1506 3.39122 +1507 4.6917 +1508 6.91021 +1509 4.01565 +1510 3.54271 +1511 4.63011 +1512 4.38512 +1513 3.28295 +1514 4.36697 +1515 4.03508 +1516 4.66139 +1517 4.42666 +1518 5.91731 +1519 3.39268 +1520 4.16493 +1521 3.61734 +1522 4.02959 +1523 4.65615 +1524 4.56347 +1525 3.87448 +1526 3.29174 +1527 4.4901 +1528 3.62804 +1529 4.18291 +1530 3.40825 +1531 4.42541 +1532 4.12506 +1533 3.23439 +1534 3.33909 +1535 3.47524 +1536 4.3902 +1537 3.94819 +1538 4.32716 +1539 4.05355 +1540 4.39931 +1541 4.36423 +1542 4.197 +1543 4.09865 +1544 4.04649 +1545 3.88343 +1546 4.26368 +1547 3.65964 +1548 3.9406 +1549 3.88138 +1550 4.26007 +1551 3.84127 +1552 4.28085 +1553 3.50425 +1554 4.1411 +1555 4.58372 +1556 4.16906 +1557 4.33816 +1558 3.67159 +1559 4.38489 +1560 3.67402 +1561 3.98562 +1562 4.36412 +1563 3.60057 +1564 3.93144 +1565 4.01177 +1566 4.41168 +1567 4.07688 +1568 4.92332 +1569 4.62795 +1570 4.29222 +1571 4.59475 +1572 4.26427 +1573 3.28142 +1574 3.51264 +1575 5.53727 +1576 4.37797 +1577 3.4352 +1578 3.35444 +1579 4.00651 +1580 4.10898 +1581 3.89648 +1582 3.3661 +1583 3.38519 +1584 4.1514 +1585 3.2743 +1586 3.25125 +1587 4.40923 +1588 4.6245 +1589 3.74924 +1590 3.3687 +1591 4.29581 +1592 3.2841 +1593 3.44798 +1594 3.88493 +1595 3.37555 +1596 3.59254 +1597 3.25697 +1598 3.46571 +1599 3.87489 +1600 4.0044 +1601 3.79956 +1602 3.778 +1603 4.31912 +1604 3.77609 +1605 3.57934 +1606 3.60774 +1607 4.22968 +1608 5.14215 +1609 4.20483 +1610 4.20257 +1611 5.04189 +1612 4.14218 +1613 3.91668 +1614 5.14974 +1615 3.89711 +1616 4.04006 +1617 4.21039 +1618 3.74812 +1619 4.74445 +1620 5.47424 +1621 3.62225 +1622 3.45966 +1623 3.54238 +1624 3.51038 +1625 4.15639 +1626 4.09606 +1627 4.59004 +1628 4.87319 +1629 3.91184 +1630 3.61275 +1631 3.77248 +1632 4.09558 +1633 3.62044 +1634 3.57219 +1635 4.37694 +1636 4.38728 +1637 3.44427 +1638 3.78234 +1639 3.67955 +1640 3.81445 +1641 5.02177 +1642 3.26631 +1643 3.71833 +1644 4.89855 +1645 3.8601 +1646 6.25272 +1647 4.58751 +1648 5.79498 +1649 3.99989 +1650 4.81365 +1651 3.73776 +1652 4.02618 +1653 3.48494 +1654 4.28425 +1655 3.57535 +1656 4.19522 +1657 3.31914 +1658 3.96566 +1659 4.30014 +1660 3.7102 +1661 4.83574 +1662 4.1035 +1663 3.71165 +1664 3.95516 +1665 3.49953 +1666 3.70234 +1667 3.59667 +1668 3.87237 +1669 3.74659 +1670 3.6079 +1671 3.53945 +1672 3.82043 +1673 4.06978 +1674 3.27368 +1675 3.19433 +1676 4.08054 +1677 4.22459 +1678 3.38784 +1679 3.92281 +1680 4.01577 +1681 4.94422 +1682 3.79143 +1683 3.87976 +1684 3.19126 +1685 3.87182 +1686 4.09184 +1687 3.16904 +1688 3.69148 +1689 3.76936 +1690 4.64006 +1691 3.33796 +1692 5.02928 +1693 4.45833 +1694 4.79227 +1695 4.86601 +1696 4.53838 +1697 3.76614 +1698 3.25242 +1699 3.52136 +1700 4.03025 +1701 4.43972 +1702 3.69391 +1703 4.13615 +1704 3.77069 +1705 4.72691 +1706 3.65806 +1707 3.9429 +1708 3.39042 +1709 3.40466 +1710 4.50098 +1711 4.41214 +1712 5.03842 +1713 4.97016 +1714 3.90507 +1715 3.66495 +1716 3.6684 +1717 4.46248 +1718 4.35033 +1719 3.23893 +1720 4.36843 +1721 3.88966 +1722 3.48199 +1723 5.0011 +1724 3.43239 +1725 3.90294 +1726 3.0655 +1727 4.27781 +1728 4.1347 +1729 3.76015 +1730 3.56448 +1731 3.30767 +1732 4.2298 +1733 3.28862 +1734 3.43184 +1735 4.13933 +1736 4.0852 +1737 3.0664 +1738 3.59775 +1739 3.67799 +1740 5.07517 +1741 4.84473 +1742 4.94684 +1743 3.66763 +1744 4.68962 +1745 3.63291 +1746 3.51045 +1747 3.54627 +1748 3.12926 +1749 4.23999 +1750 4.91113 +1751 5.05384 +1752 4.40575 +1753 6.54414 +1754 3.575 +1755 3.35593 +1756 3.38482 +1757 3.26503 +1758 3.47226 +1759 4.77114 +1760 4.19245 +1761 4.83381 +1762 3.37124 +1763 3.79548 +1764 4.24307 +1765 3.97123 +1766 3.74633 +1767 3.81785 +1768 3.79071 +1769 4.31034 +1770 3.81064 +1771 4.08233 +1772 3.57251 +1773 3.95045 +1774 4.04315 +1775 4.00622 +1776 3.19803 +1777 3.52759 +1778 3.92553 +1779 3.31145 +1780 3.43327 +1781 3.58389 +1782 3.93543 +1783 3.27448 +1784 3.64096 +1785 3.42596 +1786 3.5691 +1787 4.40067 +1788 3.92115 +1789 3.67554 +1790 3.61723 +1791 4.07696 +1792 4.13276 +1793 3.73246 +1794 3.55759 +1795 3.83778 +1796 3.76456 +1797 3.61324 +1798 3.6311 +1799 3.16487 +1800 3.5937 +1801 3.03924 +1802 4.30757 +1803 3.98186 +1804 3.68208 +1805 3.86509 +1806 4.03381 +1807 4.30734 +1808 3.14035 +1809 3.35719 +1810 3.08271 +1811 3.78316 +1812 4.21641 +1813 3.2316 +1814 3.87214 +1815 3.10628 +1816 3.34798 +1817 4.66482 +1818 4.63812 +1819 4.96536 +1820 3.79532 +1821 4.51215 +1822 4.24941 +1823 4.99586 +1824 4.89484 +1825 3.99731 +1826 4.18562 +1827 4.08509 +1828 3.2487 +1829 3.98392 +1830 3.62383 +1831 3.67983 +1832 3.65574 +1833 3.45651 +1834 3.46365 +1835 3.52837 +1836 3.94613 +1837 4.24304 +1838 3.63648 +1839 3.55571 +1840 3.76986 +1841 3.207 +1842 3.65037 +1843 4.04195 +1844 3.52481 +1845 3.74559 +1846 3.5905 +1847 3.93407 +1848 3.74908 +1849 3.43605 +1850 4.25007 +1851 3.07569 +1852 3.84 +1853 3.9959 +1854 3.19847 +1855 3.7131 +1856 4.14518 +1857 3.78001 +1858 3.63811 +1859 3.49891 +1860 4.1941 +1861 3.65273 +1862 4.06584 +1863 3.53453 +1864 3.33492 +1865 3.52095 +1866 3.67871 +1867 3.31065 +1868 3.31867 +1869 3.59874 +1870 4.37092 +1871 4.07682 +1872 4.23901 +1873 4.85605 +1874 3.61858 +1875 4.15006 +1876 3.97059 +1877 3.37383 +1878 4.25096 +1879 3.76882 +1880 4.22846 +1881 4.08926 +1882 4.25584 +1883 4.29863 +1884 4.10326 +1885 3.76967 +1886 3.8344 +1887 4.05497 +1888 4.18352 +1889 3.32241 +1890 4.7851 +1891 3.30812 +1892 3.08585 +1893 3.21919 +1894 3.4785 +1895 3.48445 +1896 3.37239 +1897 3.98426 +1898 3.29436 +1899 3.44753 +1900 3.70759 +1901 3.84775 +1902 3.59923 +1903 3.26761 +1904 3.41434 +1905 3.59896 +1906 3.30509 +1907 3.76384 +1908 4.55802 +1909 3.23577 +1910 3.2075 +1911 4.42532 +1912 3.72379 +1913 4.00601 +1914 3.94592 +1915 3.64971 +1916 5.11269 +1917 3.91723 +1918 4.3284 +1919 3.75449 +1920 3.97707 +1921 4.17765 +1922 4.64127 +1923 3.7119 +1924 3.98081 +1925 4.65787 +1926 3.38963 +1927 3.83757 +1928 3.38891 +1929 3.74022 +1930 3.59658 +1931 3.70738 +1932 3.59716 +1933 4.33624 +1934 4.87319 +1935 4.05076 +1936 3.98527 +1937 3.62488 +1938 3.97656 +1939 4.01839 +1940 3.60445 +1941 4.64071 +1942 4.67971 +1943 3.49184 +1944 4.01666 +1945 3.83228 +1946 4.05233 +1947 4.36376 +1948 3.83943 +1949 3.45131 +1950 3.84142 +1951 3.25421 +1952 4.28663 +1953 4.20588 +1954 4.42755 +1955 4.37577 +1956 4.07954 +1957 3.97182 +1958 3.81448 +1959 3.34571 +1960 3.92609 +1961 3.3862 +1962 3.87435 +1963 4.41228 +1964 4.17001 +1965 3.85797 +1966 5.39917 +1967 4.93921 +1968 3.75199 +1969 5.406 +1970 4.5374 +1971 3.61153 +1972 3.27871 +1973 3.68064 +1974 4.24968 +1975 4.24057 +1976 3.60912 +1977 3.6242 +1978 3.48156 +1979 3.50776 +1980 3.66612 +1981 3.39551 +1982 4.05795 +1983 3.83376 +1984 3.48102 +1985 3.83084 +1986 3.3988 +1987 4.28608 +1988 3.61943 +1989 3.33898 +1990 4.16889 +1991 3.21296 +1992 3.42518 +1993 3.09931 +1994 3.69498 +1995 3.89548 +1996 4.14428 +1997 3.09999 +1998 4.37988 +1999 3.95282 +2000 3.27036 +2001 3.87983 +2002 3.73167 +2003 4.38091 +2004 4.07383 +2005 3.69385 +2006 5.67827 +2007 3.10026 +2008 3.18997 +2009 3.78354 +2010 3.81838 +2011 4.86634 +2012 3.41438 +2013 3.85706 +2014 4.41853 +2015 3.54082 +2016 3.92364 +2017 3.52697 +2018 3.96272 +2019 3.27821 +2020 3.25353 +2021 3.41397 +2022 4.05661 +2023 3.70153 +2024 3.14427 +2025 3.59408 +2026 3.86218 +2027 4.12528 +2028 4.13203 +2029 3.21003 +2030 4.5553 +2031 4.12167 +2032 3.48946 +2033 4.89418 +2034 3.94638 +2035 3.84025 +2036 3.29516 +2037 3.89821 +2038 3.55649 +2039 3.49992 +2040 3.94659 +2041 3.83941 +2042 3.58893 +2043 3.29593 +2044 5.55612 +2045 4.2979 +2046 4.52978 +2047 3.61456 +2048 3.80765 +2049 3.48072 +2050 4.19231 +2051 4.90514 +2052 3.83353 +2053 3.18368 +2054 3.9418 +2055 3.51585 +2056 3.65774 +2057 3.35886 +2058 3.79728 +2059 3.84844 +2060 3.67121 +2061 4.36826 +2062 4.00615 +2063 3.86389 +2064 5.02435 +2065 3.77422 +2066 3.252 +2067 4.57958 +2068 3.46657 +2069 5.0297 +2070 4.28411 +2071 5.03697 +2072 4.13612 +2073 3.92063 +2074 3.61837 +2075 3.97161 +2076 3.18813 +2077 4.14821 +2078 3.61462 +2079 3.7433 +2080 4.17875 +2081 3.40926 +2082 3.82019 +2083 3.51632 +2084 4.48959 +2085 3.1514 +2086 3.38237 +2087 3.62636 +2088 3.97539 +2089 4.16251 +2090 3.63189 +2091 3.8891 +2092 3.80546 +2093 3.47477 +2094 4.14984 +2095 3.22301 +2096 3.96658 +2097 3.55797 +2098 3.55574 +2099 3.52568 +2100 3.89223 +2101 3.51088 +2102 3.67269 +2103 3.44246 +2104 3.52887 +2105 3.76685 +2106 3.64309 +2107 3.34796 +2108 4.65791 +2109 3.61878 +2110 4.08025 +2111 4.3766 +2112 3.68728 +2113 4.86362 +2114 3.58219 +2115 4.37734 +2116 3.73027 +2117 4.74337 +2118 4.3273 +2119 3.96656 +2120 4.30704 +2121 4.34092 +2122 3.4252 +2123 4.17583 +2124 3.24503 +2125 3.31833 +2126 3.35066 +2127 4.28039 +2128 4.22971 +2129 4.3346 +2130 3.33983 +2131 4.90582 +2132 4.44014 +2133 4.14792 +2134 3.90512 +2135 4.23976 +2136 4.10746 +2137 3.66367 +2138 3.38819 +2139 3.7949 +2140 3.14767 +2141 3.54307 +2142 6.89908 +2143 4.75599 +2144 3.45587 +2145 4.14092 +2146 4.18541 +2147 6.16597 +2148 4.09515 +2149 3.21072 +2150 3.55188 +2151 3.48274 +2152 3.4779 +2153 4.32419 +2154 4.27777 +2155 3.94113 +2156 4.12307 +2157 3.7542 +2158 3.96068 +2159 3.67897 +2160 3.44014 +2161 5.53883 +2162 3.06269 +2163 3.34055 +2164 3.70108 +2165 4.71709 +2166 3.55962 +2167 3.86149 +2168 3.41287 +2169 3.97309 +2170 4.02954 +2171 3.86065 +2172 3.74421 +2173 4.9848 +2174 3.39516 +2175 3.50331 +2176 4.09675 +2177 4.35507 +2178 3.38718 +2179 4.01537 +2180 3.92691 +2181 3.61091 +2182 4.59432 +2183 3.28517 +2184 3.94736 +2185 4.72445 +2186 4.28018 +2187 4.23042 +2188 3.66225 +2189 3.86322 +2190 3.56083 +2191 4.07636 +2192 4.49079 +2193 3.47321 +2194 4.39864 +2195 3.73894 +2196 3.70919 +2197 3.57539 +2198 3.84596 +2199 4.77916 +2200 3.41933 +2201 3.57826 +2202 4.19598 +2203 4.78041 +2204 3.43367 +2205 4.0986 +2206 4.49468 +2207 3.81312 +2208 4.13451 +2209 3.61963 +2210 4.66573 +2211 3.65221 +2212 4.34227 +2213 3.93622 +2214 4.6734 +2215 3.24481 +2216 3.69967 +2217 4.221 +2218 4.03287 +2219 4.14923 +2220 3.73612 +2221 3.60832 +2222 3.85376 +2223 4.24235 +2224 4.95371 +2225 3.76495 +2226 3.46765 +2227 5.00293 +2228 4.0133 +2229 3.54722 +2230 3.32057 +2231 4.94603 +2232 4.47825 +2233 3.44917 +2234 3.65045 +2235 3.29813 +2236 3.13398 +2237 4.19259 +2238 3.86498 +2239 4.26346 +2240 3.23403 +2241 3.44097 +2242 3.57101 +2243 4.19528 +2244 3.97267 +2245 3.82688 +2246 3.95741 +2247 3.56238 +2248 3.74299 +2249 4.40935 +2250 4.3838 +2251 4.1266 +2252 3.43761 +2253 3.52269 +2254 3.16129 +2255 4.28312 +2256 3.86872 +2257 3.26572 +2258 3.95304 +2259 4.62085 +2260 4.67827 +2261 4.40335 +2262 4.49376 +2263 4.84382 +2264 3.41082 +2265 3.53104 +2266 3.61574 +2267 3.73095 +2268 3.78798 +2269 3.79558 +2270 3.64718 +2271 3.4768 +2272 3.68264 +2273 5.11857 +2274 4.02503 +2275 4.00146 +2276 3.76655 +2277 3.67827 +2278 3.33003 +2279 3.31356 +2280 4.50354 +2281 4.35053 +2282 4.52135 +2283 3.51593 +2284 3.82231 +2285 4.35979 +2286 4.00371 +2287 4.54756 +2288 3.4332 +2289 3.75388 +2290 4.03602 +2291 3.88379 +2292 3.91875 +2293 4.4132 +2294 3.36885 +2295 3.76678 +2296 3.98819 +2297 3.98874 +2298 4.32408 +2299 3.6433 +2300 4.05371 +2301 3.60627 +2302 3.50097 +2303 4.33139 +2304 3.98129 +2305 3.39719 +2306 3.77088 +2307 4.66281 +2308 4.21633 +2309 4.14504 +2310 4.76871 +2311 3.65929 +2312 3.40641 +2313 4.46545 +2314 3.75654 +2315 3.59911 +2316 4.30774 +2317 4.38043 +2318 3.64666 +2319 3.67116 +2320 3.53518 +2321 4.55522 +2322 4.59757 +2323 3.58665 +2324 3.45731 +2325 3.8471 +2326 3.78394 +2327 3.63781 +2328 4.35533 +2329 3.64036 +2330 4.03011 +2331 3.76279 +2332 3.86187 +2333 3.46136 +2334 3.91556 +2335 3.48756 +2336 4.16806 +2337 3.98847 +2338 3.50922 +2339 4.19884 +2340 4.13761 +2341 3.84978 +2342 3.65866 +2343 3.85423 +2344 4.16781 +2345 3.72293 +2346 4.73329 +2347 3.61202 +2348 4.49599 +2349 3.939 +2350 4.46331 +2351 3.45364 +2352 3.64201 +2353 3.73883 +2354 3.71937 +2355 3.49945 +2356 4.21224 +2357 3.3955 +2358 3.18883 +2359 3.60628 +2360 3.80189 +2361 3.90265 +2362 3.53298 +2363 5.29386 +2364 3.9243 +2365 4.10093 +2366 3.89428 +2367 3.32404 +2368 4.20241 +2369 4.15242 +2370 4.38723 +2371 3.5623 +2372 3.22932 +2373 3.72531 +2374 3.31468 +2375 4.58131 +2376 3.68137 +2377 3.16789 +2378 3.3404 +2379 4.68209 +2380 3.67483 +2381 3.57468 +2382 4.47033 +2383 5.75223 +2384 5.34955 +2385 3.18756 +2386 3.3724 +2387 5.0266 +2388 4.34821 +2389 3.96539 +2390 3.40143 +2391 4.2571 +2392 4.74693 +2393 4.0229 +2394 4.06997 +2395 4.69226 +2396 3.5356 +2397 4.12417 +2398 3.17423 +2399 3.87818 +2400 3.69876 +2401 4.24461 +2402 3.67224 +2403 3.99096 +2404 3.40589 +2405 4.84337 +2406 4.69635 +2407 3.19893 +2408 3.9521 +2409 4.07394 +2410 4.54617 +2411 3.77641 +2412 3.10109 +2413 3.4776 +2414 3.23025 +2415 3.75224 +2416 3.98413 +2417 3.88183 +2418 5.05592 +2419 3.17318 +2420 4.22056 +2421 3.52014 +2422 4.16549 +2423 4.08357 +2424 3.55332 +2425 3.38792 +2426 3.66151 +2427 3.69941 +2428 3.38882 +2429 5.13972 +2430 3.57294 +2431 3.44278 +2432 3.60681 +2433 3.58896 +2434 3.51955 +2435 4.28983 +2436 3.79385 +2437 4.17259 +2438 4.25416 +2439 3.53462 +2440 3.24822 +2441 3.54013 +2442 4.08096 +2443 3.96042 +2444 4.02467 +2445 4.09243 +2446 3.69448 +2447 3.88744 +2448 4.12714 +2449 3.27691 +2450 3.52252 +2451 3.72536 +2452 3.83298 +2453 3.89206 +2454 3.81113 +2455 3.26568 +2456 3.81614 +2457 3.60332 +2458 4.07722 +2459 3.89811 +2460 4.04358 +2461 3.15421 +2462 4.30986 +2463 3.4937 +2464 3.39997 +2465 3.76688 +2466 4.07266 +2467 4.29103 +2468 3.3554 +2469 3.42334 +2470 3.91394 +2471 3.47169 +2472 3.44367 +2473 3.67149 +2474 3.89886 +2475 3.236 +2476 3.75266 +2477 3.35585 +2478 3.39067 +2479 3.32605 +2480 3.40909 +2481 3.22104 +2482 4.08885 +2483 3.44441 +2484 4.03235 +2485 3.34503 +2486 3.53714 +2487 3.75487 +2488 3.27894 +2489 3.30903 +2490 3.63077 +2491 3.77328 +2492 4.10968 +2493 3.7319 +2494 3.86889 +2495 3.5825 +2496 3.45864 +2497 3.97111 +2498 3.27505 +2499 3.59926 +2500 3.96405 +2501 3.92683 +2502 3.93296 +2503 4.18709 +2504 3.15634 +2505 4.36298 +2506 4.50477 +2507 3.16875 +2508 4.86759 +2509 3.58851 +2510 4.09834 +2511 4.00151 +2512 5.20824 +2513 4.28217 +2514 3.87199 +2515 3.60454 +2516 3.42642 +2517 3.96378 +2518 3.2919 +2519 3.47566 +2520 4.46115 +2521 3.12725 +2522 3.89604 +2523 3.03619 +2524 4.40167 +2525 4.91355 +2526 4.32271 +2527 3.28207 +2528 3.68072 +2529 3.55364 +2530 3.91005 +2531 4.39853 +2532 3.83612 +2533 4.19761 +2534 4.30857 +2535 3.1909 +2536 4.71989 +2537 3.59094 +2538 3.11797 +2539 3.07157 +2540 3.40297 +2541 3.18042 +2542 3.85971 +2543 3.36759 +2544 4.14715 +2545 3.3206 +2546 4.54639 +2547 3.28664 +2548 3.59284 +2549 3.54431 +2550 3.44357 +2551 4.09113 +2552 4.25347 +2553 4.8118 +2554 4.30853 +2555 3.50119 +2556 3.43782 +2557 3.64625 +2558 6.27756 +2559 3.95173 +2560 4.11495 +2561 4.00093 +2562 4.14928 +2563 4.64668 +2564 3.82881 +2565 6.77823 +2566 5.71957 +2567 5.33363 +2568 3.558 +2569 3.37379 +2570 4.35831 +2571 3.94231 +2572 5.03909 +2573 3.09854 +2574 4.54553 +2575 3.58292 +2576 3.44449 +2577 3.91589 +2578 3.69581 +2579 4.4345 +2580 4.326 +2581 3.98975 +2582 3.32924 +2583 4.05219 +2584 3.96868 +2585 3.26202 +2586 5.19919 +2587 3.93277 +2588 3.79776 +2589 3.36377 +2590 4.72799 +2591 4.0079 +2592 4.45098 +2593 4.15167 +2594 3.62744 +2595 3.08601 +2596 3.46232 +2597 3.7995 +2598 3.48127 +2599 3.29628 +2600 3.63145 +2601 3.54421 +2602 3.4221 +2603 3.71474 +2604 3.94707 +2605 3.29578 +2606 3.40239 +2607 4.30511 +2608 3.56144 +2609 5.51284 +2610 3.78174 +2611 3.71238 +2612 4.87451 +2613 4.61537 +2614 4.48709 +2615 3.76044 +2616 3.50441 +2617 4.41849 +2618 3.24561 +2619 4.25737 +2620 3.49782 +2621 3.89643 +2622 4.00696 +2623 4.03166 +2624 3.92874 +2625 3.84463 +2626 3.36147 +2627 4.76107 +2628 3.71422 +2629 3.77138 +2630 3.36991 +2631 3.80254 +2632 3.77987 +2633 4.14633 +2634 4.24957 +2635 3.22337 +2636 3.5746 +2637 3.52845 +2638 3.79071 +2639 3.75613 +2640 3.52682 +2641 3.07374 +2642 3.28379 +2643 3.11107 +2644 3.76785 +2645 4.1516 +2646 4.28852 +2647 3.11195 +2648 3.57071 +2649 3.75754 +2650 3.98143 +2651 3.64598 +2652 3.64069 +2653 3.50947 +2654 3.30143 +2655 5.40338 +2656 3.56438 +2657 3.67696 +2658 5.17089 +2659 4.70061 +2660 3.23045 +2661 3.5351 +2662 3.67266 +2663 3.77162 +2664 3.71294 +2665 3.21021 +2666 3.26564 +2667 4.37753 +2668 3.32581 +2669 3.07527 +2670 4.25193 +2671 4.14013 +2672 4.09974 +2673 3.45324 +2674 3.24315 +2675 4.4643 +2676 3.49611 +2677 4.39718 +2678 4.23662 +2679 3.42155 +2680 3.61542 +2681 3.84471 +2682 4.13525 +2683 4.64097 +2684 3.5769 +2685 4.12178 +2686 3.38329 +2687 4.39129 +2688 3.97657 +2689 3.85934 +2690 3.63338 +2691 3.79788 +2692 4.10525 +2693 3.15131 +2694 4.12805 +2695 3.45345 +2696 3.50768 +2697 4.63736 +2698 4.17401 +2699 4.48668 +2700 3.97825 +2701 3.70528 +2702 3.43037 +2703 3.41965 +2704 3.52105 +2705 3.67607 +2706 4.34288 +2707 4.82557 +2708 4.1204 +2709 3.92802 +2710 3.6038 +2711 3.5254 +2712 3.67007 +2713 5.07144 +2714 3.22846 +2715 3.33815 +2716 4.14556 +2717 3.54364 +2718 3.40304 +2719 3.56729 +2720 3.34487 +2721 4.09495 +2722 3.24472 +2723 3.30139 +2724 3.75819 +2725 3.77782 +2726 4.08831 +2727 4.10882 +2728 3.40471 +2729 3.79422 +2730 4.65745 +2731 3.40639 +2732 4.45131 +2733 3.74593 +2734 4.19075 +2735 3.74144 +2736 4.35061 +2737 4.42097 +2738 4.61379 +2739 3.88956 +2740 4.23999 +2741 3.32508 +2742 5.22221 +2743 4.02572 +2744 4.18485 +2745 3.73124 +2746 3.75405 +2747 4.59688 +2748 3.76052 +2749 3.6828 +2750 3.71871 +2751 3.14628 +2752 3.67898 +2753 3.90689 +2754 3.40645 +2755 3.45783 +2756 3.79464 +2757 3.47837 +2758 4.32327 +2759 3.67853 +2760 3.73291 +2761 3.7761 +2762 5.10382 +2763 4.67058 +2764 3.5899 +2765 4.1643 +2766 4.39479 +2767 3.80448 +2768 4.02327 +2769 3.75117 +2770 3.32071 +2771 3.44512 +2772 3.30429 +2773 3.4074 +2774 3.47085 +2775 4.69992 +2776 4.05595 +2777 3.51554 +2778 3.28633 +2779 4.02589 +2780 3.89281 +2781 3.5644 +2782 3.16688 +2783 4.61047 +2784 3.98306 +2785 4.15598 +2786 3.58028 +2787 3.53396 +2788 3.40964 +2789 3.82118 +2790 4.12658 +2791 3.5012 +2792 3.37178 +2793 3.39892 +2794 3.18809 +2795 3.78843 +2796 4.0513 +2797 3.23746 +2798 3.91097 +2799 3.1941 +2800 4.0227 +2801 3.27005 +2802 3.40702 +2803 3.4319 +2804 3.07352 +2805 4.44228 +2806 4.53959 +2807 4.53287 +2808 4.10353 +2809 5.3239 +2810 3.58566 +2811 4.19601 +2812 4.31403 +2813 3.55973 +2814 5.0209 +2815 3.62854 +2816 3.9815 +2817 3.31706 +2818 4.28348 +2819 4.37031 +2820 4.00489 +2821 4.06587 +2822 4.61531 +2823 4.16318 +2824 3.40634 +2825 3.17897 +2826 3.31334 +2827 4.08751 +2828 4.02023 +2829 3.81078 +2830 3.67164 +2831 4.74166 +2832 3.5147 +2833 3.64574 +2834 3.32234 +2835 3.75122 +2836 4.24924 +2837 3.76259 +2838 3.30517 +2839 3.59625 +2840 3.9312 +2841 4.13603 +2842 3.8967 +2843 3.36666 +2844 4.29465 +2845 3.60227 +2846 3.70272 +2847 4.57837 +2848 3.58039 +2849 3.51519 +2850 3.7652 +2851 3.26008 +2852 3.25732 +2853 3.46211 +2854 3.83385 +2855 3.32304 +2856 3.62464 +2857 4.04354 +2858 3.87606 +2859 4.27439 +2860 3.50887 +2861 3.52541 +2862 4.34248 +2863 4.0211 +2864 3.98095 +2865 3.6245 +2866 3.70666 +2867 3.29674 +2868 4.66517 +2869 3.11624 +2870 3.91106 +2871 3.76531 +2872 4.50604 +2873 3.91929 +2874 3.92607 +2875 4.31583 +2876 3.03247 +2877 4.37855 +2878 4.13659 +2879 3.48975 +2880 3.79465 +2881 3.61044 +2882 3.39916 +2883 4.1462 +2884 4.77393 +2885 4.19353 +2886 3.24526 +2887 3.88971 +2888 3.50718 +2889 3.91513 +2890 3.8873 +2891 3.24877 +2892 3.20131 +2893 3.86687 +2894 3.82355 +2895 3.10139 +2896 3.37645 +2897 4.71323 +2898 3.49618 +2899 4.40873 +2900 3.59653 +2901 3.64295 +2902 3.40163 +2903 3.47227 +2904 3.89095 +2905 4.09404 +2906 3.77597 +2907 3.99142 +2908 4.12497 +2909 3.17886 +2910 3.72439 +2911 3.76114 +2912 3.35278 +2913 3.61615 +2914 4.52914 +2915 3.65108 +2916 3.37338 +2917 3.52655 +2918 3.32413 +2919 3.44961 +2920 3.54069 +2921 3.46873 +2922 4.37445 +2923 3.46093 +2924 3.25192 +2925 3.76543 +2926 4.07016 +2927 3.94126 +2928 3.51154 +2929 3.81691 +2930 3.88938 +2931 3.97282 +2932 3.19243 +2933 3.18035 +2934 3.95801 +2935 3.23883 +2936 3.78959 +2937 3.72475 +2938 4.16066 +2939 4.30035 +2940 3.49645 +2941 3.50415 +2942 3.34166 +2943 4.21531 +2944 4.64749 +2945 3.91717 +2946 4.19585 +2947 3.85575 +2948 3.98562 +2949 3.63811 +2950 3.26019 +2951 3.89587 +2952 3.95122 +2953 3.54134 +2954 3.3937 +2955 3.16007 +2956 3.98551 +2957 3.81586 +2958 4.28298 +2959 3.5547 +2960 3.42211 +2961 3.69822 +2962 3.36468 +2963 3.57236 +2964 4.02909 +2965 3.4969 +2966 3.97471 +2967 4.27114 +2968 3.7066 +2969 3.1395 +2970 4.36096 +2971 3.46021 +2972 3.93449 +2973 3.2691 +2974 3.63445 +2975 3.20934 +2976 3.20517 +2977 3.05898 +2978 4.38064 +2979 3.46354 +2980 3.63565 +2981 4.4471 +2982 4.47013 +2983 5.43404 +2984 5.53795 +2985 3.93304 +2986 3.39235 +2987 4.10017 +2988 4.14841 +2989 4.7177 +2990 5.04381 +2991 3.50569 +2992 3.99168 +2993 4.36993 +2994 3.53971 +2995 3.89841 +2996 4.30621 +2997 4.27464 +2998 3.78127 +2999 5.49123 +3000 3.54336 +3001 3.84389 +3002 3.68889 +3003 5.27375 +3004 3.46469 +3005 4.0467 +3006 3.93514 +3007 4.18196 +3008 3.941 +3009 4.82841 +3010 4.44844 +3011 4.52964 +3012 4.72972 +3013 3.78094 +3014 3.90595 +3015 3.39449 +3016 3.43118 +3017 3.47013 +3018 3.90332 +3019 3.45078 +3020 3.41724 +3021 3.63388 +3022 3.56978 +3023 4.24951 +3024 4.37748 +3025 3.3284 +3026 4.29652 +3027 4.55181 +3028 3.14131 +3029 4.29346 +3030 3.528 +3031 3.20103 +3032 3.36144 +3033 3.82866 +3034 3.34182 +3035 3.46795 +3036 3.08929 +3037 3.22697 +3038 3.62838 +3039 3.40484 +3040 4.85734 +3041 4.17826 +3042 3.75904 +3043 3.89184 +3044 3.47693 +3045 3.54751 +3046 4.12379 +3047 3.73053 +3048 3.61749 +3049 3.34475 +3050 3.44056 +3051 4.17638 +3052 3.53471 +3053 4.08393 +3054 3.23811 +3055 4.76685 +3056 4.36157 +3057 3.14261 +3058 4.56207 +3059 4.55369 +3060 3.796 +3061 3.82719 +3062 5.86046 +3063 4.25768 +3064 3.56477 +3065 3.91952 +3066 4.52502 +3067 3.62761 +3068 4.24884 +3069 3.86576 +3070 3.29725 +3071 3.2304 +3072 3.99983 +3073 3.48012 +3074 3.82407 +3075 3.76863 +3076 3.28244 +3077 3.25403 +3078 4.22424 +3079 4.51191 +3080 4.15469 +3081 4.08024 +3082 3.8593 +3083 3.67331 +3084 3.3103 +3085 3.69408 +3086 3.78812 +3087 3.87248 +3088 4.035 +3089 3.61869 +3090 3.74315 +3091 3.83693 +3092 3.68328 +3093 3.52147 +3094 3.7704 +3095 4.02096 +3096 5.00152 +3097 3.93659 +3098 3.58154 +3099 4.67073 +3100 4.51049 +3101 3.27391 +3102 3.51215 +3103 3.32482 +3104 4.15064 +3105 3.39461 +3106 3.5035 +3107 3.19238 +3108 4.03777 +3109 3.14781 +3110 4.84249 +3111 5.10943 +3112 4.88609 +3113 4.23396 +3114 3.16782 +3115 4.00005 +3116 4.02595 +3117 5.28737 +3118 4.78559 +3119 3.75368 +3120 3.5255 +3121 4.55945 +3122 4.0169 +3123 3.88556 +3124 4.44252 +3125 4.48274 +3126 4.77852 +3127 3.38056 +3128 4.03357 +3129 5.48485 +3130 3.24969 +3131 3.30889 +3132 3.28979 +3133 3.59973 +3134 5.14253 +3135 3.58994 +3136 3.31965 +3137 3.07811 +3138 3.41771 +3139 3.45511 +3140 3.91459 +3141 3.36803 +3142 3.43755 +3143 4.45406 +3144 3.67263 +3145 4.46138 +3146 3.96745 +3147 3.79258 +3148 4.12676 +3149 3.82328 +3150 3.98017 +3151 4.23914 +3152 3.72904 +3153 3.89847 +3154 4.12904 +3155 3.59152 +3156 3.15212 +3157 3.19008 +3158 3.81958 +3159 3.81193 +3160 3.24046 +3161 4.28843 +3162 3.59377 +3163 3.25804 +3164 3.59185 +3165 3.36282 +3166 3.77835 +3167 3.91304 +3168 4.18056 +3169 3.48117 +3170 4.40213 +3171 4.03045 +3172 3.53751 +3173 3.31435 +3174 3.54744 +3175 4.10947 +3176 4.54657 +3177 3.63077 +3178 4.18795 +3179 3.24106 +3180 3.56588 +3181 3.2693 +3182 3.42622 +3183 4.44701 +3184 4.02552 +3185 3.43572 +3186 3.96673 +3187 3.66118 +3188 3.68177 +3189 3.45115 +3190 3.67613 +3191 3.90157 +3192 3.59786 +3193 3.98147 +3194 3.38416 +3195 3.58828 +3196 3.99437 +3197 3.56697 +3198 3.36189 +3199 3.1027 +3200 4.16261 +3201 4.38685 +3202 4.30418 +3203 4.13913 +3204 3.41658 +3205 3.8466 +3206 4.07386 +3207 3.85913 +3208 3.74843 +3209 3.35515 +3210 3.45404 +3211 3.63974 +3212 3.29191 +3213 3.3568 +3214 5.18161 +3215 3.754 +3216 4.01906 +3217 3.72465 +3218 4.26971 +3219 3.64187 +3220 3.34908 +3221 4.08408 +3222 4.01284 +3223 4.28667 +3224 4.42637 +3225 3.53261 +3226 4.02583 +3227 4.15564 +3228 3.34586 +3229 3.94172 +3230 3.76987 +3231 3.22735 +3232 3.98983 +3233 3.47702 +3234 4.374 +3235 3.27665 +3236 3.99624 +3237 4.55614 +3238 3.53113 +3239 3.69883 +3240 3.45802 +3241 3.68291 +3242 4.16004 +3243 3.94787 +3244 3.68203 +3245 3.92312 +3246 3.62803 +3247 4.77502 +3248 3.41651 +3249 4.70478 +3250 3.14734 +3251 4.75076 +3252 3.76642 +3253 3.24625 +3254 3.65872 +3255 3.71669 +3256 3.26818 +3257 3.69816 +3258 3.21092 +3259 4.1387 +3260 3.90331 +3261 4.41421 +3262 3.76383 +3263 3.66006 +3264 3.94697 +3265 3.67435 +3266 3.89858 +3267 4.67567 +3268 3.33897 +3269 3.87324 +3270 4.3372 +3271 4.33621 +3272 3.7989 +3273 6.39746 +3274 4.16605 +3275 3.20427 +3276 3.32791 +3277 3.20252 +3278 3.69199 +3279 3.86425 +3280 4.29896 +3281 4.42971 +3282 3.77526 +3283 3.29643 +3284 4.0697 +3285 3.49445 +3286 3.71479 +3287 4.33883 +3288 3.28194 +3289 3.49245 +3290 3.56201 +3291 3.64701 +3292 3.77594 +3293 3.98853 +3294 3.50714 +3295 3.60492 +3296 3.65996 +3297 3.52934 +3298 3.98307 +3299 3.58728 +3300 3.45966 +3301 3.92305 +3302 4.34866 +3303 4.01309 +3304 3.25298 +3305 3.87097 +3306 3.42103 +3307 3.09871 +3308 4.13785 +3309 3.77025 +3310 3.89849 +3311 3.60326 +3312 3.73654 +3313 4.20378 +3314 3.8082 +3315 3.47573 +3316 4.08965 +3317 3.24656 +3318 3.78052 +3319 3.50668 +3320 3.79548 +3321 3.60977 +3322 3.41125 +3323 3.5198 +3324 3.91928 +3325 3.90383 +3326 3.61521 +3327 3.62328 +3328 3.40982 +3329 3.22389 +3330 4.10375 +3331 4.1308 +3332 3.2402 +3333 3.52032 +3334 3.33322 +3335 3.71992 +3336 3.62143 +3337 3.29784 +3338 3.71936 +3339 3.91633 +3340 4.71798 +3341 3.89059 +3342 3.29555 +3343 3.68649 +3344 3.65578 +3345 3.68686 +3346 3.99395 +3347 3.65549 +3348 3.47254 +3349 3.26368 +3350 4.39618 +3351 4.27979 +3352 3.40145 +3353 3.74559 +3354 4.55798 +3355 3.50481 +3356 3.53898 +3357 3.61665 +3358 4.71467 +3359 4.26334 +3360 3.95929 +3361 3.68303 +3362 3.64682 +3363 4.30748 +3364 3.49105 +3365 4.37559 +3366 3.78684 +3367 3.37158 +3368 4.46299 +3369 3.65133 +3370 3.91191 +3371 3.57024 +3372 3.19372 +3373 3.71644 +3374 4.20212 +3375 4.36327 +3376 3.63406 +3377 3.63817 +3378 3.5164 +3379 3.53856 +3380 3.1357 +3381 3.49896 +3382 4.21253 +3383 4.29209 +3384 3.83144 +3385 5.02366 +3386 4.69644 +3387 5.64871 +3388 4.26741 +3389 4.9007 +3390 4.17852 +3391 4.37487 +3392 4.43154 +3393 4.03892 +3394 4.74667 +3395 3.69536 +3396 3.53402 +3397 3.86731 +3398 3.65884 +3399 6.87864 +3400 3.79659 +3401 3.25241 +3402 3.68878 +3403 3.84086 +3404 3.61161 +3405 5.21005 +3406 3.59641 +3407 3.27554 +3408 3.64395 +3409 3.36783 +3410 3.7745 +3411 3.83771 +3412 3.85885 +3413 4.24591 +3414 4.7162 +3415 3.64156 +3416 3.54679 +3417 3.7477 +3418 3.87262 +3419 4.21849 +3420 4.01815 +3421 3.51043 +3422 3.34431 +3423 4.7082 +3424 3.90793 +3425 3.86811 +3426 3.32115 +3427 3.92278 +3428 3.11163 +3429 3.67227 +3430 4.13124 +3431 3.88498 +3432 3.94974 +3433 3.5631 +3434 3.55282 +3435 3.60328 +3436 4.20141 +3437 3.81092 +3438 4.03547 +3439 4.02305 +3440 4.14011 +3441 3.25359 +3442 3.83186 +3443 3.37349 +3444 3.72631 +3445 3.41238 +3446 3.33911 +3447 3.81736 +3448 3.48574 +3449 3.95756 +3450 4.16848 +3451 5.19556 +3452 4.15272 +3453 3.5801 +3454 3.29271 +3455 4.32293 +3456 3.76565 +3457 3.99255 +3458 3.44241 +3459 4.40105 +3460 3.60209 +3461 3.83615 +3462 4.66626 +3463 4.20923 +3464 3.22038 +3465 3.37306 +3466 3.32873 +3467 3.62305 +3468 4.17401 +3469 3.32759 +3470 3.30554 +3471 3.37243 +3472 4.13697 +3473 3.51361 +3474 3.10806 +3475 3.53301 +3476 3.41531 +3477 4.13333 +3478 3.50518 +3479 4.06229 +3480 4.04545 +3481 4.37097 +3482 4.67691 +3483 4.11203 +3484 4.56272 +3485 6.51559 +3486 3.6098 +3487 3.34669 +3488 3.67043 +3489 3.58334 +3490 4.17321 +3491 3.52124 +3492 4.22808 +3493 3.77167 +3494 3.25035 +3495 3.40372 +3496 3.35619 +3497 3.79072 +3498 3.28003 +3499 3.49047 +3500 3.46582 +3501 3.60976 +3502 3.49566 +3503 4.07883 +3504 3.50974 +3505 3.56044 +3506 3.58929 +3507 3.73276 +3508 3.78466 +3509 3.82824 +3510 3.64858 +3511 3.56449 +3512 3.56886 +3513 3.63505 +3514 3.59783 +3515 3.91341 +3516 3.35429 +3517 3.84324 +3518 3.47172 +3519 3.64168 +3520 4.0189 +3521 3.39854 +3522 3.58184 +3523 3.5398 +3524 3.9443 +3525 3.81913 +3526 3.24969 +3527 3.59733 +3528 4.18132 +3529 3.20037 +3530 4.42187 +3531 4.2901 +3532 3.21804 +3533 3.82681 +3534 3.26581 +3535 4.26753 +3536 5.14475 +3537 3.25625 +3538 3.88409 +3539 4.13533 +3540 3.83053 +3541 3.63777 +3542 4.32421 +3543 4.36299 +3544 4.20356 +3545 3.85213 +3546 3.42765 +3547 3.66158 +3548 4.14209 +3549 4.00205 +3550 4.02495 +3551 3.94993 +3552 4.3035 +3553 3.84008 +3554 3.41406 +3555 3.76697 +3556 3.42739 +3557 3.42314 +3558 4.42521 +3559 3.93367 +3560 4.51452 +3561 3.6395 +3562 4.29596 +3563 4.28794 +3564 3.50298 +3565 4.68297 +3566 3.60056 +3567 3.44522 +3568 4.36198 +3569 3.54033 +3570 3.94241 +3571 3.93942 +3572 3.37809 +3573 3.19453 +3574 3.33313 +3575 3.31335 +3576 4.11632 +3577 3.86708 +3578 4.50264 +3579 4.59106 +3580 4.15919 +3581 3.8404 +3582 3.72407 +3583 4.3266 +3584 3.85431 +3585 3.77991 +3586 3.96189 +3587 3.66311 +3588 3.42494 +3589 3.37808 +3590 3.94645 +3591 4.07194 +3592 4.26369 +3593 3.79859 +3594 4.59675 +3595 3.32422 +3596 3.62732 +3597 3.24599 +3598 3.83349 +3599 3.63773 +3600 3.75263 +3601 3.5468 +3602 3.76022 +3603 4.82203 +3604 3.89007 +3605 3.63216 +3606 4.14221 +3607 3.53616 +3608 4.1984 +3609 3.32378 +3610 3.39948 +3611 4.24172 +3612 3.65305 +3613 3.61181 +3614 4.34773 +3615 3.58876 +3616 3.4819 +3617 3.91011 +3618 3.58509 +3619 4.21115 +3620 4.46492 +3621 4.37823 +3622 4.03569 +3623 4.19895 +3624 4.02018 +3625 3.63914 +3626 3.59499 +3627 3.17427 +3628 3.88746 +3629 3.3238 +3630 3.40826 +3631 3.50621 +3632 4.38459 +3633 3.6071 +3634 3.93795 +3635 3.62117 +3636 3.96565 +3637 3.18087 +3638 3.95209 +3639 3.92469 +3640 3.5786 +3641 3.92146 +3642 6.27148 +3643 4.57728 +3644 3.49501 +3645 3.38804 +3646 3.37935 +3647 3.95088 +3648 3.36508 +3649 3.95965 +3650 3.5314 +3651 3.88219 +3652 3.65602 +3653 3.69691 +3654 3.82332 +3655 4.79916 +3656 3.45864 +3657 3.20346 +3658 3.14764 +3659 3.54086 +3660 3.49112 +3661 3.42023 +3662 3.7147 +3663 4.1047 +3664 3.78729 +3665 4.019 +3666 4.00069 +3667 3.64235 +3668 3.39078 +3669 3.80688 +3670 4.01616 +3671 3.38256 +3672 4.12412 +3673 4.37706 +3674 3.757 +3675 3.91786 +3676 4.4313 +3677 5.03254 +3678 3.86856 +3679 4.61752 +3680 3.62555 +3681 3.70645 +3682 3.96636 +3683 3.69708 +3684 3.63951 +3685 3.08362 +3686 4.24063 +3687 4.56028 +3688 3.24133 +3689 3.86111 +3690 3.54262 +3691 3.88828 +3692 3.57212 +3693 4.16839 +3694 3.96703 +3695 3.83513 +3696 3.6629 +3697 4.10505 +3698 3.47386 +3699 4.11063 +3700 3.45465 +3701 3.42524 +3702 3.59094 +3703 4.09246 +3704 4.06452 +3705 3.67862 +3706 4.21554 +3707 3.61917 +3708 3.90162 +3709 3.6249 +3710 3.96168 +3711 3.63345 +3712 3.62555 +3713 3.4445 +3714 3.71754 +3715 3.22339 +3716 4.95381 +3717 3.94404 +3718 4.23413 +3719 3.46272 +3720 3.7585 +3721 3.48693 +3722 4.84133 +3723 3.97557 +3724 3.60531 +3725 3.1481 +3726 3.82261 +3727 3.52944 +3728 4.11276 +3729 4.0639 +3730 4.17781 +3731 3.41804 +3732 3.6143 +3733 3.75758 +3734 5.21079 +3735 4.49289 +3736 4.42217 +3737 4.18835 +3738 4.23358 +3739 3.58892 +3740 3.6886 +3741 3.75213 +3742 3.75554 +3743 3.87284 +3744 3.0988 +3745 3.29407 +3746 3.66737 +3747 3.6304 +3748 4.05827 +3749 3.4496 +3750 4.46388 +3751 4.11323 +3752 3.28236 +3753 3.15176 +3754 3.59478 +3755 3.36155 +3756 3.48417 +3757 3.95946 +3758 3.87786 +3759 3.40542 +3760 3.24366 +3761 3.90374 +3762 3.56025 +3763 3.69337 +3764 3.58075 +3765 3.96212 +3766 3.42681 +3767 3.76906 +3768 4.09197 +3769 3.61106 +3770 3.67328 +3771 3.42303 +3772 3.67702 +3773 3.24171 +3774 3.71333 +3775 3.45099 +3776 3.30128 +3777 4.15161 +3778 3.68122 +3779 3.64385 +3780 3.72122 +3781 3.60283 +3782 5.57886 +3783 3.57076 +3784 3.24366 +3785 4.2226 +3786 3.64785 +3787 3.79972 +3788 3.712 +3789 4.1835 +3790 4.08915 +3791 3.85952 +3792 4.33964 +3793 3.22524 +3794 4.55918 +3795 3.49442 +3796 4.3201 +3797 3.45154 +3798 4.04836 +3799 3.60369 +3800 3.35978 +3801 3.24794 +3802 3.3132 +3803 3.89253 +3804 3.61954 +3805 4.29018 +3806 3.60789 +3807 4.37522 +3808 3.60831 +3809 3.54802 +3810 4.23295 +3811 4.17086 +3812 3.30845 +3813 4.38742 +3814 3.42453 +3815 3.46172 +3816 4.73343 +3817 3.26001 +3818 3.41506 +3819 3.96963 +3820 3.67092 +3821 3.74352 +3822 4.24942 +3823 3.37899 +3824 3.809 +3825 4.09695 +3826 3.78441 +3827 3.24423 +3828 4.89458 +3829 3.23794 +3830 3.72345 +3831 3.60661 +3832 3.56709 +3833 3.51577 +3834 3.7454 +3835 3.43685 +3836 4.64197 +3837 4.73111 +3838 3.67973 +3839 3.8668 +3840 3.33799 +3841 3.91847 +3842 3.29502 +3843 3.47266 +3844 4.08457 +3845 3.87383 +3846 4.1487 +3847 3.92831 +3848 3.94986 +3849 3.68914 +3850 3.76724 +3851 3.07506 +3852 3.40207 +3853 3.75813 +3854 3.79936 +3855 4.95161 +3856 3.65487 +3857 3.27066 +3858 3.98489 +3859 4.01838 +3860 3.68401 +3861 4.1215 +3862 3.92479 +3863 3.94299 +3864 4.44714 +3865 3.63023 +3866 3.28664 +3867 3.86028 +3868 3.37013 +3869 4.46192 +3870 3.99608 +3871 3.59551 +3872 3.50995 +3873 3.55957 +3874 3.38016 +3875 3.43885 +3876 3.54348 +3877 3.92038 +3878 4.30344 +3879 4.23955 +3880 4.27415 +3881 3.7013 +3882 3.88128 +3883 3.8312 +3884 3.55458 +3885 4.28201 +3886 3.89287 +3887 5.09204 +3888 4.68809 +3889 5.02676 +3890 4.82895 +3891 4.31267 +3892 4.11786 +3893 4.15434 +3894 3.36047 +3895 3.29171 +3896 3.11695 +3897 5.02661 +3898 3.77123 +3899 3.25932 +3900 4.18236 +3901 4.63139 +3902 4.82003 +3903 4.47887 +3904 3.68453 +3905 4.10608 +3906 3.63323 +3907 3.39015 +3908 4.98641 +3909 3.2741 +3910 3.41799 +3911 4.19338 +3912 4.38574 +3913 4.2499 +3914 3.2937 +3915 3.26125 +3916 3.91445 +3917 3.59678 +3918 4.24799 +3919 4.32949 +3920 4.02276 +3921 3.94079 +3922 4.02421 +3923 3.68127 +3924 3.31413 +3925 3.09676 +3926 3.64548 +3927 4.11589 +3928 4.5971 +3929 3.05989 +3930 3.72475 +3931 4.11042 +3932 3.71697 +3933 3.99719 +3934 3.31931 +3935 4.51935 +3936 3.40134 +3937 3.95918 +3938 4.61859 +3939 4.59931 +3940 4.33463 +3941 4.09449 +3942 3.65357 +3943 3.51423 +3944 3.54711 +3945 3.99805 +3946 3.72522 +3947 4.89055 +3948 4.12583 +3949 5.30859 +3950 3.53516 +3951 4.47405 +3952 4.15405 +3953 3.86907 +3954 4.30369 +3955 3.94791 +3956 3.71013 +3957 3.05354 +3958 3.32428 +3959 4.11438 +3960 4.44837 +3961 4.43462 +3962 4.21013 +3963 3.53948 +3964 4.2965 +3965 4.00242 +3966 4.03916 +3967 3.97214 +3968 3.74065 +3969 3.87703 +3970 3.54281 +3971 3.9133 +3972 3.5137 +3973 3.9104 +3974 3.44992 +3975 3.23879 +3976 3.19251 +3977 3.41677 +3978 3.42032 +3979 3.5548 +3980 3.52236 +3981 3.40318 +3982 4.29183 +3983 4.135 +3984 3.64349 +3985 3.80216 +3986 4.25235 +3987 4.15957 +3988 3.75539 +3989 3.38853 +3990 3.61924 +3991 3.7251 +3992 3.42092 +3993 3.41184 +3994 3.35 +3995 3.99763 +3996 3.59355 +3997 3.70442 +3998 3.81661 +3999 3.40058 +4000 3.30287 +4001 3.93061 +4002 3.8582 +4003 3.14789 +4004 3.92582 +4005 4.17343 +4006 3.71428 +4007 3.76569 +4008 3.54036 +4009 3.62938 +4010 3.49417 +4011 4.78195 +4012 3.56748 +4013 4.88248 +4014 3.86927 +4015 3.49405 +4016 3.3797 +4017 4.91782 +4018 3.44724 +4019 3.91329 +4020 3.76634 +4021 3.85909 +4022 3.33778 +4023 3.53385 +4024 4.22367 +4025 3.42107 +4026 3.54189 +4027 3.85963 +4028 3.44132 +4029 4.84393 +4030 4.00641 +4031 3.9307 +4032 4.18789 +4033 4.78849 +4034 3.86979 +4035 3.20936 +4036 3.22253 +4037 3.41869 +4038 3.94288 +4039 3.2881 +4040 3.79357 +4041 3.42063 +4042 3.41762 +4043 4.02656 +4044 3.33887 +4045 3.62673 +4046 3.40751 +4047 4.3242 +4048 3.523 +4049 3.31845 +4050 3.54179 +4051 3.65548 +4052 3.95458 +4053 3.7853 +4054 3.78458 +4055 3.59395 +4056 3.70225 +4057 3.91772 +4058 5.3204 +4059 5.33844 +4060 3.63762 +4061 4.50883 +4062 3.3114 +4063 3.2602 +4064 3.33097 +4065 3.16329 +4066 3.36949 +4067 3.56154 +4068 3.52783 +4069 3.58044 +4070 3.49955 +4071 3.83123 +4072 3.98985 +4073 3.14069 +4074 3.23757 +4075 3.13153 +4076 3.21883 +4077 3.62124 +4078 4.43101 +4079 4.84452 +4080 3.59493 +4081 4.59291 +4082 3.98824 +4083 3.54207 +4084 3.715 +4085 3.56952 +4086 3.81876 +4087 3.41572 +4088 5.04971 +4089 3.29619 +4090 4.42237 +4091 4.78793 +4092 3.53949 +4093 3.25816 +4094 4.22332 +4095 3.86436 +4096 3.63175 +4097 4.32202 +4098 4.16341 +4099 4.61879 +4100 4.15549 +4101 3.51878 +4102 3.71766 +4103 3.23984 +4104 3.63068 +4105 3.69196 +4106 3.52915 +4107 3.83077 +4108 3.60347 +4109 4.06684 +4110 3.40499 +4111 3.94948 +4112 4.00725 +4113 4.4975 +4114 3.98229 +4115 3.914 +4116 3.67933 +4117 3.67617 +4118 3.76187 +4119 3.90256 +4120 4.10979 +4121 3.31241 +4122 3.46954 +4123 3.83051 +4124 3.39909 +4125 3.81689 +4126 3.27879 +4127 3.2761 +4128 4.30793 +4129 3.39005 +4130 3.08637 +4131 4.13032 +4132 3.79377 +4133 3.71558 +4134 4.0941 +4135 4.01405 +4136 4.66155 +4137 4.05552 +4138 3.96714 +4139 3.39986 +4140 3.59341 +4141 4.15324 +4142 3.65469 +4143 3.74129 +4144 3.79443 +4145 4.44137 +4146 3.4407 +4147 3.72117 +4148 4.47308 +4149 4.30234 +4150 4.05636 +4151 4.63248 +4152 3.49224 +4153 4.12772 +4154 3.36267 +4155 3.89603 +4156 4.03961 +4157 3.56175 +4158 3.61085 +4159 3.01844 +4160 3.80829 +4161 3.41269 +4162 3.41652 +4163 4.11922 +4164 4.48497 +4165 4.06313 +4166 4.04766 +4167 3.73269 +4168 3.79679 +4169 3.58962 +4170 3.62873 +4171 3.79345 +4172 3.88665 +4173 3.37727 +4174 3.48009 +4175 3.23942 +4176 3.87493 +4177 4.13996 +4178 4.20444 +4179 4.23511 +4180 3.36956 +4181 3.9162 +4182 4.32027 +4183 4.55062 +4184 3.94555 +4185 3.67205 +4186 4.4081 +4187 3.38649 +4188 3.65991 +4189 3.1358 +4190 4.17313 +4191 3.89967 +4192 3.84229 +4193 3.92463 +4194 3.89872 +4195 3.61298 +4196 3.08609 +4197 4.05305 +4198 3.47836 +4199 4.10914 +4200 4.57988 +4201 4.08941 +4202 3.31696 +4203 3.1416 +4204 3.20678 +4205 3.63471 +4206 3.37315 +4207 3.35149 +4208 3.19438 +4209 4.53286 +4210 4.81435 +4211 3.5604 +4212 3.86748 +4213 3.64147 +4214 3.35529 +4215 3.8418 +4216 3.6835 +4217 4.38861 +4218 3.91614 +4219 3.54453 +4220 4.59552 +4221 3.33315 +4222 3.88335 +4223 4.4853 +4224 4.48583 +4225 4.0831 +4226 4.79972 +4227 3.97051 +4228 3.77243 +4229 3.52684 +4230 3.52494 +4231 3.19777 +4232 4.0867 +4233 4.16431 +4234 4.30842 +4235 3.4367 +4236 4.31399 +4237 4.167 +4238 4.10767 +4239 4.30931 +4240 3.80637 +4241 3.96822 +4242 3.84569 +4243 3.08439 +4244 3.7253 +4245 5.7814 +4246 4.56976 +4247 4.35503 +4248 4.17698 +4249 4.59693 +4250 3.86324 +4251 3.62397 +4252 3.98415 +4253 3.83677 +4254 3.6232 +4255 4.41748 +4256 3.88447 +4257 3.60248 +4258 3.17403 +4259 3.50227 +4260 3.98967 +4261 3.36566 +4262 3.98235 +4263 4.32815 +4264 5.33137 +4265 3.93331 +4266 3.88466 +4267 3.08578 +4268 3.78183 +4269 3.61842 +4270 5.19546 +4271 3.3654 +4272 3.87827 +4273 4.22665 +4274 3.48428 +4275 3.99733 +4276 3.42212 +4277 3.17928 +4278 3.52071 +4279 3.62346 +4280 3.75807 +4281 3.39185 +4282 3.66936 +4283 4.0516 +4284 4.08736 +4285 3.70203 +4286 3.24414 +4287 3.63872 +4288 3.69202 +4289 4.23276 +4290 3.85971 +4291 3.75863 +4292 3.64359 +4293 3.36546 +4294 3.76397 +4295 3.99266 +4296 3.53777 +4297 3.14989 +4298 3.66322 +4299 3.58336 +4300 3.24315 +4301 3.47802 +4302 3.49608 +4303 3.94124 +4304 3.44437 +4305 3.60235 +4306 3.39755 +4307 3.58051 +4308 3.77016 +4309 4.10929 +4310 4.7941 +4311 3.82067 +4312 3.98309 +4313 3.94836 +4314 3.74863 +4315 3.22798 +4316 3.48283 +4317 3.87977 +4318 3.56648 +4319 3.84627 +4320 3.45955 +4321 3.87808 +4322 4.14352 +4323 4.18053 +4324 4.46293 +4325 4.19172 +4326 3.71357 +4327 3.14912 +4328 3.27569 +4329 3.6863 +4330 3.27615 +4331 3.06806 +4332 4.14035 +4333 3.18642 +4334 3.08384 +4335 3.36767 +4336 3.30444 +4337 3.92584 +4338 3.8495 +4339 4.90542 +4340 4.21146 +4341 3.78738 +4342 3.36434 +4343 4.73846 +4344 3.92735 +4345 3.58895 +4346 3.61524 +4347 3.33657 +4348 4.74717 +4349 4.94934 +4350 3.58324 +4351 3.16514 +4352 4.4386 +4353 3.38149 +4354 4.34601 +4355 4.40401 +4356 3.50689 +4357 3.49854 +4358 3.3372 +4359 3.59603 +4360 3.53214 +4361 3.77286 +4362 3.53146 +4363 3.17208 +4364 3.18154 +4365 3.56715 +4366 3.37535 +4367 3.56412 +4368 3.59354 +4369 3.68029 +4370 4.11747 +4371 3.51246 +4372 3.93548 +4373 4.35654 +4374 3.69217 +4375 3.35034 +4376 4.15408 +4377 3.57832 +4378 3.62183 +4379 3.72969 +4380 3.56865 +4381 3.45874 +4382 3.57169 +4383 3.4342 +4384 3.82744 +4385 4.58204 +4386 4.17122 +4387 3.64474 +4388 3.66601 +4389 4.09186 +4390 3.54924 +4391 3.58523 +4392 4.47249 +4393 3.51654 +4394 3.97593 +4395 3.22215 +4396 3.22624 +4397 3.97058 +4398 4.25398 +4399 3.21965 +4400 3.15931 +4401 3.26821 +4402 3.56069 +4403 3.76076 +4404 3.20634 +4405 3.58292 +4406 3.85179 +4407 3.80121 +4408 3.70229 +4409 3.35788 +4410 3.75395 +4411 3.82198 +4412 3.14521 +4413 3.60613 +4414 4.18258 +4415 3.15481 +4416 4.11634 +4417 3.88238 +4418 3.15838 +4419 4.29423 +4420 3.57317 +4421 3.33521 +4422 3.65634 +4423 4.29507 +4424 4.76063 +4425 3.45432 +4426 3.25852 +4427 4.0738 +4428 3.66672 +4429 4.02369 +4430 3.38436 +4431 3.73672 +4432 3.43008 +4433 3.20343 +4434 3.62371 +4435 4.01078 +4436 3.4063 +4437 3.63579 +4438 3.47975 +4439 3.29037 +4440 3.90517 +4441 3.97575 +4442 4.04184 +4443 3.68251 +4444 3.45118 +4445 3.7816 +4446 4.71818 +4447 4.01107 +4448 4.97843 +4449 4.26835 +4450 3.62281 +4451 4.29498 +4452 3.53348 +4453 3.78701 +4454 4.15271 +4455 3.14934 +4456 3.61215 +4457 3.86175 +4458 3.63967 +4459 3.76297 +4460 3.39022 +4461 3.27921 +4462 3.41619 +4463 4.38852 +4464 3.74013 +4465 3.86834 +4466 3.90268 +4467 4.21224 +4468 3.34538 +4469 3.6021 +4470 4.78157 +4471 3.61539 +4472 3.49683 +4473 3.12998 +4474 3.68489 +4475 3.83286 +4476 3.77003 +4477 3.18075 +4478 3.61584 +4479 4.33516 +4480 4.30964 +4481 4.56924 +4482 3.69855 +4483 4.04614 +4484 3.73473 +4485 3.25184 +4486 3.79424 +4487 3.53836 +4488 4.0873 +4489 3.96487 +4490 4.1228 +4491 3.1296 +4492 4.63309 +4493 3.94048 +4494 3.59712 +4495 3.62114 +4496 4.18019 +4497 3.57557 +4498 3.51181 +4499 4.29554 +4500 4.18847 +4501 4.22064 +4502 3.70092 +4503 8.05436 +4504 3.11186 +4505 3.91421 +4506 3.90325 +4507 3.74818 +4508 3.54558 +4509 4.0994 +4510 3.50387 +4511 4.00159 +4512 3.14582 +4513 3.08902 +4514 4.50707 +4515 3.66321 +4516 3.9203 +4517 3.23204 +4518 3.26638 +4519 5.0364 +4520 5.76593 +4521 5.24025 +4522 3.42098 +4523 3.79761 +4524 4.5474 +4525 4.1055 +4526 3.42586 +4527 3.38212 +4528 4.09538 +4529 3.75953 +4530 4.9427 +4531 4.59038 +4532 3.85916 +4533 3.56288 +4534 3.70797 +4535 3.83834 +4536 3.53414 +4537 4.4844 +4538 3.82433 +4539 3.39247 +4540 3.624 +4541 4.28282 +4542 3.23469 +4543 4.10776 +4544 3.70451 +4545 3.40118 +4546 3.8767 +4547 3.60359 +4548 4.49027 +4549 3.41138 +4550 4.05861 +4551 3.2031 +4552 3.65321 +4553 3.66635 +4554 3.77059 +4555 4.53306 +4556 4.61279 +4557 4.04092 +4558 4.11781 +4559 4.27974 +4560 3.93379 +4561 3.64958 +4562 3.69721 +4563 3.36031 +4564 4.08805 +4565 3.59676 +4566 3.80895 +4567 3.79181 +4568 3.45366 +4569 3.77399 +4570 3.55755 +4571 3.39118 +4572 3.6918 +4573 3.80442 +4574 3.72678 +4575 3.28235 +4576 3.02697 +4577 3.65222 +4578 3.68555 +4579 4.37576 +4580 3.38053 +4581 3.26197 +4582 3.57318 +4583 3.50662 +4584 3.5896 +4585 4.39343 +4586 3.79527 +4587 3.5091 +4588 3.9721 +4589 3.99265 +4590 3.94262 +4591 3.90359 +4592 3.60325 +4593 3.67834 +4594 3.3995 +4595 3.60217 +4596 3.81821 +4597 3.65528 +4598 3.93911 +4599 4.73062 +4600 3.35701 +4601 3.29459 +4602 3.18703 +4603 3.53832 +4604 3.73946 +4605 3.25258 +4606 3.47978 +4607 3.42125 +4608 3.14364 +4609 3.9094 +4610 3.35379 +4611 4.16954 +4612 4.73031 +4613 3.5729 +4614 3.80897 +4615 3.0505 +4616 3.98051 +4617 3.59188 +4618 3.41919 +4619 3.44304 +4620 3.41385 +4621 3.83823 +4622 3.34379 +4623 3.98051 +4624 3.87239 +4625 3.73956 +4626 4.6496 +4627 4.46237 +4628 3.05249 +4629 3.38058 +4630 5.00224 +4631 4.1086 +4632 4.048 +4633 3.41768 +4634 4.76578 +4635 4.18524 +4636 3.6192 +4637 3.35501 +4638 4.57376 +4639 4.13041 +4640 4.54122 +4641 3.97994 +4642 3.15362 +4643 4.12584 +4644 3.16968 +4645 4.4929 +4646 3.66737 +4647 4.22244 +4648 3.16302 +4649 3.52751 +4650 4.21849 +4651 3.21777 +4652 4.19354 +4653 3.33793 +4654 3.25813 +4655 3.66772 +4656 3.37897 +4657 3.62985 +4658 4.08814 +4659 4.27122 +4660 4.5104 +4661 3.76581 +4662 3.84849 +4663 4.12241 +4664 3.50777 +4665 4.09886 +4666 4.17141 +4667 3.53244 +4668 3.46785 +4669 3.36243 +4670 3.90284 +4671 3.80383 +4672 3.64469 +4673 4.53518 +4674 4.00466 +4675 3.35991 +4676 3.41841 +4677 4.76944 +4678 3.74292 +4679 3.81438 +4680 3.29892 +4681 3.70505 +4682 3.45189 +4683 3.65413 +4684 4.16118 +4685 3.28105 +4686 3.33325 +4687 3.18212 +4688 3.63674 +4689 3.22894 +4690 3.62944 +4691 3.76445 +4692 4.00666 +4693 4.09046 +4694 3.66902 +4695 3.96563 +4696 3.56634 +4697 3.41132 +4698 3.38978 +4699 3.4176 +4700 4.57004 +4701 4.68074 +4702 4.38119 +4703 3.49727 +4704 4.02233 +4705 3.6744 +4706 4.07355 +4707 3.85776 +4708 4.57 +4709 3.39332 +4710 3.52707 +4711 4.00398 +4712 4.60139 +4713 3.66435 +4714 3.31232 +4715 4.2167 +4716 3.98772 +4717 3.18047 +4718 3.71053 +4719 3.72748 +4720 3.48639 +4721 3.48568 +4722 4.08889 +4723 3.62419 +4724 3.45461 +4725 3.89883 +4726 3.47059 +4727 3.59899 +4728 3.94894 +4729 3.89516 +4730 3.27169 +4731 3.50865 +4732 3.42012 +4733 3.07561 +4734 3.31703 +4735 3.34991 +4736 4.51724 +4737 3.84161 +4738 3.88706 +4739 3.45193 +4740 3.78987 +4741 4.13816 +4742 3.33939 +4743 4.01759 +4744 3.99254 +4745 3.68672 +4746 3.8681 +4747 3.62915 +4748 4.11406 +4749 4.77553 +4750 4.19616 +4751 3.2585 +4752 3.95993 +4753 3.081 +4754 4.83558 +4755 3.58863 +4756 3.28321 +4757 3.63691 +4758 3.93483 +4759 3.97515 +4760 4.55667 +4761 3.95615 +4762 4.37407 +4763 4.26576 +4764 3.82 +4765 3.53744 +4766 4.60252 +4767 3.90842 +4768 3.84034 +4769 3.97144 +4770 3.61633 +4771 3.5049 +4772 4.92469 +4773 4.32886 +4774 3.50428 +4775 4.71211 +4776 3.41512 +4777 3.56436 +4778 4.44439 +4779 3.54944 +4780 3.65329 +4781 5.07707 +4782 4.42221 +4783 3.57277 +4784 3.49718 +4785 4.40342 +4786 3.41116 +4787 3.76571 +4788 3.58837 +4789 3.79945 +4790 3.84456 +4791 3.77791 +4792 3.61657 +4793 3.54954 +4794 3.69959 +4795 4.11438 +4796 3.86664 +4797 3.78484 +4798 3.74864 +4799 4.07278 +4800 3.24234 +4801 3.26672 +4802 4.43751 +4803 3.57586 +4804 3.83897 +4805 3.59044 +4806 3.41206 +4807 4.24757 +4808 3.39105 +4809 4.88784 +4810 6.54031 +4811 4.21957 +4812 3.33644 +4813 3.37384 +4814 4.31112 +4815 3.92014 +4816 4.9481 +4817 3.96512 +4818 3.24898 +4819 3.3135 +4820 4.011 +4821 3.25136 +4822 3.58733 +4823 4.07294 +4824 3.26464 +4825 4.14044 +4826 3.54671 +4827 3.76235 +4828 3.52436 +4829 3.63804 +4830 3.88595 +4831 3.23038 +4832 4.05253 +4833 4.19294 +4834 4.01269 +4835 3.65077 +4836 3.11556 +4837 3.34504 +4838 3.3397 +4839 3.17157 +4840 4.84892 +4841 4.14144 +4842 4.01147 +4843 3.04049 +4844 3.5709 +4845 3.26272 +4846 3.79676 +4847 3.48473 +4848 3.43869 +4849 3.90804 +4850 6.35038 +4851 4.67941 +4852 4.52717 +4853 3.77489 +4854 3.62737 +4855 4.56453 +4856 3.54244 +4857 3.42941 +4858 3.75937 +4859 3.60774 +4860 3.8236 +4861 3.43516 +4862 5.31594 +4863 4.96728 +4864 3.58922 +4865 4.17355 +4866 4.67787 +4867 4.02808 +4868 4.30381 +4869 3.33719 +4870 3.80249 +4871 4.30967 +4872 6.42646 +4873 3.10981 +4874 4.04671 +4875 4.47694 +4876 3.48512 +4877 3.23397 +4878 3.73501 +4879 3.95385 +4880 3.53131 +4881 3.21282 +4882 3.78444 +4883 3.26671 +4884 4.15246 +4885 3.65032 +4886 3.5518 +4887 3.93929 +4888 3.88749 +4889 3.85698 +4890 3.70618 +4891 3.80304 +4892 3.29508 +4893 3.68097 +4894 4.12057 +4895 3.49663 +4896 4.30141 +4897 3.79428 +4898 4.43012 +4899 4.60268 +4900 4.51574 +4901 3.68919 +4902 3.16097 +4903 3.22018 +4904 3.43421 +4905 3.7202 +4906 3.22643 +4907 3.16682 +4908 3.32557 +4909 3.4916 +4910 3.26794 +4911 4.28186 +4912 4.47512 +4913 3.20059 +4914 3.80976 +4915 4.16432 +4916 4.15592 +4917 3.62427 +4918 3.98145 +4919 3.58032 +4920 3.39483 +4921 3.12704 +4922 6.25094 +4923 3.72477 +4924 3.64527 +4925 3.58029 +4926 3.84141 +4927 3.61857 +4928 4.01023 +4929 3.46917 +4930 3.62597 +4931 3.46122 +4932 4.11005 +4933 3.86549 +4934 3.56844 +4935 4.2969 +4936 3.80858 +4937 4.08246 +4938 3.92718 +4939 4.59358 +4940 4.13183 +4941 4.12967 +4942 5.18085 +4943 5.19833 +4944 3.83188 +4945 3.6257 +4946 4.44426 +4947 3.64627 +4948 5.0597 +4949 3.54968 +4950 3.50851 +4951 3.10795 +4952 3.29632 +4953 4.12305 +4954 4.1226 +4955 3.7893 +4956 4.13117 +4957 4.34698 +4958 3.564 +4959 3.65835 +4960 4.31791 +4961 4.33876 +4962 3.52174 +4963 3.19547 +4964 3.72788 +4965 3.70215 +4966 3.46541 +4967 4.15334 +4968 3.89615 +4969 3.83558 +4970 3.75605 +4971 3.99908 +4972 4.03572 +4973 4.0871 +4974 3.31442 +4975 3.98787 +4976 4.22484 +4977 3.94905 +4978 3.99823 +4979 3.13176 +4980 3.3525 +4981 4.41297 +4982 3.87012 +4983 3.45471 +4984 3.59046 +4985 4.10452 +4986 4.48376 +4987 3.63629 +4988 3.615 +4989 4.04529 +4990 3.98209 +4991 3.79933 +4992 4.00577 +4993 4.20255 +4994 3.47748 +4995 3.71202 +4996 3.58109 +4997 3.7895 +4998 3.55004 +4999 3.9117 +5000 3.53153 +5001 3.32243 +5002 3.64933 +5003 4.38147 +5004 3.68963 +5005 3.39097 +5006 3.38859 +5007 3.27865 +5008 3.28563 +5009 3.36187 +5010 3.8574 +5011 3.9503 +5012 4.35403 +5013 4.13055 +5014 4.7455 +5015 3.42915 +5016 3.78885 +5017 4.03669 +5018 3.6551 +5019 3.46645 +5020 3.08042 +5021 3.50854 +5022 3.52097 +5023 3.49197 +5024 4.02123 +5025 4.68008 +5026 3.32749 +5027 3.39541 +5028 3.29824 +5029 3.3953 +5030 3.89893 +5031 4.029 +5032 3.66191 +5033 3.34739 +5034 3.79153 +5035 3.50513 +5036 4.35377 +5037 3.20485 +5038 3.39819 +5039 3.78782 +5040 3.99976 +5041 3.04327 +5042 3.4282 +5043 3.19297 +5044 3.56734 +5045 3.82068 +5046 5.78844 +5047 5.01445 +5048 4.63419 +5049 5.72143 +5050 3.9117 +5051 4.08737 +5052 3.60312 +5053 3.3914 +5054 4.16378 +5055 3.81245 +5056 4.02479 +5057 3.23382 +5058 3.70338 +5059 4.01211 +5060 4.0742 +5061 3.45379 +5062 3.27846 +5063 3.30758 +5064 4.11243 +5065 4.2945 +5066 3.8648 +5067 4.05115 +5068 3.54066 +5069 3.13696 +5070 3.30488 +5071 3.5335 +5072 3.82739 +5073 3.7344 +5074 3.23389 +5075 3.26856 +5076 3.88171 +5077 3.44622 +5078 4.43184 +5079 4.12972 +5080 3.89212 +5081 4.24365 +5082 3.32912 +5083 4.5456 +5084 3.49884 +5085 3.39699 +5086 3.77723 +5087 3.83694 +5088 3.93728 +5089 3.3876 +5090 3.5217 +5091 3.60229 +5092 4.93087 +5093 3.67748 +5094 3.23381 +5095 4.01311 +5096 3.42994 +5097 3.58484 +5098 3.58149 +5099 4.98383 +5100 4.93039 +5101 5.69658 +5102 3.96494 +5103 4.81281 +5104 5.62438 +5105 3.67831 +5106 3.82215 +5107 3.87133 +5108 3.55429 +5109 3.51505 +5110 3.80375 +5111 4.27492 +5112 3.70593 +5113 3.46585 +5114 3.22476 +5115 4.1936 +5116 4.15824 +5117 4.22363 +5118 3.88571 +5119 4.19955 +5120 3.86247 +5121 3.40728 +5122 3.28182 +5123 3.5096 +5124 3.97893 +5125 4.66175 +5126 4.13095 +5127 3.61049 +5128 3.80167 +5129 3.24173 +5130 3.11864 +5131 3.36172 +5132 3.80768 +5133 4.46728 +5134 4.83629 +5135 5.19894 +5136 4.12332 +5137 4.33845 +5138 4.28438 +5139 3.981 +5140 3.12108 +5141 3.57899 +5142 3.65829 +5143 4.42486 +5144 3.98915 +5145 3.61805 +5146 3.9045 +5147 3.64229 +5148 3.57953 +5149 3.91313 +5150 3.66564 +5151 3.56573 +5152 4.633 +5153 3.9282 +5154 3.43468 +5155 3.40481 +5156 3.29826 +5157 3.5323 +5158 4.0078 +5159 4.46454 +5160 4.30587 +5161 4.0363 +5162 4.44136 +5163 4.93538 +5164 4.25334 +5165 3.98456 +5166 4.91517 +5167 3.77556 +5168 3.63841 +5169 3.80055 +5170 3.67503 +5171 3.40642 +5172 4.16092 +5173 3.31336 +5174 3.24633 +5175 3.65874 +5176 4.49682 +5177 4.02431 +5178 3.65222 +5179 4.57989 +5180 3.54339 +5181 3.60776 +5182 4.57388 +5183 4.34928 +5184 4.18945 +5185 3.49435 +5186 4.75415 +5187 4.57066 +5188 4.28246 +5189 3.79975 +5190 3.94439 +5191 3.51583 +5192 4.19846 +5193 3.86333 +5194 3.63511 +5195 3.58402 +5196 3.21736 +5197 3.89627 +5198 3.88972 +5199 3.45782 +5200 3.87985 +5201 4.42561 +5202 3.53729 +5203 3.63877 +5204 4.65762 +5205 3.47195 +5206 4.39559 +5207 3.61029 +5208 4.43998 +5209 3.99002 +5210 4.14258 +5211 4.07162 +5212 3.27945 +5213 3.75804 +5214 4.68227 +5215 4.20072 +5216 4.09041 +5217 3.55806 +5218 4.63007 +5219 4.46412 +5220 4.47036 +5221 4.20412 +5222 4.04611 +5223 4.36085 +5224 3.3815 +5225 3.75684 +5226 3.28306 +5227 5.16347 +5228 3.40297 +5229 4.21242 +5230 3.72606 +5231 3.24005 +5232 4.48352 +5233 4.11359 +5234 4.11748 +5235 4.17888 +5236 4.31839 +5237 3.2639 +5238 3.19223 +5239 3.60295 +5240 3.62208 +5241 3.97584 +5242 3.35264 +5243 4.03162 +5244 3.90247 +5245 3.80636 +5246 4.52236 +5247 4.01936 +5248 4.30044 +5249 3.65403 +5250 4.00763 +5251 3.75285 +5252 3.47962 +5253 3.89175 +5254 3.91076 +5255 3.87024 +5256 3.99781 +5257 4.36211 +5258 3.92708 +5259 3.19522 +5260 4.10889 +5261 3.59368 +5262 4.08329 +5263 3.4032 +5264 3.59442 +5265 3.69083 +5266 3.14601 +5267 3.9307 +5268 3.19235 +5269 3.7595 +5270 3.79105 +5271 3.56822 +5272 3.4195 +5273 3.37125 +5274 4.16069 +5275 4.75265 +5276 3.40148 +5277 4.198 +5278 4.90926 +5279 3.68747 +5280 3.90035 +5281 3.96067 +5282 3.61814 +5283 4.54125 +5284 3.6189 +5285 3.67869 +5286 3.71511 +5287 3.34493 +5288 3.58246 +5289 3.85225 +5290 3.51796 +5291 3.45538 +5292 3.57052 +5293 4.26314 +5294 4.10646 +5295 3.14045 +5296 3.72024 +5297 5.326 +5298 5.09948 +5299 3.94291 +5300 3.84335 +5301 4.19623 +5302 3.51402 +5303 3.49335 +5304 3.47925 +5305 3.77478 +5306 3.29115 +5307 3.88813 +5308 3.12474 +5309 4.92409 +5310 3.7126 +5311 3.43144 +5312 3.54406 +5313 3.82017 +5314 3.59975 +5315 3.84131 +5316 4.24776 +5317 3.73507 +5318 3.24574 +5319 4.1657 +5320 4.45919 +5321 4.32053 +5322 3.43795 +5323 4.85594 +5324 4.07992 +5325 3.79216 +5326 3.40657 +5327 4.50825 +5328 3.95484 +5329 4.95694 +5330 4.07952 +5331 4.55483 +5332 4.04179 +5333 4.34972 +5334 4.53767 +5335 3.69751 +5336 4.49381 +5337 3.83192 +5338 3.37885 +5339 4.14302 +5340 4.6756 +5341 3.32953 +5342 3.23215 +5343 5.4381 +5344 3.95665 +5345 4.0412 +5346 3.28265 +5347 4.72431 +5348 4.78788 +5349 4.18954 +5350 4.29669 +5351 4.12501 +5352 4.58051 +5353 3.91064 +5354 3.63225 +5355 3.26756 +5356 3.93029 +5357 4.446 +5358 4.35316 +5359 4.20543 +5360 3.56831 +5361 4.47024 +5362 3.27831 +5363 3.48933 +5364 4.69935 +5365 4.27526 +5366 4.4788 +5367 3.17311 +5368 4.67425 +5369 3.30015 +5370 3.13822 +5371 3.20059 +5372 3.82926 +5373 3.87006 +5374 3.52536 +5375 4.29467 +5376 4.36347 +5377 3.41592 +5378 3.87684 +5379 4.14614 +5380 3.86748 +5381 4.9356 +5382 4.46997 +5383 3.99473 +5384 3.21963 +5385 3.84211 +5386 3.62462 +5387 3.7633 +5388 3.66256 +5389 3.6407 +5390 4.13633 +5391 4.2214 +5392 4.03189 +5393 4.2042 +5394 3.49414 +5395 3.85545 +5396 3.83962 +5397 3.46853 +5398 3.1257 +5399 3.98335 +5400 4.44258 +5401 4.44122 +5402 3.35618 +5403 3.59499 +5404 4.31865 +5405 3.79638 +5406 3.36015 +5407 3.75558 +5408 3.74679 +5409 3.75129 +5410 5.28973 +5411 4.18227 +5412 3.49121 +5413 3.50638 +5414 4.84114 +5415 3.87069 +5416 4.20874 +5417 3.93537 +5418 3.92825 +5419 3.84499 +5420 3.69495 +5421 5.07134 +5422 3.77064 +5423 3.85032 +5424 3.65852 +5425 4.00501 +5426 3.84641 +5427 4.69266 +5428 3.78727 +5429 3.82478 +5430 3.70731 +5431 4.09575 +5432 4.0279 +5433 4.78815 +5434 4.22963 +5435 4.06173 +5436 5.1427 +5437 3.66409 +5438 5.03759 +5439 4.65513 +5440 5.1108 +5441 3.80222 +5442 3.45819 +5443 3.45242 +5444 3.845 +5445 3.45888 +5446 3.22982 +5447 4.14864 +5448 3.57888 +5449 4.32601 +5450 3.84047 +5451 3.18942 +5452 4.08145 +5453 3.99778 +5454 4.0883 +5455 3.83267 +5456 3.73929 +5457 4.67078 +5458 3.78756 +5459 4.40818 +5460 4.50687 +5461 4.11538 +5462 3.68645 +5463 3.88485 +5464 3.74015 +5465 3.89874 +5466 3.53884 +5467 5.50568 +5468 3.44599 +5469 3.62966 +5470 3.44268 +5471 4.37506 +5472 3.89691 +5473 3.71012 +5474 3.85936 +5475 3.22053 +5476 3.66557 +5477 3.37592 +5478 4.15796 +5479 4.09459 +5480 4.08809 +5481 3.79074 +5482 3.46844 +5483 3.9816 +5484 3.78016 +5485 3.94205 +5486 3.66567 +5487 3.7728 +5488 3.97738 +5489 3.82879 +5490 4.18076 +5491 4.4186 +5492 3.5298 +5493 4.12086 +5494 3.80256 +5495 5.716 +5496 6.03173 +5497 3.74606 +5498 4.10332 +5499 3.89712 +5500 3.29528 +5501 3.93436 +5502 3.88779 +5503 3.62063 +5504 3.77669 +5505 5.15387 +5506 4.01373 +5507 4.75285 +5508 4.36957 +5509 3.50791 +5510 3.4359 +5511 4.07967 +5512 3.64575 +5513 3.69327 +5514 3.68132 +5515 3.29312 +5516 4.05986 +5517 4.5134 +5518 3.35233 +5519 4.56786 +5520 4.3655 +5521 3.85987 +5522 3.64277 +5523 3.83056 +5524 3.96927 +5525 3.49202 +5526 4.21652 +5527 5.24431 +5528 5.34255 +5529 4.88024 +5530 3.86425 +5531 3.74368 +5532 3.73965 +5533 3.84408 +5534 4.09673 +5535 3.92297 +5536 4.00262 +5537 4.34616 +5538 4.78911 +5539 4.18249 +5540 4.09596 +5541 4.086 +5542 3.18268 +5543 3.42079 +5544 4.64711 +5545 3.92701 +5546 4.55885 +5547 3.26596 +5548 3.20173 +5549 3.57897 +5550 3.3012 +5551 3.52781 +5552 4.74674 +5553 4.27945 +5554 4.42326 +5555 3.91608 +5556 3.71725 +5557 3.49758 +5558 4.6028 +5559 5.22827 +5560 3.95194 +5561 4.60425 +5562 3.95096 +5563 3.29805 +5564 4.50508 +5565 4.30507 +5566 3.6662 +5567 4.29095 +5568 3.39031 +5569 4.10117 +5570 4.36421 +5571 3.75818 +5572 3.13095 +5573 3.88888 +5574 3.82693 +5575 4.63215 +5576 3.41351 +5577 4.17127 +5578 4.65198 +5579 4.69254 +5580 3.9292 +5581 3.33086 +5582 3.31462 +5583 4.76009 +5584 3.5093 +5585 4.7748 +5586 3.48671 +5587 3.45377 +5588 3.70492 +5589 4.35567 +5590 3.97503 +5591 3.64808 +5592 3.29309 +5593 3.65899 +5594 3.25797 +5595 4.28066 +5596 4.48524 +5597 3.37456 +5598 3.81883 +5599 3.89844 +5600 3.79962 +5601 3.73228 +5602 4.61032 +5603 4.83115 +5604 3.45365 +5605 3.37133 +5606 3.13065 +5607 3.8822 +5608 3.49511 +5609 3.26751 +5610 3.08264 +5611 4.39375 +5612 3.87878 +5613 4.06894 +5614 3.50118 +5615 3.98294 +5616 3.58651 +5617 5.02461 +5618 3.93281 +5619 3.49129 +5620 3.32239 +5621 3.77448 +5622 4.03122 +5623 3.54756 +5624 3.99333 +5625 3.8311 +5626 4.33648 +5627 3.7007 +5628 4.10393 +5629 4.3845 +5630 3.78986 +5631 3.8205 +5632 4.83664 +5633 4.71818 +5634 3.86918 +5635 3.58505 +5636 4.07868 +5637 3.44563 +5638 3.57344 +5639 3.76424 +5640 3.47507 +5641 3.85905 +5642 3.56826 +5643 4.42392 +5644 3.60533 +5645 4.18609 +5646 4.80137 +5647 4.15282 +5648 3.48274 +5649 3.1089 +5650 3.32734 +5651 4.82766 +5652 4.45339 +5653 3.60311 +5654 3.37986 +5655 4.30194 +5656 3.60429 +5657 4.05818 +5658 4.14763 +5659 3.69033 +5660 3.58381 +5661 4.32492 +5662 3.25354 +5663 4.7756 +5664 4.02592 +5665 5.19484 +5666 3.6747 +5667 4.8281 +5668 4.73154 +5669 4.47041 +5670 4.23934 +5671 3.1568 +5672 4.73111 +5673 4.48254 +5674 3.95778 +5675 3.74355 +5676 3.69592 +5677 4.30604 +5678 5.11609 +5679 4.08145 +5680 3.8548 +5681 3.5317 +5682 4.02932 +5683 4.36812 +5684 4.08596 +5685 4.95401 +5686 4.86432 +5687 4.85598 +5688 3.63402 +5689 3.27346 +5690 3.70146 +5691 3.54 +5692 3.53927 +5693 3.12131 +5694 3.12008 +5695 4.1681 +5696 4.08282 +5697 3.56332 +5698 5.56201 +5699 3.4913 +5700 3.99928 +5701 4.3377 +5702 3.28886 +5703 3.3514 +5704 3.8048 +5705 3.46919 +5706 3.98938 +5707 3.97563 +5708 3.77317 +5709 3.91209 +5710 4.74471 +5711 4.29757 +5712 3.22332 +5713 4.07826 +5714 4.41595 +5715 3.59385 +5716 3.19561 +5717 4.92287 +5718 4.33829 +5719 3.42979 +5720 4.35765 +5721 4.12509 +5722 3.24485 +5723 3.94032 +5724 3.55005 +5725 3.94578 +5726 3.60936 +5727 3.14608 +5728 3.76196 +5729 3.43343 +5730 4.54933 +5731 4.1203 +5732 3.979 +5733 3.51533 +5734 4.05883 +5735 3.59035 +5736 4.40893 +5737 3.60804 +5738 4.18811 +5739 3.26759 +5740 4.23734 +5741 4.04534 +5742 3.95945 +5743 3.27971 +5744 4.77169 +5745 3.76527 +5746 3.61273 +5747 3.61578 +5748 4.08763 +5749 4.05906 +5750 3.67169 +5751 3.5471 +5752 3.75867 +5753 3.50577 +5754 4.77715 +5755 4.61455 +5756 4.90627 +5757 3.86075 +5758 3.74126 +5759 3.54117 +5760 3.4374 +5761 3.72659 +5762 3.4582 +5763 3.51239 +5764 3.22625 +5765 4.16944 +5766 3.47678 +5767 3.99665 +5768 4.21882 +5769 3.56129 +5770 4.29681 +5771 3.92203 +5772 3.77642 +5773 3.73075 +5774 3.48102 +5775 4.75637 +5776 3.48089 +5777 4.19595 +5778 5.04286 +5779 4.09907 +5780 4.28817 +5781 4.27903 +5782 4.65167 +5783 4.33365 +5784 3.79806 +5785 3.40444 +5786 5.32355 +5787 4.06989 +5788 4.01681 +5789 3.53433 +5790 3.76172 +5791 3.29056 +5792 3.51572 +5793 3.3656 +5794 3.88913 +5795 3.84159 +5796 3.93368 +5797 4.4832 +5798 3.47455 +5799 3.69836 +5800 3.51784 +5801 4.47274 +5802 3.71731 +5803 3.98359 +5804 3.43977 +5805 3.87371 +5806 3.42047 +5807 6.77218 +5808 4.35396 +5809 3.95087 +5810 4.80871 +5811 4.23099 +5812 4.48881 +5813 3.36371 +5814 3.21627 +5815 3.77553 +5816 3.79351 +5817 3.81031 +5818 6.27496 +5819 4.84662 +5820 3.45066 +5821 4.00031 +5822 4.51808 +5823 5.41024 +5824 5.5822 +5825 4.10041 +5826 4.08664 +5827 3.96147 +5828 4.95896 +5829 4.84889 +5830 4.10829 +5831 5.92973 +5832 4.13342 +5833 4.0698 +5834 4.13378 +5835 3.49809 +5836 4.03342 +5837 4.54504 +5838 4.88663 +5839 4.97945 +5840 3.18068 +5841 4.27552 +5842 4.59821 +5843 4.23226 +5844 3.94809 +5845 4.29719 +5846 3.89632 +5847 3.20522 +5848 4.78385 +5849 3.80202 +5850 5.03124 +5851 3.70098 +5852 3.7411 +5853 3.66815 +5854 3.87387 +5855 3.79457 +5856 3.86094 +5857 3.7319 +5858 3.565 +5859 4.38714 +5860 4.17777 +5861 4.50634 +5862 3.61474 +5863 4.49783 +5864 5.41595 +5865 4.72292 +5866 4.22161 +5867 4.52656 +5868 3.23889 +5869 3.79322 +5870 4.35052 +5871 4.63931 +5872 4.195 +5873 3.23052 +5874 4.63182 +5875 3.62707 +5876 3.75476 +5877 3.74465 +5878 3.72796 +5879 3.85826 +5880 4.06208 +5881 3.26815 +5882 3.66949 +5883 4.82682 +5884 4.65098 +5885 3.98715 +5886 3.51818 +5887 4.06529 +5888 3.42721 +5889 3.97953 +5890 3.15823 +5891 3.84585 +5892 4.54106 +5893 3.5195 +5894 4.65265 +5895 4.1308 +5896 4.60421 +5897 3.02845 +5898 3.77837 +5899 3.6746 +5900 3.57823 +5901 3.43771 +5902 3.78781 +5903 3.38068 +5904 3.41212 +5905 3.88402 +5906 4.6164 +5907 4.32528 +5908 4.40519 +5909 4.18094 +5910 4.46131 +5911 3.42945 +5912 4.11137 +5913 4.14496 +5914 3.65871 +5915 3.2698 +5916 4.53821 +5917 3.76539 +5918 5.05689 +5919 4.82701 +5920 4.94046 +5921 3.85426 +5922 3.60224 +5923 4.75658 +5924 4.22504 +5925 3.71874 +5926 3.54029 +5927 4.7038 +5928 5.88456 +5929 3.49329 +5930 4.52844 +5931 3.58557 +5932 4.20359 +5933 3.10038 +5934 4.08801 +5935 4.34415 +5936 3.23533 +5937 4.06672 +5938 4.16358 +5939 4.48178 +5940 4.70966 +5941 5.19056 +5942 3.50606 +5943 4.89763 +5944 3.96384 +5945 4.60781 +5946 4.42069 +5947 3.93373 +5948 3.91336 +5949 5.97458 +5950 4.35788 +5951 4.7466 +5952 3.72897 +5953 4.54607 +5954 3.25498 +5955 3.79703 +5956 4.51292 +5957 4.2694 +5958 3.93913 +5959 4.48158 +5960 4.28462 +5961 4.69186 +5962 4.61994 +5963 3.98477 +5964 4.23202 +5965 3.61872 +5966 3.49783 +5967 4.79436 +5968 3.91845 +5969 4.56754 +5970 4.14592 +5971 4.47032 +5972 4.30962 +5973 4.45727 +5974 3.62776 +5975 3.9839 +5976 4.08593 +5977 4.38435 +5978 3.81287 +5979 4.19134 +5980 4.45706 +5981 3.83157 +5982 3.90705 +5983 4.38126 +5984 4.73277 +5985 5.02175 +5986 4.39215 +5987 4.15798 +5988 4.44613 +5989 3.02954 +5990 4.24572 +5991 3.09585 +5992 3.5836 +5993 4.08859 +5994 3.69521 +5995 3.38449 +5996 4.44221 +5997 3.92912 +5998 3.5329 +5999 3.81096 +6000 3.40548 +6001 4.68083 +6002 4.62965 +6003 4.03706 +6004 3.69487 +6005 4.05025 +6006 3.93622 +6007 4.03056 +6008 4.81814 +6009 4.85772 +6010 3.73039 +6011 3.91094 +6012 4.44707 +6013 3.96357 +6014 5.06495 +6015 4.40578 +6016 3.31354 +6017 4.31702 +6018 4.64429 +6019 4.6436 +6020 4.63506 +6021 3.71658 +6022 4.41793 +6023 3.95634 +6024 4.52581 +6025 4.65267 +6026 3.44141 +6027 3.68849 +6028 4.48479 +6029 4.35599 +6030 3.51907 +6031 4.03476 +6032 3.6926 +6033 3.68423 +6034 3.83196 +6035 3.61047 +6036 3.73691 +6037 3.66066 +6038 3.17148 +6039 3.26925 +6040 3.47219 +6041 4.86081 +6042 3.7378 +6043 3.48177 +6044 3.94671 +6045 3.24161 +6046 3.38904 +6047 3.46363 +6048 3.97918 +6049 3.54243 +6050 3.79954 +6051 3.48803 +6052 3.66132 +6053 3.65192 +6054 3.73965 +6055 3.63378 +6056 3.38947 +6057 4.11105 +6058 3.51762 +6059 3.26276 +6060 3.67998 +6061 3.89803 +6062 4.1798 +6063 3.47095 +6064 4.5294 +6065 4.33241 +6066 4.35154 +6067 4.2374 +6068 4.14359 +6069 3.51806 +6070 4.44073 +6071 4.25979 +6072 3.36207 +6073 4.49129 +6074 4.76074 +6075 4.16195 +6076 3.87717 +6077 3.91514 +6078 5.03768 +6079 3.49407 +6080 4.68799 +6081 3.87372 +6082 4.69124 +6083 4.44846 +6084 4.48801 +6085 3.96527 +6086 3.7871 +6087 3.32684 +6088 4.13126 +6089 4.07279 +6090 3.26612 +6091 3.64525 +6092 4.5684 +6093 4.06402 +6094 3.69568 +6095 4.32812 +6096 3.81561 +6097 3.1374 +6098 3.99408 +6099 3.96198 +6100 3.85754 +6101 3.82363 +6102 4.63586 +6103 4.81046 +6104 4.45063 +6105 3.65179 +6106 3.579 +6107 4.15989 +6108 3.99075 +6109 3.33123 +6110 3.96151 +6111 5.46684 +6112 3.78423 +6113 4.67743 +6114 4.47523 +6115 4.15178 +6116 3.37628 +6117 4.10664 +6118 4.77193 +6119 3.19309 +6120 3.53359 +6121 4.32553 +6122 3.745 +6123 4.49588 +6124 3.71468 +6125 3.18915 +6126 3.78802 +6127 4.52227 +6128 4.33147 +6129 3.23909 +6130 3.31622 +6131 3.32517 +6132 3.956 +6133 3.74161 +6134 4.90927 +6135 3.75825 +6136 4.2556 +6137 3.71722 +6138 5.63876 +6139 3.13682 +6140 3.9509 +6141 3.7372 +6142 3.62258 +6143 3.73848 +6144 3.4367 +6145 5.08857 +6146 5.41883 +6147 3.31042 +6148 3.20978 +6149 3.78809 +6150 3.03725 +6151 4.54705 +6152 4.38422 +6153 4.79874 +6154 4.0535 +6155 4.71175 +6156 4.57737 +6157 3.43622 +6158 3.37966 +6159 4.14438 +6160 3.68845 +6161 3.75116 +6162 5.16403 +6163 4.24991 +6164 3.2037 +6165 3.27776 +6166 4.29859 +6167 3.9975 +6168 3.74633 +6169 5.28724 +6170 3.46548 +6171 3.63638 +6172 4.08536 +6173 3.54369 +6174 3.21202 +6175 4.12725 +6176 3.63421 +6177 3.87922 +6178 3.04216 +6179 4.22473 +6180 3.46559 +6181 3.89012 +6182 3.66082 +6183 4.04183 +6184 4.20048 +6185 3.10623 +6186 3.46008 +6187 3.72471 +6188 3.54819 +6189 4.23477 +6190 4.12907 +6191 4.37142 +6192 4.25068 +6193 4.55505 +6194 3.304 +6195 3.09791 +6196 4.99447 +6197 3.59783 +6198 3.24989 +6199 3.86813 +6200 3.4582 +6201 4.11163 +6202 3.97322 +6203 4.00701 +6204 3.43626 +6205 4.31402 +6206 4.78977 +6207 4.62774 +6208 4.68513 +6209 4.06864 +6210 4.47963 +6211 4.19754 +6212 3.52248 +6213 4.73855 +6214 3.96191 +6215 4.77905 +6216 3.94492 +6217 4.51254 +6218 3.90206 +6219 4.77495 +6220 4.36128 +6221 3.91994 +6222 3.48787 +6223 4.04281 +6224 3.32565 +6225 3.47622 +6226 3.67468 +6227 4.33381 +6228 4.21331 +6229 3.69908 +6230 4.42489 +6231 3.26025 +6232 3.33069 +6233 3.6301 +6234 3.6882 +6235 3.85821 +6236 3.70836 +6237 3.55259 +6238 3.24663 +6239 3.63467 +6240 3.85718 +6241 4.65319 +6242 3.71888 +6243 4.632 +6244 4.11709 +6245 4.71221 +6246 3.86411 +6247 4.40362 +6248 4.44394 +6249 4.37472 +6250 4.67911 +6251 4.28395 +6252 5.1642 +6253 3.46917 +6254 4.10761 +6255 3.03799 +6256 3.66818 +6257 3.64881 +6258 3.34028 +6259 3.36639 +6260 3.7457 +6261 3.81375 +6262 3.16933 +6263 4.18368 +6264 4.98777 +6265 3.7839 +6266 4.20669 +6267 3.95467 +6268 4.67584 +6269 3.98684 +6270 4.56348 +6271 3.96806 +6272 3.56186 +6273 4.50365 +6274 4.25665 +6275 3.28378 +6276 5.28353 +6277 3.75219 +6278 3.1825 +6279 4.65621 +6280 4.62171 +6281 4.68628 +6282 5.28119 +6283 3.43571 +6284 4.69915 +6285 4.25719 +6286 4.25 +6287 3.97109 +6288 3.56505 +6289 5.13488 +6290 4.62697 +6291 4.09724 +6292 3.7349 +6293 4.01504 +6294 4.65834 +6295 4.42217 +6296 4.56442 +6297 3.59327 +6298 4.00838 +6299 4.30166 +6300 3.67684 +6301 3.3246 +6302 3.5176 +6303 3.70271 +6304 5.41108 +6305 3.59835 +6306 5.30683 +6307 4.55829 +6308 4.60686 +6309 3.18771 +6310 4.20761 +6311 4.10157 +6312 4.58976 +6313 3.06089 +6314 3.86273 +6315 3.53272 +6316 3.68402 +6317 4.24761 +6318 3.85216 +6319 4.21551 +6320 3.66466 +6321 4.07666 +6322 5.071 +6323 5.275 +6324 6.35266 +6325 3.40416 +6326 3.39656 +6327 3.54905 +6328 4.52492 +6329 5.73495 +6330 3.84151 +6331 4.08317 +6332 3.90066 +6333 3.93562 +6334 4.17853 +6335 4.17925 +6336 3.36053 +6337 3.45853 +6338 3.05784 +6339 3.03213 +6340 4.09593 +6341 3.25927 +6342 3.55125 +6343 3.77971 +6344 3.66846 +6345 4.23318 +6346 3.89864 +6347 4.23877 +6348 4.02667 +6349 3.54781 +6350 3.9586 +6351 4.19306 +6352 4.13471 +6353 4.20275 +6354 3.5883 +6355 3.31689 +6356 4.36304 +6357 3.34198 +6358 4.27368 +6359 3.55351 +6360 3.4047 +6361 3.50623 +6362 3.52579 +6363 3.52217 +6364 3.74488 +6365 3.73649 +6366 4.42247 +6367 3.31603 +6368 4.17026 +6369 4.61958 +6370 3.90547 +6371 4.47949 +6372 4.05411 +6373 4.05078 +$EndElementData diff --git a/src/main.js b/src/main.js index 66966a2..fd07767 100644 --- a/src/main.js +++ b/src/main.js @@ -4,6 +4,7 @@ import { SoftBody, Grabber } from './Softbody.js'; import { SoftBodyGPU, GPUGrabber } from './SoftbodyGPU.js'; import { dragonTetVerts, dragonTetIds, dragonTetEdgeIds, dragonAttachedVerts, dragonAttachedTriIds } from './Dragon.js'; import World from './World.js'; +import { MSHLoader } from './MSHLoader.js'; /** The fundamental set up and animation structures for 3D Visualization */ export default class Main { @@ -47,6 +48,17 @@ export default class Main { // Construct the render world this.world = new World(this); + // Load in a sample fTetWild Mesh + this.mshLoader = new MSHLoader(); + this.mshLoader.load('./src/Test.obj_.msh', (geometry) => { + geometry.computeVertexNormals(); + this.tetMat = new THREE.MeshBasicMaterial( + { color: 0xffffff, wireframe: false, transparent: true, opacity: 0.3, side: THREE.DoubleSide }); + this.tetMesh = new THREE.Mesh(geometry, this.tetMat); + this.tetMesh.scale.set(0.02, 0.02, 0.02); + this.world.scene.add( this.tetMesh ); + }); + // Construct the physics world this.physicsScene = { softBodies: [] }; if (this.physicsParams.cpuSim) { From 8e50a8eb6846123fd58ae9dd8bb627759ad3327b Mon Sep 17 00:00:00 2001 From: Johnathon Selstad Date: Wed, 3 Nov 2021 17:47:20 -0700 Subject: [PATCH 2/4] Get Tetrahedral .msh imports working --- src/MSHLoader.js | 18 +- src/SoftbodyGPU.js | 115 +- src/input.stl_.msh | 11316 +++++++++++++++++++++++++++++++++++++++++++ src/main.js | 41 +- 4 files changed, 11398 insertions(+), 92 deletions(-) create mode 100644 src/input.stl_.msh diff --git a/src/MSHLoader.js b/src/MSHLoader.js index e0fbdf8..a728740 100644 --- a/src/MSHLoader.js +++ b/src/MSHLoader.js @@ -77,6 +77,7 @@ class MSHLoader extends Loader { const geometry = new BufferGeometry(); const indices = []; + const tetindices = []; const vertices = []; let numVertices = 0; @@ -118,10 +119,13 @@ class MSHLoader extends Loader { //indices.push(parseInt(currentLine[0])); //1 4 0 1185 1192 1440 1135 let verts = [parseInt(currentLine[3])-1, parseInt(currentLine[4])-1, parseInt(currentLine[5])-1, parseInt(currentLine[6])-1]; - indices.push(verts[0], verts[1], verts[2]); - indices.push(verts[1], verts[2], verts[3]); - indices.push(verts[0], verts[1], verts[3]); - indices.push(verts[0], verts[2], verts[3]); + indices.push(verts[0], verts[1]); // Edge Ids + indices.push(verts[0], verts[2]); + indices.push(verts[0], verts[3]); + indices.push(verts[1], verts[2]); + indices.push(verts[2], verts[3]); + indices.push(verts[3], verts[1]); + tetindices.push(verts[0], verts[1], verts[2], verts[3]); } else { console.error('Invalid Element line: ' + lines[l]); } @@ -129,8 +133,12 @@ class MSHLoader extends Loader { } - geometry.setIndex( indices ); + geometry.setIndex( indices ); geometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) ); + geometry.setAttribute( 'tetIndices', new Float32BufferAttribute( tetindices, 4 ) ); + geometry.userData.vertices = vertices; + geometry.userData.tetIndices = tetindices; + geometry.userData.index = indices; return geometry; diff --git a/src/SoftbodyGPU.js b/src/SoftbodyGPU.js index c3fc10c..8754dd2 100644 --- a/src/SoftbodyGPU.js +++ b/src/SoftbodyGPU.js @@ -26,20 +26,17 @@ export class SoftBodyGPU { this.invMass = this.gpuCompute.createTexture(); // Inverse Mass Per Particle this.invRestVolumeAndColor = this.gpuCompute.createTexture(); // Inverse Volume and Graph Color Per Element this.elemToParticlesTable = this.gpuCompute.createTexture(); // Maps from elems to the 4 tet vertex positions for the gather step - this.particleToElemVertsTable = [this.gpuCompute.createTexture(), // Maps from vertices back to the elems gbuffer for the scatter step - this.gpuCompute.createTexture(), // There is more than one because a particle may have a bunch of elems sharing it - this.gpuCompute.createTexture(), - this.gpuCompute.createTexture(), - this.gpuCompute.createTexture(), - this.gpuCompute.createTexture(), - this.gpuCompute.createTexture(), - this.gpuCompute.createTexture(), - this.gpuCompute.createTexture()]; this.elems0 = [this.gpuCompute.createTexture(), // Stores the original vertex positions per tet this.gpuCompute.createTexture(), this.gpuCompute.createTexture(), this.gpuCompute.createTexture()]; this.quats0 = this.gpuCompute.createTexture(); + // Maps from vertices back to the elems gbuffer for the scatter step + // There is more than one because a particle may have a bunch of elems sharing it + this.numTables = 11; this.particleToElemVertsTable = []; + for (let table = 0; table < this.numTables; table++) { + this.particleToElemVertsTable.push(this.gpuCompute.createTexture()); + } // Fill in the above textures with the appropriate data this.tetIds = tetIds; @@ -269,11 +266,15 @@ export class SoftBodyGPU { this.gatherElemPass.material.needsUpdate = true; // 5. Gather the particles back from the elements + let unrollLoop = ''; + for (let t = 2; t < this.numTables; t++) { + unrollLoop += '} else if (index == '+t+') { result = texture2D( particleToElemVertsTable['+t+'], uv );\n'; + } this.applyElemPass = this.gpuCompute.addPass(this.pos, [this.elems, this.pos], ` out highp vec4 pc_fragColor; uniform float dt; - uniform sampler2D particleToElemVertsTable[9]; + uniform sampler2D particleToElemVertsTable[`+this.numTables+`]; vec2 uvFromIndex(int index) { return vec2( index % int(resolution.x), @@ -289,21 +290,15 @@ export class SoftBodyGPU { } vec4 particleToElemVertsTableSample(int index, vec2 uv) { vec4 result = texture2D( particleToElemVertsTable[0], uv ); - if (index == 1) { result = texture2D( particleToElemVertsTable[1], uv ); - } else if (index == 2) { result = texture2D( particleToElemVertsTable[2], uv ); - } else if (index == 3) { result = texture2D( particleToElemVertsTable[3], uv ); - } else if (index == 4) { result = texture2D( particleToElemVertsTable[4], uv ); - } else if (index == 5) { result = texture2D( particleToElemVertsTable[5], uv ); - } else if (index == 6) { result = texture2D( particleToElemVertsTable[6], uv ); - } else if (index == 7) { result = texture2D( particleToElemVertsTable[7], uv ); - } else if (index == 8) { result = texture2D( particleToElemVertsTable[8], uv ); } + if (index == 1) { result = texture2D( particleToElemVertsTable[1], uv );\n` + + unrollLoop + `} return result; } void main() { vec2 uv = gl_FragCoord.xy / resolution.xy; vec3 pos = texture2D( texturePos, uv ).xyz; vec3 sumVertex = vec3(0.0); int breaker = 0; float sum = 0.0; - for(int tableId = 0; tableId < 9; tableId++) { + for(int tableId = 0; tableId < `+this.numTables+`; tableId++) { vec4 vertIndices = particleToElemVertsTableSample(tableId, uv); for(int component = 0; component < 4; component++) { if(vertIndices[component] > -1.0) { @@ -448,40 +443,40 @@ export class SoftBodyGPU { }`; // visual embedded mesh - this.visVerts = visVerts; // <- These are barycentric weights inside each tetrahedra - this.numVisVerts = visVerts.length / 4; - this.geometry = new THREE.BufferGeometry(); - this.geometry.setAttribute('position', new THREE.BufferAttribute( - new Float32Array(3 * this.numVisVerts), 3)); - this.geometry.setAttribute('tetWeights', new THREE.BufferAttribute(this.visVerts, 4)); - this.geometry.setIndex(visTriIds); - this.visMesh = new THREE.Mesh(this.geometry, visMaterial); - this.visMesh.castShadow = true; - this.visMesh.userData = this; // for raycasting - this.visMesh.layers.enable(1); - - this.visMesh.material.onBeforeCompile = (shader) => { - let bodyStart = shader.vertexShader.indexOf( 'void main() {' ); - shader.vertexShader = - shader.vertexShader.slice(0, bodyStart) + vertShaderInit + - shader.vertexShader.slice(bodyStart - 1, - 1) + vertShaderMainColor; - shader.uniforms.texturePos = { value: this.gpuCompute.getCurrentRenderTarget(this.pos) } - shader.uniforms.textureQuat = { value: this.gpuCompute.getCurrentRenderTarget(this.quats) } - shader.uniforms.elemToParticlesTable = { value: this.elemToParticlesTable } - }; - this.visMesh.customDepthMaterial = new THREE.MeshDepthMaterial({ depthPacking: THREE.RGBADepthPacking }); - this.visMesh.customDepthMaterial.onBeforeCompile = (shader) => { - let bodyStart = shader.vertexShader.indexOf( 'void main() {' ); - shader.vertexShader = - shader.vertexShader.slice(0, bodyStart) + vertShaderInit + - shader.vertexShader.slice(bodyStart - 1, - 1) + vertShaderMain.slice(0, -1) + "vHighPrecisionZW = gl_Position.zw;}"; - shader.uniforms.texturePos = { value: this.gpuCompute.getCurrentRenderTarget(this.pos) } - shader.uniforms.textureQuat = { value: this.gpuCompute.getCurrentRenderTarget(this.quats) } - shader.uniforms.elemToParticlesTable = { value: this.elemToParticlesTable } - }; - - this.geometry.computeVertexNormals(); - this.updateVisMesh(); + //this.visVerts = visVerts; // <- These are barycentric weights inside each tetrahedra + //this.numVisVerts = visVerts.length / 4; + //this.geometry = new THREE.BufferGeometry(); + //this.geometry.setAttribute('position', new THREE.BufferAttribute( + // new Float32Array(3 * this.numVisVerts), 3)); + //this.geometry.setAttribute('tetWeights', new THREE.BufferAttribute(this.visVerts, 4)); + //this.geometry.setIndex(visTriIds); + //this.visMesh = new THREE.Mesh(this.geometry, visMaterial); + //this.visMesh.castShadow = true; + //this.visMesh.userData = this; // for raycasting + //this.visMesh.layers.enable(1); + + //this.visMesh.material.onBeforeCompile = (shader) => { + // let bodyStart = shader.vertexShader.indexOf( 'void main() {' ); + // shader.vertexShader = + // shader.vertexShader.slice(0, bodyStart) + vertShaderInit + + // shader.vertexShader.slice(bodyStart - 1, - 1) + vertShaderMainColor; + // shader.uniforms.texturePos = { value: this.gpuCompute.getCurrentRenderTarget(this.pos) } + // shader.uniforms.textureQuat = { value: this.gpuCompute.getCurrentRenderTarget(this.quats) } + // shader.uniforms.elemToParticlesTable = { value: this.elemToParticlesTable } + //}; + //this.visMesh.customDepthMaterial = new THREE.MeshDepthMaterial({ depthPacking: THREE.RGBADepthPacking }); + //this.visMesh.customDepthMaterial.onBeforeCompile = (shader) => { + // let bodyStart = shader.vertexShader.indexOf( 'void main() {' ); + // shader.vertexShader = + // shader.vertexShader.slice(0, bodyStart) + vertShaderInit + + // shader.vertexShader.slice(bodyStart - 1, - 1) + vertShaderMain.slice(0, -1) + "vHighPrecisionZW = gl_Position.zw;}"; + // shader.uniforms.texturePos = { value: this.gpuCompute.getCurrentRenderTarget(this.pos) } + // shader.uniforms.textureQuat = { value: this.gpuCompute.getCurrentRenderTarget(this.quats) } + // shader.uniforms.elemToParticlesTable = { value: this.elemToParticlesTable } + //}; + + //this.geometry.computeVertexNormals(); + //this.updateVisMesh(); } initPhysics(density) { @@ -491,15 +486,9 @@ export class SoftBodyGPU { for (let i = 0; i < this.vel0.image.data.length; i++){ this.vel0 .image.data[i] = 0.0; this.invMass .image.data[i] = 0.0; - this.particleToElemVertsTable[0].image.data[i] = -1.0; - this.particleToElemVertsTable[1].image.data[i] = -1.0; - this.particleToElemVertsTable[2].image.data[i] = -1.0; - this.particleToElemVertsTable[3].image.data[i] = -1.0; - this.particleToElemVertsTable[4].image.data[i] = -1.0; - this.particleToElemVertsTable[5].image.data[i] = -1.0; - this.particleToElemVertsTable[6].image.data[i] = -1.0; - this.particleToElemVertsTable[7].image.data[i] = -1.0; - this.particleToElemVertsTable[8].image.data[i] = -1.0; + for (let table = 0; table < this.numTables; table++) { + this.particleToElemVertsTable[table].image.data[i] = -1.0; + } } // Initialize the positions of the vertices @@ -556,7 +545,7 @@ export class SoftBodyGPU { if (this.particleToElemVertsTable[t].image.data[(4 * ids[id]) + c] <= 0.0) { this.particleToElemVertsTable[t].image.data[(4 * ids[id]) + c] = (4.0 * i) + id; biggestT = Math.max(biggestT, t); - //if (t == 7) { console.log(ids[id], (4 * ids[id]) + c);} + if (t == this.numTables-1) { console.log(ids[id], (4 * ids[id]) + c);} assigned = true; break; } } diff --git a/src/input.stl_.msh b/src/input.stl_.msh new file mode 100644 index 0000000..dd7d5be --- /dev/null +++ b/src/input.stl_.msh @@ -0,0 +1,11316 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +1841 +1 -35.1118 -11.6714 0 +2 -35.1118 -11.6714 45 +3 -34.8028 -12.6224 0 +4 -34.8028 -12.6224 45 +5 -28.1454 -10.4593 0 +6 -28.1454 -10.4593 45 +7 -27.5274 -12.3614 0 +8 -27.5274 -12.3614 45 +9 -27.1944 -10.1503 0 +10 -27.1944 -10.1503 45 +11 -26.5763 -12.0524 0.0155853 +12 -26.5763 -12.0524 44.9779 +13 -23.8537 -7.48766 0 +14 -23.8537 -7.48766 17.5 +15 -23.6992 -7.96319 0 +16 -23.6992 -7.96319 17.5 +17 -22.9546 -1.43866 0 +18 -22.9546 -0.96933 15 +19 -22.9546 1.44418 0 +20 -22.9546 1.44418 15 +21 -22.7593 29.1989 0 +22 -22.7593 29.1989 45 +23 -22.5926 -4.30977 0 +24 -22.6063 -4.20121 15 +25 -22.5652 4.41654 0 +26 -22.6021 4.23434 15 +27 -21.9503 29.7867 0 +28 -21.9503 29.7867 45 +29 -21.9366 -6.86477 0 +30 -21.9366 -6.86477 15 +31 -21.8743 7.10739 0 +32 -21.8743 7.10739 15 +33 -21.4132 -8.27191 0 +34 -21.4132 -8.27191 15 +35 -21.0005 -6.56061 15 +36 -21.0005 -6.56061 17.5 +37 -20.9586 -1.3186 0 +38 -20.9586 -1.3186 15 +39 -20.9586 1.3186 0 +40 -20.9586 1.3186 15 +41 -20.846 -7.03614 17.5 +42 -20.846 -7.03614 45 +43 -20.7793 -9.85054 0 +44 -20.7727 -9.86251 15 +45 -20.8456 9.70552 0 +46 -20.8148 9.7834 15 +47 -20.6561 -3.71246 0 +48 -20.518 -4.3635 15 +49 -20.6981 3.38029 0 +50 -20.628 3.93501 15 +51 -20.537 -7.98719 15 +52 -20.537 -7.98719 45 +53 -20.2629 22.3602 0 +54 -20.2629 22.3602 45 +55 -20.0744 -6.09131 0 +56 -19.9228 -6.61414 15 +57 -20.1134 5.93943 0 +58 -19.9722 6.48936 15 +59 -19.6751 21.5512 0 +60 -19.6751 21.5512 45 +61 -19.4195 -12.324 0 +62 -19.5109 -12.1577 15 +63 -19.4195 12.324 0 +64 -19.4195 12.324 15 +65 -19.062 -8.7882 0 +66 -19.0014 -8.94137 15 +67 -19.0014 8.94136 0 +68 -19.0014 8.94136 15 +69 -18.6448 23.5358 0 +70 -18.6448 23.5358 45 +71 -18.057 22.7268 0 +72 -18.057 22.7268 45 +73 -17.7309 -11.2524 0 +74 -17.7309 -11.2524 15 +75 -17.7309 11.2524 0 +76 -17.7309 11.2524 15 +77 -17.5878 -14.8035 0 +78 -17.4396 -14.9613 15 +79 -17.7218 14.6608 0 +80 -17.7218 14.6608 15 +81 -16.1808 -13.3859 0 +82 -16.1167 -13.4542 15 +83 -15.9387 13.6437 0.00320876 +84 -16.1808 13.3859 15 +85 -15.4525 -17.008 0 +86 -15.7446 -16.7663 15 +87 -16.0129 16.4806 0 +88 -15.8457 16.6586 15 +89 -14.8969 20.0785 0 +90 -14.8969 20.0785 17.5 +91 -14.4924 20.3724 0 +92 -14.4924 20.3724 17.5 +93 -14.4841 17.809 0 +94 -14.4841 17.809 15 +95 -14.3755 -15.3083 0 +96 -14.4386 -15.2411 15 +97 -14.3755 15.3083 0 +98 -14.3755 15.3083 15 +99 -13.9425 17.0636 15 +100 -13.9425 17.0636 45 +101 -13.5191 -18.6074 0 +102 -13.1069 -18.869 15 +103 -13.3076 18.7416 0 +104 -13.3076 18.7416 15 +105 -13.1335 17.6514 17.5 +106 -13.1335 17.6514 45 +107 -12.729 17.9453 15 +108 -12.729 17.9453 17.5 +109 -12.3876 -16.9529 0 +110 -12.3435 -16.9894 15 +111 -12.5793 16.7943 0 +112 -12.3435 16.9894 15 +113 -11.0803 -20.1551 0 +114 -11.0803 -20.1551 15 +115 -11.0803 20.1551 0 +116 -11.1818 20.0907 15 +117 -10.1168 -18.4024 0 +118 -10.1168 -18.4024 15 +119 -10.1168 18.4024 0 +120 -10.0099 18.4527 15 +121 -8.64422 21.3014 0 +122 -8.77472 21.24 15 +123 -8.46686 -21.3849 0 +124 -8.46686 -21.3849 15 +125 -7.62295 -19.5603 0 +126 -7.854 -19.4672 15 +127 -7.69839 19.5358 0.0446523 +128 -7.87435 19.4577 14.9558 +129 -5.63213 -22.2941 -1.11022e-16 +130 -5.57268 -22.3055 15 +131 -5.71987 22.2774 0 +132 -5.94239 22.2051 14.9637 +133 -5.17029 -20.3502 0 +134 -5.22249 -20.3402 15 +135 -5.22249 20.3402 0 +136 -5.22249 20.3402 15 +137 -2.88266 -22.8186 0 +138 -2.88266 -22.8186 15 +139 -2.90926 22.8135 0 +140 -2.88266 22.8186 15 +141 -2.64045 -20.8328 7.77156e-16 +142 -2.81509 -20.7995 15 +143 -2.632 20.8344 0 +144 -2.632 20.8344 15 +145 -0.25 -25 0 +146 -0.25 -25 17.5 +147 -0.25 -22.9843 0 +148 -0.25 -22.9843 15 +149 -0.25 -22 15 +150 -0.25 -22 17.5 +151 4.66294e-15 -21 0 +152 -0.25198 -20.9841 15 +153 -4.66294e-15 21 0 +154 -4.66294e-15 21 15 +155 -5.10703e-15 23 0 +156 -5.10703e-15 23 15 +157 0.25 -37 0 +158 0.25 -37 45 +159 0.25 -25 0 +160 0.25 -25 17.5 +161 0.25 -22 17.5 +162 0.25 -22 45 +163 1.25 -37 0 +164 1.25 -37 45 +165 1.25 -30 0 +166 1.25 -30 45 +167 1.25 -29 0 +168 1.25 -29 45 +169 1.25 -22.9214 0 +170 1.25 -22.9214 15 +171 1.25 -22 15 +172 1.25 -22 45 +173 2.632 -20.8344 0 +174 3.01564 -20.7612 14.9937 +175 2.632 20.8344 0 +176 2.632 20.8344 15 +177 2.88266 -22.8186 0 +178 3.26157 -22.7463 15 +179 3.13313 22.7708 0 +180 2.72776 22.8283 15 +181 3.25 -30 0 +182 3.25 -30 45 +183 3.25 -29 0 +184 3.25 -29 45 +185 4.79646 -20.4215 0 +186 5.22249 -20.3402 15 +187 5.22249 20.3402 0 +188 5.22249 20.3402 15 +189 5.71987 -22.2774 0 +190 5.70407 -22.2804 14.9361 +191 5.71987 22.2774 0 +192 5.37972 22.3423 15 +193 7.44052 -19.6196 0 +194 7.27265 -19.6741 15 +195 7.6774 19.5426 0 +196 7.73062 19.5253 15 +197 8.76756 21.2434 0 +198 8.46686 21.3849 15 +199 8.46687 -21.3849 0 +200 8.69578 -21.2772 15 +201 10.1168 -18.4024 0 +202 10.1168 -18.4024 15 +203 10.1168 18.4024 0 +204 10.5588 18.1219 15 +205 11.0927 -20.1472 0 +206 11.0803 -20.1551 15 +207 10.887 20.2461 0.0177942 +208 10.7328 20.3186 15 +209 11.92 18.5331 15 +210 11.92 18.5331 45 +211 12.3435 -16.9894 0 +212 12.3435 -16.9894 15 +213 12.2211 17.067 0 +214 12.4988 16.8609 15 +215 12.4616 19.2785 0 +216 12.4616 19.2785 15 +217 12.729 17.9453 17.5 +218 12.729 17.9453 45 +219 13.1335 17.6514 15 +220 13.1337 17.6516 17.4281 +221 13.5191 -18.6074 0 +222 13.5191 -18.6074 15 +223 13.7121 18.4477 0 +224 13.7121 18.4477 15 +225 14.3755 -15.3083 0 +226 14.3755 -15.3083 15 +227 14.4935 15.1826 0 +228 14.3373 15.3399 15 +229 14.4165 25.3718 0 +230 14.4165 25.3718 45 +231 14.4924 20.3724 0 +232 14.4924 20.3724 17.5 +233 14.8969 20.0785 0 +234 14.8969 20.0785 17.5 +235 15.0043 26.1808 0 +236 15.0043 26.1808 45 +237 15.8837 -16.6181 0 +238 15.6334 -16.8583 15 +239 15.865 16.638 0 +240 15.3295 17.1097 15 +241 16.0345 24.1962 0 +242 16.0345 24.1962 45 +243 16.1808 -13.3859 0 +244 16.1808 -13.3859 15 +245 16.1808 13.3859 0 +246 16.3845 13.186 15 +247 16.6223 25.0052 0 +248 16.6223 25.0052 45 +249 17.5773 -14.8146 0 +250 17.476 -14.9225 15 +251 17.5569 14.8364 0.0610079 +252 17.7218 14.6608 15 +253 17.8247 -11.0817 0 +254 17.7309 -11.2524 15 +255 17.7309 11.2524 0 +256 17.7309 11.2524 15 +257 19.0014 -8.94136 0 +258 19.0133 -8.9112 15 +259 19.101 8.6899 0 +260 19.1924 8.45902 15 +261 19.5845 -12.0238 0 +262 19.4195 -12.324 15 +263 19.4195 12.324 0 +264 19.4195 12.324 15 +265 19.9132 -6.63833 0 +266 20.032 -6.25635 15 +267 19.9722 6.48936 0 +268 20.0928 6.01959 15 +269 20.6778 -3.54099 0 +270 20.6581 -3.69644 15 +271 20.6129 3.99389 0 +272 20.6556 3.7169 15 +273 20.7284 30.6568 0 +274 20.7368 30.6684 45 +275 20.811 -9.79292 0 +276 20.811 -9.79292 15 +277 20.811 9.79292 0 +278 21.0313 9.23663 14.9727 +279 20.846 -7.03614 15 +280 20.846 -7.03614 17.5 +281 20.9586 -1.26272 0 +282 20.9345 -1.50954 15 +283 20.9586 1.3186 0 +284 20.9586 1.3186 15 +285 21.0005 -6.56061 17.5 +286 21.0005 -6.56061 45 +287 21.3095 -5.60955 15 +288 21.3095 -5.60955 45 +289 21.5458 30.0806 0 +290 21.5458 30.0806 45 +291 21.7821 -7.34029 0 +292 21.7821 -7.34029 15 +293 21.8743 7.10739 0 +294 21.9275 6.90016 15 +295 22.1858 -5.89427 0 +296 22.1858 -5.89427 15 +297 22.6344 -3.97925 0 +298 22.6837 -3.58895 15 +299 22.5926 4.30977 0 +300 22.5926 4.30977 15 +301 22.9546 -1.44418 0 +302 22.9546 -1.44418 15 +303 22.9546 1.44418 0 +304 22.9546 1.20403 15 +305 23.6992 -7.96319 0 +306 23.6992 -7.96319 17.5 +307 23.8537 -7.48766 0 +308 23.8537 -7.48766 17.5 +309 27.9669 -7.77267 0 +310 27.9669 -7.77267 45 +311 28.5849 -5.87056 0 +312 28.5849 -5.87056 45 +313 28.918 -8.08169 0 +314 28.918 -8.08169 45 +315 29.536 -6.17958 0 +316 29.536 -6.17958 45 +317 35.2663 -11.1959 0 +318 35.2663 -11.1959 45 +319 35.5754 -10.2448 0 +320 35.5754 -10.2448 45 +321 0.25 -31.6931 26.0315 +322 20.2178 28.2528 36.5669 +323 -19.8619 26.9123 3.49473 +324 21.0005 -6.56061 27.5998 +325 -16.1232 20.0651 2.29895 +326 -16.3014 20.3104 7.27531 +327 -16.3227 20.3397 11.945 +328 -26.256 -8.79397 16.1227 +329 -24.183 -8.12038 19.1139 +330 -32.2009 -10.7256 15.6481 +331 -31.5296 -10.5075 31.1278 +332 0.25 -33.0369 33.8784 +333 -27.9512 -9.34476 12.1797 +334 -28.3409 -9.47138 18.7749 +335 -0.94103 20.9408 8.27582 +336 -28.1285 -9.40239 32.0622 +337 -25.1752 -8.44279 26.8596 +338 0.25 -32.0494 22.0946 +339 -13.4342 -18.6613 11.7534 +340 15.7446 16.7663 9.98885 +341 21.3095 -5.60955 32.2562 +342 -20.8355 26.5511 39.0837 +343 8.2901 -19.262 4.28373 +344 -19.2741 -12.5242 9.00256 +345 -19.2721 12.5269 5.1938 +346 -18.9704 -8.99783 8.46625 +347 -17.5889 -11.4478 9.80073 +348 -17.6961 11.3003 6.93211 +349 -10.8501 -20.2634 9.28572 +350 -11.1831 20.0898 8.73622 +351 -10.1599 -18.3751 5.936 +352 -9.42071 18.73 6.71877 +353 -8.2533 21.4543 6.90404 +354 -5.7423 20.1713 7.29139 +355 -3.30071 20.7068 8.64178 +356 0.0355958 22.9978 7.48079 +357 2.632 20.8344 7.5 +358 5.0516 20.3728 6.90809 +359 6.1202 22.1473 7.55987 +360 7.93919 19.4271 7.33589 +361 8.46686 21.3849 9.55506 +362 10.5494 -18.1279 6.89272 +363 11.1112 -20.1355 8.74798 +364 10.6075 20.3776 5.8574 +365 12.4616 19.2785 7.5 +366 17.7162 14.6667 9.69706 +367 32.246 -9.16303 2.63729 +368 17.8198 -11.0906 10.0988 +369 17.6052 11.4254 7.60188 +370 18.9498 -9.03524 8.14783 +371 19.5376 -12.1092 7.61621 +372 19.4195 12.324 9.84862 +373 18.4642 27.5404 37.4681 +374 12.5074 -16.8538 4.54128 +375 -31.6504 -10.5467 40.3047 +376 5.71987 -22.2774 5.45126 +377 1.25 -25.4607 17.7759 +378 -31.2423 -11.4655 37.3531 +379 -4.20168 22.567 6.22638 +380 1.25 -33.3297 40.178 +381 -20.1896 -10.9232 6.52873 +382 -13.9425 17.0636 38.0483 +383 -31.0159 -10.3405 6.43608 +384 -20.7408 -9.92067 4.47838 +385 -20.7091 -9.97822 12.3777 +386 -19.6751 21.5512 38.6631 +387 -17.7389 23.9903 37.3809 +388 17.8942 25.0545 37.5915 +389 -12.5069 -19.2498 7.62275 +390 1.25 -22 40.2823 +391 1.25 -25.7068 27.9444 +392 1.25 -25.6608 33.9955 +393 -31.7021 -11.6149 41.4439 +394 0.25 -37 26.3441 +395 1.25 -22 35.5014 +396 1.25 -26.379 40.1028 +397 0.25 -29.9089 6.91927 +398 -23.9071 -8.03075 42.1199 +399 -21.9484 -6.8686 10.5491 +400 -23.8537 -7.48766 3.15106 +401 -23.8537 -7.48766 9.97845 +402 18.7378 27.9169 2.7499 +403 -18.057 22.7268 2.82328 +404 16.8293 12.4933 12.0819 +405 14.5796 20.4924 29.997 +406 14.3676 20.2006 34.9462 +407 15.3921 21.6107 41.3816 +408 20.9586 -0.931439 4.20253 +409 20.9586 -1.10965 11.2181 +410 20.907 1.72683 3.95536 +411 20.9389 1.47438 8.59477 +412 14.542 22.1419 10.8091 +413 18.6957 27.859 10.7868 +414 18.7416 27.9222 15.7577 +415 18.5025 27.5931 23.3411 +416 14.3959 21.9409 30.4352 +417 18.635 27.7755 30.9005 +418 14.3796 21.9184 34.3413 +419 1.25 -37 3.26937 +420 1.25 -37 11.0708 +421 1.25 -37 18.0682 +422 1.25 -37 22.5171 +423 1.25 -37 27.5947 +424 1.25 -37 33.4203 +425 1.25 -37 40.4658 +426 16.3236 -13.1893 5.78519 +427 16.4253 -13.0494 11.7203 +428 3.28684 -20.7095 2.86631 +429 2.29657 -20.8555 6.80869 +430 -19.2946 12.496 10.5556 +431 12.729 17.9453 26.4836 +432 12.7415 17.9625 32.3928 +433 12.729 17.9453 37.9307 +434 11.92 18.5331 22.7312 +435 11.92 18.5331 28.083 +436 11.92 18.5331 32.5892 +437 11.9545 18.5806 36.1861 +438 11.92 18.5331 40.5361 +439 -20.4921 -4.4645 12.859 +440 -20.038 -6.23301 4.96836 +441 16.6223 25.0052 10.5491 +442 16.6223 25.0052 15.0184 +443 16.6223 25.0052 19.7306 +444 16.6223 25.0052 22.9856 +445 16.6223 25.0052 27.6979 +446 16.6223 25.0052 30.9529 +447 18.1968 -14.0069 3.64683 +448 18.1136 -14.1214 13.32 +449 28.9153 -8.08083 10.5491 +450 28.9153 -8.08082 13.5241 +451 28.9153 -8.08083 21.4913 +452 28.9153 -8.08083 29.4586 +453 -27.4997 -9.19805 5.69063 +454 13.0503 -18.9049 3.67471 +455 13.4006 -18.6826 12.0189 +456 19.3087 12.4764 4.69637 +457 -20.5922 10.1909 4.01166 +458 -20.6246 10.1321 10.2447 +459 -7.67423 -19.5436 3.94206 +460 -5.29192 -22.359 11.8495 +461 16.0345 24.1962 6.31655 +462 16.0345 24.1962 38.6834 +463 16.0345 24.1962 12.3423 +464 16.0345 24.1962 15.1131 +465 16.0345 24.1962 18.5164 +466 16.0345 24.1962 20.3096 +467 16.0345 24.1962 23.0803 +468 16.0345 24.1962 26.9708 +469 16.0345 24.1962 31.0475 +470 20.1109 -5.94923 2.62124 +471 20.6146 -3.9871 12.9809 +472 -13.3076 18.7416 6.12515 +473 10.6553 -20.3551 3.84221 +474 -11.0888 -20.1497 5.27754 +475 20.7368 30.6684 25.1052 +476 20.7368 30.6684 32.4585 +477 -19.6751 21.5512 14.2057 +478 -19.6751 21.5512 24.3271 +479 -19.6751 21.5512 31.3582 +480 0.25 -33.7833 39.8017 +481 -20.2629 22.3602 25.4904 +482 -20.2629 22.3602 29.917 +483 -20.2629 22.3602 36.1536 +484 -16.0877 16.4009 2.79227 +485 -16.0716 16.4181 12.938 +486 -5.18658 -20.3471 10.4057 +487 -8.1935 -19.3075 10.8002 +488 3.21814 22.7546 3.93092 +489 -23.9226 -9.08726 23.3377 +490 1.25 -33.3884 5.60295 +491 -18.057 22.7268 35.7705 +492 -20.5979 -8.00698 17.8452 +493 29.536 -6.17958 38.7845 +494 -20.537 -7.98719 40.2381 +495 -23.5562 -8.96818 29.6869 +496 -23.8081 -9.05005 34.3342 +497 -20.537 -7.98719 26.6486 +498 -20.537 -7.98719 34.4394 +499 -18.3758 -13.7605 6.54437 +500 -35.1118 -11.6714 6.56361 +501 -35.1118 -11.6714 37.9786 +502 19.7665 -7.00898 12.0765 +503 -19.1405 25.9194 21.8882 +504 31.2246 -9.88267 4.0171 +505 -17.1322 -12.0764 6.46834 +506 -34.8028 -12.6224 6.02807 +507 20.628 -3.93501 4.79999 +508 -34.8028 -12.6224 39.3496 +509 20.5586 -4.20543 10.0431 +510 -11.2617 17.6758 4.66149 +511 32.4707 -9.23602 39.4292 +512 -20.9586 -0.0822955 6.84321 +513 14.8969 20.0785 2.65047 +514 14.8969 20.0785 7.85347 +515 -31.1938 -11.4498 3.94693 +516 -24.59 -8.25264 44.9721 +517 8.46687 -21.3849 6.70076 +518 -31.1178 -11.4251 32.4734 +519 4.28066 22.5519 10.0479 +520 -28.7297 -9.59773 45 +521 -11.0743 20.1579 4.1363 +522 -25.1152 -8.42328 33.6514 +523 -15.0983 18.6544 30.517 +524 -27.1673 -9.09008 39.4006 +525 -20.846 -7.03614 29.1207 +526 -23.0681 -7.75813 31.4288 +527 -20.882 -7.04783 34.303 +528 20.7368 30.6684 38.8937 +529 1.25 -29 41.8057 +530 21.5458 30.0806 38.962 +531 3.25 -29 11.3745 +532 1.25 -29 34.4509 +533 3.25 -29 6.04185 +534 3.25 -29 37.5598 +535 3.25 -29 41.8511 +536 -18.6448 23.5358 36.0607 +537 3.25 -29 15.007 +538 3.25 -29 18.3836 +539 3.25 -29 23.7851 +540 3.25 -29 28.6183 +541 3.25 -29 32.0301 +542 22.9546 -1.14316 7.33071 +543 14.3369 21.8596 4.49233 +544 24.8958 -7.82627 45 +545 -22.6264 4.04213 9.16064 +546 23.6992 -7.96319 13.1346 +547 -29.381 -9.80934 28.5899 +548 -22.9546 0.937219 10.1599 +549 -8.46686 -21.3849 6.13593 +550 -8.17879 -21.4785 11.5004 +551 16.6223 25.0052 39.1511 +552 -14.9244 20.1164 26.6951 +553 -15.3954 20.7647 34.8627 +554 17.8841 14.4374 4.9246 +555 -13.1335 17.6514 26.4831 +556 -13.1335 17.6514 32.0126 +557 35.2663 -11.1959 39.1305 +558 19.8403 6.82239 3.61277 +559 20.5203 4.35432 5.60127 +560 19.997 6.39285 8.72428 +561 20.5555 4.21747 12.2111 +562 20.6529 3.73812 7.96904 +563 14.3264 -15.3489 4.85549 +564 19.1637 26.8019 45 +565 -17.7241 23.9698 6.43598 +566 15.0043 26.1808 40.1776 +567 -12.8024 16.6098 10.5814 +568 -25.1126 -9.47389 42.7476 +569 28.2766 -6.81942 17.2084 +570 28.5849 -5.87056 4.12714 +571 17.8531 26.6993 5.09073 +572 28.5849 -5.87056 43.3965 +573 28.5849 -5.87056 9.5912 +574 28.5849 -5.87056 20.8622 +575 28.5849 -5.87056 24.2995 +576 28.5849 -5.87056 28.4641 +577 28.5849 -5.87056 34.7076 +578 -20.2629 22.3602 6.48131 +579 22.9546 -0.867684 11.9184 +580 -20.2629 22.3602 10.367 +581 -20.2629 22.3602 19.4068 +582 1.25 -22 16.8775 +583 1.25 -22 19.0709 +584 1.25 -22.0028 24.9868 +585 1.25 -22 29.7803 +586 -22.6581 -3.79157 7.73319 +587 -22.9546 -1.44418 4.94681 +588 -22.9546 -1.34339 11.1917 +589 -17.7218 -14.6608 3.61923 +590 -19.6751 21.5512 10.8999 +591 -15.9083 -16.592 8.23432 +592 21.5458 30.0806 4.00247 +593 35.5754 -10.2448 40.6691 +594 35.5754 -10.2448 15.3765 +595 35.5754 -10.2448 23.6966 +596 1.25 -35.0221 14.1343 +597 -21.787 7.32787 4.00383 +598 35.5754 -10.2448 34.37 +599 -0.25 -25 13.0272 +600 0.25 -33.0968 9.65395 +601 0.25 -25 4.78333 +602 0.25 -25 10.5491 +603 22.6677 -3.71559 7.17369 +604 22.647 -3.87947 3.12378 +605 22.5728 -4.38671 11.0536 +606 0.25 -25.292 41.3176 +607 13.907 21.2679 41.5873 +608 22.8148 -2.55056 11.201 +609 22.9246 1.68145 10.9431 +610 35.5754 -10.2448 6.65701 +611 0.25 -30.962 0 +612 1.35004 -20.9151 1.97827 +613 -0.264833 -20.9833 10.516 +614 1.87994 -20.8817 12.7345 +615 -0.25 -22.9843 10.0079 +616 -17.7539 -14.6166 12.1217 +617 1.25 -37 7.25298 +618 -14.8675 -17.4919 3.76881 +619 -13.5191 -18.6074 4.38357 +620 16.6223 25.0052 35.052 +621 21.3095 -5.60955 20.8369 +622 24.5009 -6.64648 38.6738 +623 24.226 -6.55717 42.373 +624 24.9224 -6.78344 33.4238 +625 21.3529 -5.62366 26.94 +626 31.7942 -10.0677 9.36409 +627 21.3095 -5.60955 37.21 +628 14.2896 21.7945 18.9904 +629 27.4678 -8.66197 0 +630 28.791 -9.09192 0 +631 27.1906 -8.57191 8.66162 +632 27.305 -8.60907 2.96642 +633 28.1194 -8.87369 14.0378 +634 -12.522 -16.8417 10.0109 +635 -23.8466 -9.06257 17.6021 +636 -25.1041 -9.47112 4.66152 +637 -24.7262 -9.34835 13.1978 +638 -23.8121 -9.05135 9.77541 +639 -21.3907 -8.32881 10.7791 +640 2.86512 22.8197 12.6144 +641 0.25 -33.7911 3.01785 +642 -33.0638 -11.006 9.77309 +643 3.28539 -22.7418 3.97885 +644 1.25 -22.9214 3.78157 +645 7.94159 19.426 4.10385 +646 1.25 -22.9214 10.5491 +647 -16.0881 13.4846 8.48297 +648 14.1652 15.4823 9.25941 +649 15.639 13.9628 3.44267 +650 15.639 13.9628 13.5475 +651 15.8022 13.789 7.98252 +652 25.0685 -6.83093 2.5256 +653 31.6568 -10.0231 29.4571 +654 -15.5189 19.2333 22.8445 +655 -13.9425 17.0636 17.6365 +656 -13.9425 17.0636 25.885 +657 32.2454 -9.16281 8.7206 +658 -13.9425 17.0636 31.3922 +659 14.7232 -14.9381 10.3647 +660 24.4529 -6.6309 25.5708 +661 2.1757 22.8631 9.13903 +662 -35.1118 -11.6714 13.1101 +663 -35.0602 -11.6546 20.5131 +664 -2.21438 22.8607 8.88237 +665 -35.1118 -11.6714 23.9341 +666 -35.1118 -11.6714 29.0446 +667 -35.1118 -11.6714 31.9013 +668 -34.8028 -12.6224 11.2948 +669 -34.8028 -12.6224 16.1216 +670 31.7955 -10.0682 40.6578 +671 -27.1944 -10.1503 44.0014 +672 -27.1944 -10.1503 2.97842 +673 -27.1944 -10.1503 9.8181 +674 -27.1944 -10.1503 35.1819 +675 -27.1944 -10.1503 14.9422 +676 -27.1944 -10.1503 22.3364 +677 -27.1944 -10.1503 28.963 +678 14.4165 25.3718 4.58335 +679 1.25 -33.4455 28.2549 +680 15.0043 26.1808 10.5001 +681 15.0121 26.1751 18.3643 +682 15.0043 26.1808 25.5936 +683 15.0043 26.1808 29.251 +684 15.0043 26.1808 33.8673 +685 -12.6937 -16.6997 5.42379 +686 -28.1454 -10.4593 2.51475 +687 -28.1454 -10.4593 8.51364 +688 -28.1454 -10.4593 38.7778 +689 -28.1454 -10.4593 14.8653 +690 -28.1454 -10.4593 21.1626 +691 -28.1454 -10.4593 30.9886 +692 -20.5748 -4.14204 2.54559 +693 -20.4292 25.9918 3.34119 +694 -20.1864 25.6576 7.09636 +695 -20.2948 25.8069 16.8829 +696 -20.6123 26.2438 24.6799 +697 -20.7615 26.4491 32.8326 +698 1.25 -34.2024 25.391 +699 -22.7593 29.1989 42.4181 +700 -18.6448 23.5358 3.55388 +701 -18.6448 23.5358 10.1581 +702 -18.6448 23.5358 12.073 +703 -18.6448 23.5358 18.1253 +704 -18.6448 23.5358 20.0402 +705 -18.6448 23.5358 30.0944 +706 -18.6448 23.5358 42.0271 +707 -0.45167 -20.9716 3.97025 +708 -28.7297 -9.59772 0 +709 -26.5255 -8.88151 0 +710 -26.4493 -8.85676 2.30792 +711 -23.6992 -7.96319 4.95837 +712 -23.6992 -7.96319 12.908 +713 -23.6992 -7.96319 9.60309 +714 -25.7658 -8.63467 10.3629 +715 0.25 -29.3517 13.8949 +716 0.25 -33.4369 15.829 +717 0.25 -27.3287 22.7693 +718 0.25 -37 5.16142 +719 0.25 -37 21.6696 +720 0.25 -37 16.2508 +721 0.25 -37 30.8697 +722 0.25 -37 37.7479 +723 0.25 -33.1469 6.22803 +724 8.62133 -21.3122 11.5314 +725 20.8442 -9.70897 10.961 +726 22.6053 4.20941 6.12509 +727 -32.4987 -10.8223 3.5253 +728 13.7121 18.4477 4.08348 +729 -20.6501 3.76035 2.60981 +730 -20.0185 6.30918 9.5891 +731 24.2007 -7.60041 29.6017 +732 13.8523 21.1926 38.2476 +733 -22.7593 29.1989 28.1254 +734 -35.0749 -11.6594 17.1434 +735 18.9114 9.10515 4.45856 +736 15.3398 -17.1012 3.21068 +737 16.883 -15.554 3.6658 +738 16.9263 -15.5079 7.24553 +739 16.9495 -15.4832 11.9609 +740 16.2702 22.8193 38.2038 +741 -18.3587 10.1105 10.4451 +742 -21.3899 -8.33077 6.29366 +743 3.6066 -20.6485 11.1235 +744 -21.8743 7.10739 8.08167 +745 24.064 -7.55601 24.4766 +746 27.0642 -8.53083 41.7715 +747 28.1752 -8.89184 36.9971 +748 27.4008 -8.64021 31.4908 +749 21.0005 -6.56061 32.8668 +750 -25.2747 -8.4751 22.5284 +751 21.0005 -6.56061 40.8752 +752 27.7819 -8.76405 25.6519 +753 -16.1467 21.7988 15.1319 +754 -19.9098 26.9782 7.47116 +755 -20.5633 27.8776 11.8644 +756 -18.897 25.5842 10.9538 +757 -19.8186 26.8527 18.1744 +758 -18.8904 25.5751 25.3343 +759 -19.1836 25.9786 30.856 +760 23.3462 -6.27131 30.6327 +761 -18.8335 25.4968 34.3282 +762 -19.5953 26.5454 37.8409 +763 -20.3517 27.5864 42.1945 +764 -21.9503 29.7867 5.76098 +765 -21.9503 29.7867 10.449 +766 -21.9503 29.7867 14.7123 +767 -21.9174 29.7414 18.4222 +768 -21.9503 29.7867 22.7465 +769 -21.9503 29.7867 34.4509 +770 1.25 -34.5019 36.6597 +771 -21.9503 29.7867 39.2513 +772 -17.5629 23.748 17.8309 +773 -16.9978 22.9702 21.0752 +774 -17.308 23.3971 26.8137 +775 -17.2915 23.3744 12.0954 +776 0.25 -32.2694 30.0291 +777 25.252 -6.89055 9.36667 +778 27.9669 -7.77267 12.0815 +779 27.9669 -7.77267 4.88886 +780 27.9669 -7.77267 38.3404 +781 27.9669 -7.77267 20.207 +782 27.9669 -7.77267 23.6584 +783 25.1997 -6.87355 28.6465 +784 27.9669 -7.77267 30.2018 +785 18.9253 9.07979 10.6767 +786 19.7455 7.06188 12.6646 +787 0.25 -22 26.4836 +788 0.25 -22 31.7748 +789 -16.3057 20.3163 18.3701 +790 -16.8701 21.0931 15.1427 +791 -16.188 20.1542 28.1849 +792 -15.9534 19.8314 35.1704 +793 -18.057 22.7268 10.6878 +794 -18.057 22.7268 19.951 +795 -18.057 22.7268 29.1522 +796 -20.846 -7.03614 25.62 +797 -18.057 22.7268 42.3889 +798 -32.0643 -10.6812 26.7163 +799 -14.4924 20.3724 14.02 +800 -5.53061 -22.3135 6.04745 +801 -2.72753 -22.8284 5.00561 +802 -23.8537 -7.48766 13.7392 +803 20.0196 -6.30493 7.0099 +804 0.25 -27.6915 2.9001 +805 12.4616 19.2785 11.25 +806 12.4999 16.86 2.54179 +807 12.2547 17.0458 12.5936 +808 -20.9023 -9.56219 7.82452 +809 -14.4841 17.809 8.46506 +810 0.25 -25.3398 34.9515 +811 -4.63126 -20.453 3.18667 +812 24.0414 -6.49719 22.8332 +813 -2.80972 -20.8005 6.84514 +814 -20.868 2.03576 6.0733 +815 -14.7267 -14.9343 4.77678 +816 15.9723 16.5238 4.27633 +817 -19.2428 8.3317 9.46824 +818 22.9546 1.15824 5.1898 +819 35.2663 -11.1959 6.59998 +820 -21.9425 -6.86669 5.27457 +821 28.9189 -8.07885 39.7254 +822 28.9167 -8.08126 5.27457 +823 -22.946 1.51207 5.17741 +824 -20.846 -7.03614 38.8832 +825 0.25 -22 37.7949 +826 15.0043 26.1808 5.27457 +827 16.6223 25.0052 5.27457 +828 21.967 6.74635 4.58203 +829 29.536 -6.17958 6.04191 +830 21.7821 -7.34029 8.91628 +831 35.5754 -10.2448 29.1248 +832 7.97885 -19.4085 11.0387 +833 -18.1428 24.5462 41.0389 +834 4.8258 -20.4159 1.78019 +835 1.25 -29 14.586 +836 1.25 -29 11.2206 +837 -31.2453 -11.4665 26.6769 +838 16.7816 23.5232 45 +839 18.4029 25.7548 40.8535 +840 15.2683 21.4404 25.0518 +841 18.9846 26.5554 30.7279 +842 17.2131 24.1171 25.6609 +843 17.2571 24.1777 30.0905 +844 16.6444 23.3344 34.0937 +845 -20.907 -1.72717 4.01141 +846 -20.9586 -1.3186 12.3825 +847 1.25 -30 39.9586 +848 -2.29481 22.8556 3.51162 +849 28.5769 -5.89529 39.8719 +850 -0.25 -22.9843 5.00397 +851 14.4165 25.3718 36.3086 +852 14.4165 25.3718 10.277 +853 14.4165 25.3718 15.0373 +854 12.2544 17.046 7.13096 +855 14.4165 25.3718 18.5164 +856 14.4165 25.3718 21.724 +857 -34.8028 -12.6224 25.0006 +858 14.4165 25.3718 29.1762 +859 0.25 -28.4512 28.6254 +860 5.22249 -20.3402 11.814 +861 5.5174 -20.2444 8.55013 +862 -20.8587 -2.10917 7.71565 +863 17.9578 25.1422 2.82525 +864 17.0999 23.9613 0 +865 -28.1454 -10.4593 26.0756 +866 16.2071 22.7324 9.17844 +867 16.1258 22.6206 14.196 +868 19.3877 27.1102 9.96967 +869 17.9404 25.1182 15.6716 +870 -28.1454 -10.4593 34.8832 +871 14.4924 20.3724 10.6138 +872 28.791 -9.09193 45 +873 23.8537 -7.48766 6.63799 +874 0.25 -29.4566 18.2443 +875 14.2161 15.4402 5.85394 +876 14.4924 20.3724 4.83273 +877 29.536 -6.17958 12.751 +878 29.536 -6.17958 15.7823 +879 29.536 -6.17958 17.4026 +880 29.536 -6.17958 9.65598 +881 29.2154 -7.16628 15.7348 +882 29.536 -6.17958 21.9128 +883 29.536 -6.17958 26.4836 +884 -16.2471 -16.2312 3.74338 +885 29.536 -6.17958 32.1775 +886 -16.4526 13.0118 4.33333 +887 1.25 -30 4.76762 +888 20.7368 30.6684 9.67012 +889 20.7368 30.6684 4.93115 +890 20.7368 30.6684 13.6032 +891 20.7368 30.6684 19.8617 +892 14.2433 20.0295 20.5765 +893 22.1702 -5.8892 5.05121 +894 22.1858 -5.89427 9.85717 +895 -15.9357 19.8071 41.453 +896 32.0701 -9.10586 25.2664 +897 0.25 -37 9.85688 +898 23.8623 -7.49044 11.434 +899 23.6992 -7.96319 8.90849 +900 23.6992 -7.96319 1.9487 +901 18.202 -13.9998 9.70872 +902 -3.30474 22.7381 11.6937 +903 -18.9373 9.05794 6.02427 +904 31.7999 -10.0696 14.3191 +905 26.704 -8.41381 21.5254 +906 28.6537 -9.04729 17.6107 +907 1.25 -30 27.4305 +908 35.2663 -11.1959 12.8658 +909 35.2663 -11.1959 17.5937 +910 35.3088 -11.2097 26.4836 +911 -14.0786 -18.1469 8.58232 +912 14.4165 25.3718 24.713 +913 -19.7468 26.7538 14.1428 +914 -19.6751 21.5512 19.6292 +915 1.25 -33.1372 18.4735 +916 35.2663 -11.1959 21.8783 +917 25.8909 -7.09813 17.3539 +918 35.5754 -10.2448 11.4499 +919 35.2663 -11.1959 33.392 +920 -31.9456 -11.694 10.1037 +921 -19.6751 21.5512 35.2323 +922 20.8669 9.65181 5.91399 +923 20.811 9.79292 12.4283 +924 -12.9138 16.5176 3.80652 +925 21.8307 7.21749 10.6467 +926 5.71987 -22.2774 12.3024 +927 13.7753 -18.3955 7.15803 +928 16.0345 24.1962 34.8655 +929 13.7121 18.4477 8.57925 +930 -20.846 -7.03614 21.5678 +931 12.729 17.9453 20.945 +932 -13.1335 17.6514 21.9918 +933 0.25 -22.0272 22.0776 +934 0.25 -27.2794 45 +935 -17.95 24.2807 15.1661 +936 1.25 -30 13.113 +937 -22.5226 4.58243 4.4558 +938 31.5765 -9.997 19.4486 +939 3.24176 -30 3.1801 +940 3.25 -30 9.54288 +941 3.25 -30 40.5772 +942 32.1838 -9.14281 18.5536 +943 3.25 -30 14.6529 +944 32.3523 -9.19755 13.6627 +945 3.25 -30 18.1487 +946 3.24271 -30 21.3137 +947 -27.1944 -10.1503 39.5916 +948 3.25 -30 26.8628 +949 3.25 -30 33.7414 +950 18.4626 25.8369 6.97365 +951 -15.9677 -13.6128 5.89835 +952 -16.223 -13.3278 10.4225 +953 1.25 -25.1315 23.0662 +954 -14.5061 -15.1692 11.6048 +955 -18.0612 22.7326 24.3479 +956 -17.7847 24.0533 0 +957 19.0256 28.3131 41.1739 +958 -16.4921 22.2741 4.48763 +959 -14.8969 20.0785 2.54866 +960 -20.537 -7.98719 22.1169 +961 -29.2437 -9.76472 24.5964 +962 -19.9496 6.54656 4.22621 +963 -16.0684 21.6909 11.6 +964 -16.6445 22.4839 8.77223 +965 14.463 25.338 39.5309 +966 -14.8969 20.0785 8.06728 +967 -14.8969 20.0785 13.1102 +968 32.1283 -10.1763 36.0765 +969 -14.8178 14.8373 4.7887 +970 21.0005 -6.56061 22.5173 +971 18.7091 -9.47305 12.3255 +972 28.9198 -8.07602 34.4509 +973 5.57137 -20.2268 3.86012 +974 31.5925 -10.0022 22.8803 +975 -13.9512 17.0756 21.7816 +976 1.25 -32.7792 12.4105 +977 -30.4996 -10.1728 35.9302 +978 -17.4016 -15.0018 8.25048 +979 14.8969 20.0785 12.8046 +980 23.5678 -7.39477 35.9854 +981 1.25 -33.5 32.3429 +982 -14.4841 17.809 4.23253 +983 -14.1458 15.4983 8.48136 +984 -20.9093 1.70867 9.65307 +985 -20.6369 3.86486 12.0575 +986 -3.01384 -22.7936 10.3342 +987 1.25 -29 7.17984 +988 1.25 -29 19.2349 +989 1.25 -29 25.8999 +990 1.25 -29 30.5964 +991 24.3292 -7.64217 26.6768 +992 -19.0812 -8.73972 5.00149 +993 12.4616 19.2785 3.4595 +994 17.7309 11.2524 3.75 +995 -17.5831 14.8085 6.1854 +996 -26.5763 -12.0524 13.7212 +997 -26.5763 -12.0524 35.9601 +998 -22.7593 29.1989 4.43929 +999 -22.7593 29.1989 8.41854 +1000 -21.0639 26.8653 10.4388 +1001 -22.7593 29.1989 11.5406 +1002 -22.7593 29.1989 15.3709 +1003 -22.7593 29.1989 19.7399 +1004 -22.7593 29.1989 24.0472 +1005 -22.7593 29.1989 32.109 +1006 -23.5747 -8.9742 39.6291 +1007 -22.7332 29.163 36.6439 +1008 31.9849 -9.07817 31.8798 +1009 0.25 -30.8559 44.9586 +1010 0.25 -27.916 32.6675 +1011 0.25 -29.1088 37.9459 +1012 0.25 -29.336 41.8286 +1013 -34.8028 -12.6224 21.2735 +1014 -24.8422 -8.33458 30.6236 +1015 -34.8028 -12.6224 28.7278 +1016 -34.7763 -12.6138 33.9452 +1017 27.9669 -7.77267 16.1442 +1018 -12.8248 16.5912 7.43283 +1019 0.25 -36.9732 41.2183 +1020 -20.6136 -3.99115 9.55835 +1021 23.6992 -7.96319 5.16876 +1022 11.92 18.5331 17.6851 +1023 19.1993 -8.44154 4.42498 +1024 -26.5763 -12.0524 9.65833 +1025 -26.5763 -12.0524 17.3954 +1026 -26.5763 -12.0524 3.94119 +1027 -20.2629 22.3602 41.1177 +1028 -26.5763 -12.0524 25.7449 +1029 -27.5274 -12.3614 6.18183 +1030 -27.5362 -12.3344 12.1485 +1031 -26.5763 -12.0524 39.4808 +1032 0.25 -22 41.3919 +1033 -31.0964 -11.4181 18.0919 +1034 -27.5274 -12.3614 16.9955 +1035 -27.5274 -12.3614 22.1595 +1036 -27.5274 -12.3614 26.062 +1037 19.5196 27.2918 25.8289 +1038 -26.5763 -12.0524 21.6509 +1039 -27.5274 -12.3614 34.6015 +1040 -27.5274 -12.3614 29.7795 +1041 -5.63215 -20.2071 6.69154 +1042 28.9153 -8.08082 17.5077 +1043 -19.7856 -6.96069 12.5795 +1044 -19.8204 -6.87265 9.12469 +1045 -2.36429 -20.8512 12.9514 +1046 -18.0903 24.4738 45 +1047 0.25 -30.2248 3.41201 +1048 -16.972 22.9346 31.4291 +1049 -16.3405 22.0654 41.1996 +1050 31.7136 -8.99002 5.83279 +1051 2.88266 -22.8186 10.5491 +1052 1.25 -29 3.58992 +1053 -32.3338 -10.7688 22.9897 +1054 20.647 3.78497 2.41279 +1055 -16.296 22.0042 45 +1056 1.25 -25.737 2.28333 +1057 1.25 -33.3749 34.2097 +1058 1.25 -25.8268 12.814 +1059 0.25 -24.2177 20.1697 +1060 -14.4924 20.3724 5.41388 +1061 24.0323 -7.54572 43.3858 +1062 -14.4852 20.3625 10.6596 +1063 20.7997 -9.81356 5.25285 +1064 15.0043 26.1808 14.5328 +1065 14.4165 25.3718 32.7424 +1066 0.25 -24.7285 30.319 +1067 -22.6198 -4.09437 3.68741 +1068 15.7405 22.0902 2.25761 +1069 1.25 -30 16.1147 +1070 1.25 -30 23.5955 +1071 1.25 -30 31.2655 +1072 1.25 -30 34.9171 +1073 1.25 -30 9.53523 +1074 -19.6751 21.5512 5.97039 +1075 0.25 -34.9445 18.6948 +1076 22.9476 -1.49963 2.98356 +1077 0.25 -29.6818 10.5015 +1078 -19.8675 26.92 0 +1079 1.25 -33.1376 23.0238 +1080 -20.5626 4.1896 7.12093 +1081 -27.5274 -12.3614 39.5263 +1082 32.2454 -9.16281 10.9995 +1083 25.1418 -6.85472 20.2433 +1084 1.25 -37 36.943 +1085 28.5849 -5.87056 18.2124 +1086 35.2663 -11.1959 3.8761 +1087 28.5849 -5.87056 14.7316 +1088 -19.6751 21.5512 27.8426 +1089 0.25 -34.3449 28.5682 +1090 0.25 -34.4917 23.9659 +1091 17.4897 24.4979 12.2696 +1092 -20.702 26.3673 19.7806 +1093 17.1437 24.0217 21.6191 +1094 16.6382 23.3259 17.3676 +1095 15.9684 22.404 20.0027 +1096 -20.6192 26.2533 42.1204 +1097 32.2454 -9.16281 29.2917 +1098 19.6606 27.4859 13.7016 +1099 13.9773 21.3646 22.9058 +1100 19.0664 26.6679 19.2445 +1101 18.5223 27.6204 19.2826 +1102 -31.6926 -11.6119 21.2646 +1103 31.9051 -9.05225 34.919 +1104 -27.1944 -10.1503 18.6393 +1105 18.6795 27.8368 45 +1106 -15.9997 19.8952 45 +1107 24.6382 -6.69111 45 +1108 -23.8657 -9.06874 45 +1109 32.2467 -9.16324 0 +1110 32.2467 -9.16324 45 +1111 1.25 -33.4581 0 +1112 21.5458 30.0806 8.00494 +1113 1.25 -33.5 45 +1114 1.25 -25.5 45 +1115 -31.4741 -11.5409 0 +1116 -31.4741 -11.5409 45 +1117 13.9773 21.3647 45 +1118 -20.702 26.3673 0 +1119 21.5381 30.07 11.4571 +1120 -20.702 26.3673 45 +1121 21.5458 30.0806 16.3489 +1122 21.5458 30.0806 23.0566 +1123 21.5458 30.0806 29.656 +1124 21.5458 30.0806 32.924 +1125 18.6754 27.831 0 +1126 -23.063 -7.75647 24.4444 +1127 -16.0158 16.4775 8.58697 +1128 -20.689 26.3494 36.3523 +1129 -17.0607 21.3555 21.3053 +1130 -32.2244 -10.7332 19.4248 +1131 -20.6038 -4.02494 6.32598 +1132 1.25 -25.9607 5.48071 +1133 -13.9425 17.0636 41.5242 +1134 0.25 -25 14.4438 +1135 1.25 -25.9607 8.86449 +1136 10.0774 18.4209 7.21635 +1137 -0.25 -25 3.40384 +1138 1.25 -29 38.1283 +1139 35.2876 -11.2028 29.9378 +1140 14.7406 20.714 45 +1141 35.5754 -10.2448 3.44603 +1142 3.25 -30 30.2962 +1143 1.25 -37 14.681 +1144 0.25 -37 34.3088 +1145 19.0352 28.3263 27.8522 +1146 28.9153 -8.08083 25.4749 +1147 -29.4589 -9.83464 3.13007 +1148 20.7368 30.6684 28.8037 +1149 -21.9503 29.7867 29.3119 +1150 24.2007 -7.60041 32.1788 +1151 -15.3756 20.7373 30.8904 +1152 -20.537 -7.98722 30.4672 +1153 21.0005 -6.56061 36.6603 +1154 15.5675 -16.9128 8.70384 +1155 0.25 -30.6116 31.189 +1156 -16.7032 20.8634 31.8879 +1157 -26.5763 -12.0524 31.8428 +1158 -27.1944 -10.1503 6.39826 +1159 3.25 -30 37.1593 +1160 15.0043 26.1808 37.2838 +1161 22.5559 4.45261 10.8633 +1162 -18.057 22.7268 6.75555 +1163 32.0287 -10.1439 0 +1164 32.0287 -10.1439 45 +1165 19.7162 29.2637 7.85896 +1166 13.4486 20.637 24.9215 +1167 3.24588 -30 6.5754 +1168 -19.0422 -12.8434 3.42144 +1169 0.25 -25.5993 37.4726 +1170 1.25 -22.9214 7.16536 +1171 12.729 17.9453 41.6166 +1172 8.13447 -19.3353 7.66119 +1173 6.196 -22.1227 9.06129 +1174 -20.3793 27.6244 27.2507 +1175 25.0763 -6.83347 13.5408 +1176 -31.8955 -11.6778 13.8895 +1177 0.25 -35.2011 12.7041 +1178 29.536 -6.17958 35.4192 +1179 19.9613 27.8997 42.8156 +1180 31.704 -8.9869 22.0888 +1181 0.25 -25.7077 27.5984 +1182 -31.9208 -10.6346 45 +1183 -31.8548 -10.6131 0 +1184 18.7389 26.2172 33.9555 +1185 -28.7189 -9.59422 15.5042 +1186 0.25 -32.6185 18.9528 +1187 19.6411 -11.9209 10.9143 +1188 -13.1335 17.6514 41.6669 +1189 1.25 -29 22.5674 +1190 15.2151 -17.2044 12.0112 +1191 14.5957 22.2159 7.69734 +1192 -21.7303 27.7826 7.40627 +1193 15.0043 26.1808 21.9927 +1194 -14.737 19.8584 43.0998 +1195 20.9586 -1.04896 7.78965 +1196 23.8537 -7.48766 3.31899 +1197 27.9669 -7.77267 8.48519 +1198 -27.1944 -10.1503 25.6497 +1199 1.25 -31.5614 2.37343 +1200 -18.057 22.7268 32.4614 +1201 -18.057 22.7268 39.0797 +1202 -18.6448 23.5358 6.85599 +1203 -15.0126 20.2377 21.9263 +1204 -29.714 -9.91752 9.7791 +1205 3.08403 -22.7802 7.264 +1206 -23.8537 -7.48766 6.4337 +1207 -11.2323 17.6945 8.47182 +1208 -20.6793 26.3361 13.6608 +1209 -20.0203 27.1303 45 +1210 -21.9503 29.7867 26.3744 +1211 -35.1118 -11.6714 3.28181 +1212 -16.0253 21.6316 24.1263 +1213 -35.1118 -11.6714 35.176 +1214 -35.1118 -11.6714 41.7253 +1215 -17.0754 -12.1546 3.26222 +1216 -35.1118 -11.6714 9.83686 +1217 27.9669 -7.77267 26.9301 +1218 -23.015 -8.79236 20.5295 +1219 25.5209 -8.02938 38.9868 +1220 -15.868 21.4151 38.0311 +1221 -14.4841 17.809 12.1077 +1222 -22.8854 -7.69879 36.418 +1223 -15.8758 13.7107 11.7562 +1224 -20.0398 -11.1957 3.1397 +1225 -18.9584 -9.01953 11.7567 +1226 -20.2629 22.3602 4.21443 +1227 19.782 27.653 1.52266 +1228 14.7443 17.5938 6.80984 +1229 -23.8704 -8.01883 38.7955 +1230 24.296 -7.63139 41.0123 +1231 -17.7544 24.0115 3.21799 +1232 -14.3465 15.3323 11.7873 +1233 -13.9425 17.0636 34.6232 +1234 14.4924 20.3724 13.5827 +1235 13.7121 18.4477 11.7896 +1236 1.25 -31.7899 37.5786 +1237 29.2114 -9.22852 6.42538 +1238 21.3095 -5.60955 41.2929 +1239 33.9115 -9.7026 37.0477 +1240 1.25 -25.7751 36.994 +1241 0.25 -37 13.0539 +1242 -18.057 22.7268 14.572 +1243 -13.1335 17.6514 38.3339 +1244 -18.6448 23.5358 23.9143 +1245 0.25 -34.9928 42.5265 +1246 -20.2181 25.7013 28.0361 +1247 -22.6173 -4.11425 11.2302 +1248 -13.3076 18.7416 11.6268 +1249 0.25 -31.7094 4.8032 +1250 -28.1454 -10.4593 11.6895 +1251 29.4983 -9.32173 11.5927 +1252 30.6194 -8.63452 37.0457 +1253 -13.1335 17.6514 35.1732 +1254 -21.6858 27.7213 22.1004 +1255 17.0868 23.9434 5.26675 +1256 16.0345 24.1962 41.8417 +1257 16.0345 24.1962 3.15828 +1258 16.7357 12.6222 3.36381 +1259 35.5754 -10.2448 37.3552 +1260 -28.1454 -10.4593 18.014 +1261 -21.4015 -8.30134 3.14683 +1262 -7.37121 21.7409 2.5997 +1263 6.40662 22.0543 11.25 +1264 -10.0462 20.6417 12.545 +1265 -9.11034 21.0821 3.36682 +1266 -15.9602 19.8408 38.5079 +1267 -0.467199 -20.9706 6.71316 +1268 -30.7399 -10.2509 21.3178 +1269 1.25 -35.2228 30.8376 +1270 -18.0485 -10.6746 3.75 +1271 -4.57487 20.4637 3.75 +1272 -4.1929 20.5366 11.4325 +1273 3.25227 20.7161 3.52512 +1274 3.26037 20.7145 11.1792 +1275 0.616098 20.9612 4.51073 +1276 1.00226 20.9369 10.4583 +1277 -2.06512 20.8701 4.23014 +1278 -2.20856 20.861 12.0362 +1279 -20.2629 22.3602 22.3579 +1280 -6.29677 19.9912 2.99752 +1281 -5.97994 20.0941 10.8746 +1282 5.83884 20.1399 3.83878 +1283 5.84952 20.1365 11.25 +1284 0.25 -32.9173 36.9222 +1285 -10.4623 -18.1832 10.4548 +1286 -17.3434 11.7858 11.25 +1287 21.3095 -5.60955 24.1755 +1288 -31.024 -11.3946 29.065 +1289 1.25 -37 30.524 +1290 21.0775 -5.67402 12.4191 +1291 -16.4836 22.2625 18.2312 +1292 -20.2629 22.3602 33.1185 +1293 -32.7466 -10.9029 33.7818 +1294 1.25 -31.5936 20.9214 +1295 -29.8661 -11.0184 12.5913 +1296 -28.1454 -10.4593 41.8889 +1297 -27.1944 -10.1503 32.0724 +1298 29.536 -6.17958 41.8922 +1299 28.5849 -5.87056 31.6018 +1300 -13.538 17.3575 28.9488 +1301 18.7873 26.2838 0 +1302 0.25 -27.9765 25.7122 +1303 10.8779 20.2504 11.9514 +1304 -17.3756 15.0294 3.03634 +1305 -27.5274 -12.3614 3.09091 +1306 -18.6448 23.5358 27.0044 +1307 -20.5653 -10.2399 9.33225 +1308 -26.1584 -8.76225 13.0373 +1309 -19.517 -12.1466 5.28217 +1310 -20.7733 28.1667 32.1706 +1311 -17.7218 14.6608 11.25 +1312 -14.5666 19.6239 39.7322 +1313 -11.7317 19.7417 12.5722 +1314 -9.43567 18.7229 3.17605 +1315 -10.6357 18.0731 11.9792 +1316 -8.24927 21.4556 12.0185 +1317 -7.62219 19.5605 4.96071 +1318 -8.21526 19.2972 10.2509 +1319 -6.32979 22.0792 5.11022 +1320 -6.21802 22.1156 10.7576 +1321 -0.124349 22.9922 3.41364 +1322 5.98508 22.1912 3.9777 +1323 8.3201 19.2479 12.1898 +1324 8.46751 21.3846 3.35822 +1325 10.2736 -18.3029 11.1981 +1326 9.91764 18.4961 4.2102 +1327 10.287 18.2944 9.89864 +1328 12.5786 -16.7949 9.78797 +1329 17.7309 -11.2524 3.75 +1330 17.8856 10.971 11.8509 +1331 19.6893 -11.8332 3.11059 +1332 -17.3608 23.4698 34.4301 +1333 23.4247 -6.29683 18.933 +1334 -18.0546 -10.6635 7.04168 +1335 18.9506 28.2099 34.3164 +1336 -13.3076 18.7416 3.06257 +1337 -20.846 -7.03614 41.9416 +1338 1.25 -25.9607 10.8849 +1339 -0.25 -24.9926 9.59167 +1340 20.7368 30.6684 41.9468 +1341 20.7368 30.6684 35.8405 +1342 -26.5763 -12.0524 28.7939 +1343 -20.2629 22.3602 14.8755 +1344 1.25 -26.0094 14.9088 +1345 30.581 -8.62202 15.5255 +1346 21.7821 -7.34029 11.9581 +1347 14.1577 21.613 15.3188 +1348 -24.3038 -9.2111 0 +1349 -16.2706 20.2679 0 +1350 25.0763 -6.83347 0 +1351 14.2481 21.7373 0 +1352 1.25 -25.9607 0 +1353 23.9864 -7.53079 21.8632 +1354 1.25 -23.8591 42.5957 +1355 -14.0701 18.9405 29.4345 +1356 -26.784 -8.96552 29.4558 +1357 -5.6895 -22.2746 3.02372 +1358 18.1551 25.4137 27.8433 +1359 -18.6448 23.5358 15.0992 +1360 -27.8489 -9.31154 42.1199 +1361 21.3095 -5.60955 17.9418 +1362 19.595 29.0968 36.5764 +1363 0.25 -33.981 0 +1364 21.5458 30.0806 41.981 +1365 21.5458 30.0806 35.943 +1366 20.0626 28.0392 3.8494 +1367 0.25 -35.0151 7.28732 +1368 31.4166 -9.94504 26.4993 +1369 3.25 -29 8.82724 +1370 -34.8028 -12.6224 3.66283 +1371 -30.0088 -11.0648 23.7622 +1372 16.0345 24.1962 9.32944 +1373 14.5941 20.5124 38.1542 +1374 0.25 -22 34.7794 +1375 -19.4282 -12.3082 12.1645 +1376 -28.1454 -10.4593 5.5142 +1377 -15.767 -13.8266 2.48205 +1378 -27.6531 -9.24792 34.8075 +1379 1.25 -24.1428 37.4917 +1380 14.4924 20.3724 7.82465 +1381 -19.6751 21.5512 42.0102 +1382 23.8537 -7.48766 14.5118 +1383 20.6969 -10.0004 8.23078 +1384 -19.6751 21.5512 2.9852 +1385 -18.6448 23.5358 33.0775 +1386 -18.6448 23.5358 39.0439 +1387 0.25 -27.7497 0 +1388 1.25 -31.7935 42.7036 +1389 29.536 -6.17958 2.97689 +1390 -22.2644 -8.54845 37.0951 +1391 1.83086 -20.8848 10.2643 +1392 0.25 -29.4038 24.2562 +1393 0.25 -34.0412 44.9755 +1394 1.25 -22.0014 22.0288 +1395 0.25 -24.8767 32.3903 +1396 -14.6085 -15.0602 7.77197 +1397 10.964 20.2098 2.90555 +1398 -20.6037 27.9332 24.6395 +1399 1.25 -35.2292 42.9182 +1400 -14.7307 18.1485 20.2405 +1401 27.8433 -8.78399 28.7029 +1402 1.25 -25.544 31.0958 +1403 26.5611 -7.31591 41.2787 +1404 16.6223 25.0052 42.0756 +1405 33.2455 -10.5393 2.00855 +1406 22.7541 -7.13039 19.7472 +1407 29.2219 -7.14647 19.1092 +1408 -20.8845 28.3197 20.4605 +1409 -26.6136 -8.91015 43.6638 +1410 1.25 -32.8853 15.5216 +1411 -25.3408 -9.54802 37.3446 +1412 1.25 -27.0188 42.723 +1413 -31.3593 -11.5035 6.84999 +1414 3.25 -29 2.84953 +1415 -21.5465 27.5296 30.237 +1416 35.2663 -11.1959 42.098 +1417 35.2663 -11.1959 36.294 +1418 -20.537 -7.98719 37.3239 +1419 1.25 -31.7228 25.9252 +1420 16.6702 15.7806 13.0188 +1421 -22.7593 29.1989 39.5815 +1422 0.25 -25 7.66624 +1423 29.9792 -9.478 33.1982 +1424 -21.9503 29.7867 2.88049 +1425 -13.9425 17.0636 28.7542 +1426 0.25 -34.9245 35.7697 +1427 -28.958 -9.67189 21.6667 +1428 18.2411 27.2333 8.03067 +1429 1.25 -35.0936 20.3822 +1430 15.8584 16.6451 7.13259 +1431 1.25 -22 32.6408 +1432 -19.6337 24.8969 22.3245 +1433 -26.5763 -12.0524 6.79976 +1434 -21.8805 27.9893 12.7701 +1435 8.47666 21.3803 6.69938 +1436 -25.9465 -8.6934 36.5963 +1437 22.9965 -7.20916 38.7247 +1438 -32.9617 -10.9728 37.0114 +1439 14.4165 25.3718 7.43019 +1440 -11.7418 17.3712 2.18298 +1441 19.9786 27.9235 39.9335 +1442 -2.06623 -20.87 2.27606 +1443 14.2174 15.4391 2.82648 +1444 0.25 -27.2189 8.78742 +1445 -27.5274 -12.3614 9.09915 +1446 -14.8969 20.0785 5.79705 +1447 0.25 -27.1121 15.5686 +1448 -34.8028 -12.6224 42.1748 +1449 -0.25 -25 6.91591 +1450 -30.0846 -10.038 13.8887 +1451 -2.65686 -20.8297 10.142 +1452 1.25 -32.645 35.8736 +1453 -17.5023 23.6645 23.5394 +1454 18.489 25.8733 23.7587 +1455 -10.6684 18.0524 2.71913 +1456 35.5754 -10.2448 19.1109 +1457 14.0083 19.7061 42.7091 +1458 28.5849 -5.87056 11.9385 +1459 -25.2642 -8.47168 7.62044 +1460 0.25 -31.3506 12.3078 +1461 -15.9084 19.7695 25.5504 +1462 29.536 -6.17958 29.2688 +1463 33.3642 -10.5779 31.4542 +1464 27.788 -8.76603 34.244 +1465 15.3918 21.6104 7.1431 +1466 10.5586 20.4006 8.66629 +1467 12.729 17.9453 23.7143 +1468 13.9416 19.6143 40.0028 +1469 -16.1626 21.8206 1.55701 +1470 -13.1335 17.6514 29.2478 +1471 -33.3341 -11.0938 42.9629 +1472 29.1403 -9.2054 20.487 +1473 33.9107 -9.70391 4.76467 +1474 17.634 26.3977 12.9078 +1475 14.4165 25.3718 41.6496 +1476 -13.3076 18.7416 8.87595 +1477 12.9126 19.8992 20.4329 +1478 0.25 -30.6426 35.714 +1479 0.25 -27.1758 12.222 +1480 29.7824 -9.41404 38.8239 +1481 27.1919 -8.57232 6.41844 +1482 -32.9983 -12.0361 1.97347 +1483 -27.5274 -12.3614 42.387 +1484 -32.98 -10.9787 28.999 +1485 27.9669 -7.77267 41.0719 +1486 33.4282 -10.5987 43.0724 +1487 -19.6751 21.5512 16.9175 +1488 0.25 -37 19.1215 +1489 -14.4924 20.3724 2.70694 +1490 -30.5922 -10.2029 38.3962 +1491 -34.7895 -12.6181 36.6474 +1492 -24.4678 -9.2644 7.34909 +1493 -14.2134 19.1378 19.6209 +1494 23.8511 -6.43536 7.32722 +1495 -32.955 -12.022 30.6814 +1496 15.0755 22.8763 2.14146 +1497 -12.783 17.74 8.50297 +1498 -15.0223 20.2511 45 +1499 -18.057 22.7268 17.2615 +1500 13.4881 20.6913 12.9546 +1501 17.4904 26.2001 25.4506 +1502 29.2289 -7.12468 23.8307 +1503 25.9929 -8.18276 27.9664 +1504 -27.5274 -12.3614 14.5345 +1505 -26.5763 -12.0524 42.3153 +1506 0.25 -24.8991 24.4144 +1507 17.6819 26.4637 17.7442 +1508 19.8629 27.7643 7.26656 +1509 30.4927 -8.59334 27.3625 +1510 3.25 -29 21.0482 +1511 25.9895 -8.18162 15.2825 +1512 0.25 -34.4486 25.9788 +1513 26.2605 -7.21823 6.72854 +1514 17.0328 23.8689 40.4517 +1515 28.732 -9.07276 22.8317 +1516 0.25 -24.7839 45 +1517 -21.9454 -6.86764 7.91186 +1518 28.9185 -8.08027 42.3627 +1519 28.9194 -8.07744 37.0881 +1520 32.4292 -9.22253 42.2503 +1521 28.9173 -8.08147 2.63729 +1522 28.916 -8.08104 7.91186 +1523 15.0043 26.1808 2.63729 +1524 16.6223 25.0052 2.63729 +1525 16.6223 25.0052 7.91186 +1526 -34.8028 -12.6224 8.52882 +1527 13.6522 20.9172 27.3319 +1528 0.25 -32.5217 42.8829 +1529 20.9834 -9.35752 2.94546 +1530 1.25 -31.75 7.57677 +1531 -14.4888 20.3675 8.03673 +1532 35.5754 -10.2448 31.7474 +1533 -14.7962 18.2386 28.2338 +1534 -22.2538 -5.62932 12.9698 +1535 -27.7878 -9.29169 27.2737 +1536 15.0043 26.1808 7.77957 +1537 1.25 -23.8883 20.7946 +1538 -34.7895 -12.6181 31.3365 +1539 17.8145 24.9449 32.4108 +1540 32.7514 -10.3788 5.7544 +1541 11.92 18.5331 25.3357 +1542 14.8969 20.0785 5.25197 +1543 21.0005 -6.56061 25.1149 +1544 -14.2645 19.208 36.5983 +1545 0.25 -31.3233 17.0952 +1546 15.207 23.0573 36.5124 +1547 17.68 26.4611 43.1413 +1548 -20.846 -7.03614 31.7019 +1549 3.25 -30 24.2699 +1550 0.25 -37 2.58071 +1551 -29.944 -11.0437 43.2279 +1552 0.25 -30.0844 33.6019 +1553 21.0005 -6.56061 30.2897 +1554 -15.5538 20.9827 19.615 +1555 -34.8028 -12.6224 18.6975 +1556 22.1858 -5.89427 12.4286 +1557 1.25 -26.7309 20.872 +1558 -21.9503 29.7867 31.9331 +1559 13.516 20.7298 1.78499 +1560 -27.1944 -10.1503 12.3802 +1561 12.168 17.1008 9.68904 +1562 33.4817 -10.616 24.5734 +1563 -35.1118 -11.6714 26.4893 +1564 -29.1018 -9.71863 40.0109 +1565 -21.5195 27.4925 4.71099 +1566 -29.6696 -10.9545 1.97347 +1567 25.8902 -7.0979 31.2698 +1568 -28.4517 -9.50738 37.1 +1569 35.2663 -11.1959 9.28354 +1570 15.7147 22.0548 22.0728 +1571 -17.0231 21.3038 43.4588 +1572 15.2637 23.1353 21.3836 +1573 22.178 -5.89173 2.5256 +1574 -30.3765 -10.1328 17.2174 +1575 19.3013 26.9913 28.2617 +1576 11.92 18.5331 20.4547 +1577 22.5534 -7.06517 25.8394 +1578 -30.143 -10.0569 42.9629 +1579 -33.0093 -12.0397 35.6491 +1580 1.25 -30 42.4793 +1581 1.25 -30 37.4378 +1582 19.7373 29.2927 43.1413 +1583 -26.9048 -9.00478 20.6828 +1584 3.25 -29 34.7699 +1585 19.1893 28.5384 5.787 +1586 30.2151 -8.50313 23.6109 +1587 -21.6269 27.6403 27.2812 +1588 -19.4538 22.948 27.7924 +1589 25.0633 -7.88069 19.5085 +1590 28.5849 -5.87056 6.63627 +1591 21.0005 -6.56061 19.7799 +1592 -27.2781 -9.12605 25.6779 +1593 -0.25 -22.9843 2.50198 +1594 -0.272895 -22.9829 8.22017 +1595 15.6373 16.8551 12.4869 +1596 -21.6889 27.7256 2.13781 +1597 28.9176 -8.07842 31.9547 +1598 -0.25 -22.9843 12.504 +1599 0.25 -27.2291 5.83314 +1600 -20.0577 -6.15627 2.23638 +1601 0.25 -34.4988 21.6565 +1602 0.25 -29.905 22.0909 +1603 -20.2629 22.3602 38.6357 +1604 21.3095 -5.60955 29.7793 +1605 0.25 -31.3451 39.0681 +1606 15.0007 22.7733 43.2606 +1607 17.5701 24.6085 42.9399 +1608 0.25 -23.646 43.1588 +1609 14.8275 22.5349 13.2468 +1610 20.7326 30.6626 2.46558 +1611 -19.6751 21.5512 8.43515 +1612 -14.8192 18.2703 33.2953 +1613 -17.1312 21.4525 26.6821 +1614 -27.5274 -12.3614 37.0639 +1615 12.9435 19.9418 43.2606 +1616 15.7339 22.0812 32.1835 +1617 14.8969 20.0785 10.3127 +1618 27.9112 -8.80605 39.5131 +1619 -16.3408 22.0659 0 +1620 -28.1454 -10.4593 28.5321 +1621 -28.1454 -10.4593 23.6191 +1622 -0.0963795 -22.0138 13.3582 +1623 -14.9391 18.4353 43.2265 +1624 -14.8969 20.0785 10.6337 +1625 2.25 -29 21.4738 +1626 -17.4635 21.9099 12.9153 +1627 27.9669 -7.77267 2.44443 +1628 23.8537 -7.48766 9.08083 +1629 -16.388 -13.1007 8.06786 +1630 15.162 22.9953 17.0517 +1631 -30.9166 -11.3597 34.9816 +1632 30.0593 -9.50402 16.1148 +1633 13.4881 20.6913 9.20459 +1634 -18.8366 25.5011 4.9853 +1635 26.3018 -8.28313 17.7683 +1636 30.3798 -9.60815 43.2396 +1637 -18.8284 25.4898 1.68414 +1638 -18.866 22.139 33.5644 +1639 -19.7031 24.9925 34.4467 +1640 14.4924 20.3724 2.41636 +1641 0.25 -23.6515 39.4581 +1642 -19.894 25.2551 40.7038 +1643 -33.3151 -12.139 43.1621 +1644 -18.3061 24.7709 28.5258 +1645 -27.5274 -12.3614 32.1905 +1646 1.25 -33.3436 20.6518 +1647 25.4068 -7.9923 1.30325 +1648 22.178 -5.89173 7.45419 +1649 -18.0591 22.7297 26.75 +1650 14.7754 16.0914 7.85165 +1651 14.102 15.5345 12.5148 +1652 29.3271 -9.26612 41.4582 +1653 -14.1766 19.0871 33.3947 +1654 0.25 -25 2.49594 +1655 17.5596 26.2953 29.4799 +1656 1.25 -30 2.38381 +1657 1.25 -30 7.15143 +1658 30.1318 -9.52756 1.98035 +1659 28.5849 -5.87056 37.4956 +1660 -20.537 -7.98719 42.6191 +1661 1.25 -33.5399 42.62 +1662 0.25 -29.2981 16.2669 +1663 -25.1596 -9.48915 2.2937 +1664 14.8969 20.0785 15.0621 +1665 -16.2386 20.2239 4.91371 +1666 1.25 -22 42.6412 +1667 16.6223 25.0052 17.3745 +1668 16.6223 25.0052 25.3418 +1669 -15.6087 19.357 32.895 +1670 -19.6751 21.5512 21.9782 +1671 1.25 -29 28.2482 +1672 -18.142 24.545 8.48961 +1673 -21.9503 29.7867 8.10497 +1674 3.25 -30 12.3118 +1675 0.25 -27.3409 10.5253 +1676 -15.391 19.0573 9.97067 +1677 -16.4847 20.5627 9.89796 +1678 16.4243 23.0314 23.616 +1679 -17.14 23.1659 29.1214 +1680 1.25 -29 16.9105 +1681 -23.6992 -7.96319 7.61964 +1682 -27.2536 -9.1181 8.61983 +1683 -18.4406 -13.6714 1.67694 +1684 33.966 -9.72188 30.5554 +1685 0.25 -23.5609 33.5948 +1686 15.0043 26.1808 31.5592 +1687 35.2663 -11.1959 24.333 +1688 -20.846 -7.03614 36.5831 +1689 -29.9167 -11.0348 39.7918 +1690 -23.6992 -7.96319 15.204 +1691 -26.1553 -8.76123 18.4498 +1692 14.4165 25.3718 2.29168 +1693 -16.79 20.9829 23.5962 +1694 1.25 -27.2639 24.4081 +1695 0.25 -22.0136 19.7888 +1696 0.25 -28.1753 35.1477 +1697 1.25 -31.2199 14.2353 +1698 29.536 -6.17958 24.3743 +1699 15.3527 21.5566 15.7448 +1700 -15.7237 21.2164 6.66439 +1701 -22.3765 -7.53345 40.5016 +1702 33.5303 -10.6318 10.7321 +1703 35.5754 -10.2448 9.171 +1704 21.7981 -7.34548 6.64448 +1705 17.5377 26.2652 32.606 +1706 15.7291 22.0745 11.8188 +1707 1.25 -37 42.7329 +1708 -27.516 -12.3577 19.8374 +1709 -29.7758 -10.989 16.2032 +1710 30.5496 -8.61182 20.0225 +1711 -19.5762 24.8178 1.60956 +1712 -17.3801 21.7951 33.8292 +1713 26.1026 -8.21841 36.7959 +1714 -19.5113 24.7285 5.16676 +1715 29.536 -6.17958 19.3561 +1716 15.3774 21.5905 36.6744 +1717 -18.9867 25.7077 43.4394 +1718 -24.2864 -9.20546 15.4 +1719 13.7121 18.4477 6.33137 +1720 -33.1584 -12.0881 27.6918 +1721 -13.1335 17.6514 19.8254 +1722 -13.1335 17.6514 24.2374 +1723 -21.3903 -8.32979 8.53637 +1724 -0.125585 -20.9921 12.7086 +1725 -33.5171 -11.1533 40.1845 +1726 25.679 -8.08076 12.6737 +1727 -0.25 -25 15.2636 +1728 16.6223 25.0052 12.7838 +1729 1.25 -35.0576 10.1331 +1730 -17.0451 23.0352 39.3154 +1731 11.92 18.5331 42.768 +1732 14.4165 25.3718 26.5591 +1733 0.25 -28.0639 30.7961 +1734 -20.2629 22.3602 12.6395 +1735 -21.9366 -6.86477 12.5248 +1736 1.25 -22.9214 13.0137 +1737 0.25 -30.8237 20.2048 +1738 15.7962 22.1669 0 +1739 14.4165 25.3718 12.4946 +1740 0.25 -28.5347 20.8365 +1741 25.6725 -8.07863 10.6156 +1742 -20.2629 22.3602 27.7037 +1743 3.25 -30 42.526 +1744 -27.8028 -11.5138 18.917 +1745 -26.8854 -11.1014 1.97059 +1746 -25.5205 -9.60643 16.2722 +1747 -27.1944 -10.1503 37.3868 +1748 -27.1944 -10.1503 41.7965 +1749 13.7331 17.2819 13.6663 +1750 -21.8615 27.9632 40.83 +1751 -18.0591 22.7297 22.1494 +1752 0.25 -27.1222 18.0694 +1753 -14.8969 20.0785 15.3024 +1754 28.4266 -8.52827 23.3205 +1755 30.5813 -8.62214 3.95593 +1756 0.25 -31.4709 14.54 +1757 21.7981 -7.34548 2.18633 +1758 -15.5343 19.2546 13.8697 +1759 -20.2629 22.3602 17.0474 +1760 29.3005 -9.25746 3.75646 +1761 -32.9605 -12.0238 4.60789 +1762 -27.1036 -9.06937 14.1512 +1763 -25.4376 -8.52806 40.6799 +1764 -29.9931 -10.0082 33.5541 +1765 15.0043 26.1808 42.8501 +1766 3.25 -29 39.7055 +1767 18.7415 26.2208 42.9211 +1768 17.6939 26.4802 1.36251 +1769 0.25 -26.4879 1.41038 +1770 -25.9603 -9.74932 11.508 +1771 22.5313 -4.54862 13.3942 +1772 13.2105 20.3093 17.798 +1773 27.5368 -8.68441 19.5695 +1774 26.976 -8.50218 23.5664 +1775 -15.3233 18.9641 16.1476 +1776 -19.1727 25.9637 41.8008 +1777 1.25 -35.2231 4.37693 +1778 -29.5869 -10.9276 19.6989 +1779 25.9721 -7.12451 43.6001 +1780 -24.9776 -8.37858 14.5154 +1781 17.8365 26.6764 39.9669 +1782 16.5815 23.2479 36.2675 +1783 13.3498 19.2076 1.70642 +1784 -13.9425 17.0636 19.7319 +1785 -26.7884 -8.96695 45 +1786 23.5028 -6.3222 16.886 +1787 28.5784 -5.89056 2.06357 +1788 -19.8543 25.2006 10.2984 +1789 -26.5763 -12.0524 33.9015 +1790 -13.9425 17.0636 23.6264 +1791 16.6223 25.0052 37.1015 +1792 16.6223 25.0052 33.0024 +1793 26.8434 -8.4591 45 +1794 -17.2008 21.5483 1.33712 +1795 27.9669 -7.77267 36.3057 +1796 27.9669 -7.77267 32.2365 +1797 0.558403 -23.4127 1.5075 +1798 -27.0519 -12.2069 1.97059 +1799 27.9669 -7.77267 18.1756 +1800 1.25 -29 9.20021 +1801 -19.6751 21.5512 33.2986 +1802 13.5188 19.0324 19.0924 +1803 21.5458 30.0806 2.00123 +1804 28.9153 -8.08082 15.5159 +1805 28.9153 -8.08082 19.4995 +1806 28.9153 -8.08083 23.4831 +1807 -30.3062 -10.1099 19.0334 +1808 -26.0092 -9.76522 41.1412 +1809 0.25 -35.113 4.24977 +1810 22.8904 -6.87465 8.10324 +1811 23.6272 -6.3626 1.2628 +1812 17.3176 24.2609 35.573 +1813 -32.6878 -11.9352 24.7014 +1814 -26.5763 -12.0524 1.97839 +1815 14.4924 20.3724 15.2771 +1816 28.6998 -8.61908 19.6186 +1817 17.23 24.1404 23.6577 +1818 -28.1454 -10.4593 36.8305 +1819 -18.057 22.7268 12.6299 +1820 1.25 -35.2754 16.3613 +1821 -19.6805 24.9613 43.2718 +1822 -18.6448 23.5358 21.9773 +1823 1.25 -35.3965 1.66078 +1824 22.6006 -7.08051 28.6571 +1825 25.8603 -8.13968 30.0213 +1826 22.4622 -7.03554 23.4822 +1827 -22.7593 29.1989 6.51312 +1828 -19.4779 22.9305 16.2761 +1829 16.0345 24.1962 36.7745 +1830 -16.7911 22.6857 43.2265 +1831 25.4443 -8.00447 0 +1832 -32.5947 -10.8535 12.2029 +1833 23.031 -6.16889 27.9979 +1834 12.4616 19.2785 9.375 +1835 1.25 -30 17.9849 +1836 1.28257 -30 20.902 +1837 -27.1944 -10.1503 20.4879 +1838 -27.1944 -10.1503 16.7908 +1839 1.25 -29 39.967 +1840 22.6648 -7.10139 27.1947 +1841 33.749 -9.65136 7.17682 +$EndNodes +$Elements +4728 +1 4 0 351 389 349 634 +2 4 0 454 736 374 927 +3 4 0 532 1581 1478 1072 +4 4 0 150 146 148 161 +5 4 0 859 989 321 1302 +6 4 0 113 117 351 459 +7 4 0 1271 135 1280 131 +8 4 0 1026 1814 1798 1745 +9 4 0 1052 397 887 987 +10 4 0 349 339 114 1285 +11 4 0 588 1020 1247 586 +12 4 0 938 451 1472 974 +13 4 0 239 649 1443 227 +14 4 0 925 786 561 294 +15 4 0 1401 1217 452 1146 +16 4 0 1027 1386 706 1201 +17 4 0 797 1201 1027 706 +18 4 0 823 19 39 845 +19 4 0 586 862 845 587 +20 4 0 838 1256 242 248 +21 4 0 1323 204 208 196 +22 4 0 1221 104 94 107 +23 4 0 1676 809 326 966 +24 4 0 827 571 1525 950 +25 4 0 639 1307 808 346 +26 4 0 394 1512 679 698 +27 4 0 603 803 507 893 +28 4 0 439 399 1534 1247 +29 4 0 1004 1254 1398 696 +30 4 0 207 203 1397 1324 +31 4 0 238 226 1190 212 +32 4 0 1672 701 1162 964 +33 4 0 1136 1327 361 360 +34 4 0 848 356 664 335 +35 4 0 775 702 1819 1242 +36 4 0 372 369 785 1330 +37 4 0 513 223 231 233 +38 4 0 754 694 1672 1788 +39 4 0 1499 753 790 1242 +40 4 0 591 952 616 954 +41 4 0 1093 444 466 467 +42 4 0 834 189 643 177 +43 4 0 813 800 486 1041 +44 4 0 388 1441 373 1781 +45 4 0 1838 1104 328 334 +46 4 0 581 703 704 914 +47 4 0 881 1042 1017 1804 +48 4 0 363 1328 927 362 +49 4 0 590 793 580 702 +50 4 0 821 780 849 493 +51 4 0 540 989 948 907 +52 4 0 1460 715 1697 936 +53 4 0 134 130 460 1045 +54 4 0 1697 1460 976 1756 +55 4 0 686 710 672 5 +56 4 0 728 223 806 1783 +57 4 0 1799 1017 906 1635 +58 4 0 1278 664 335 355 +59 4 0 1054 558 559 828 +60 4 0 839 1179 957 1767 +61 4 0 1235 1749 224 216 +62 4 0 951 505 499 1629 +63 4 0 1124 1335 322 1365 +64 4 0 1034 1838 675 689 +65 4 0 1071 1671 1142 907 +66 4 0 1257 1524 864 241 +67 4 0 1602 717 1392 1189 +68 4 0 1755 1658 504 1760 +69 4 0 843 416 468 405 +70 4 0 746 623 1403 1230 +71 4 0 1786 285 308 1333 +72 4 0 901 368 1187 371 +73 4 0 1453 1212 1129 773 +74 4 0 689 333 1762 1560 +75 4 0 1620 1198 1535 677 +76 4 0 1028 677 1620 1342 +77 4 0 1047 1249 1199 887 +78 4 0 453 1204 383 687 +79 4 0 1308 333 1560 1762 +80 4 0 666 1015 1720 1495 +81 4 0 620 928 844 1812 +82 4 0 1055 1571 1194 1106 +83 4 0 291 1573 1811 295 +84 4 0 1780 637 328 1308 +85 4 0 1407 1805 781 1799 +86 4 0 781 1816 1773 1799 +87 4 0 1011 1236 1478 1581 +88 4 0 307 1757 900 1196 +89 4 0 776 1155 1071 859 +90 4 0 1424 1596 323 1565 +91 4 0 551 1781 839 388 +92 4 0 423 721 679 394 +93 4 0 224 234 232 217 +94 4 0 224 217 232 216 +95 4 0 1484 1495 667 666 +96 4 0 1262 127 121 131 +97 4 0 187 191 1324 195 +98 4 0 398 1660 568 1006 +99 4 0 1694 1189 1392 717 +100 4 0 116 128 1264 122 +101 4 0 1323 198 196 208 +102 4 0 666 1495 667 1015 +103 4 0 207 195 1324 197 +104 4 0 342 762 1007 771 +105 4 0 762 1642 342 1386 +106 4 0 1053 665 1013 1813 +107 4 0 1376 687 453 383 +108 4 0 863 1227 1768 402 +109 4 0 863 402 1524 571 +110 4 0 495 525 1152 497 +111 4 0 1688 1222 1390 824 +112 4 0 1473 1141 610 1086 +113 4 0 366 372 404 369 +114 4 0 454 736 211 374 +115 4 0 122 1316 132 128 +116 4 0 197 191 195 1324 +117 4 0 107 1313 104 116 +118 4 0 725 370 371 368 +119 4 0 682 1668 445 468 +120 4 0 488 187 1273 175 +121 4 0 848 153 1277 143 +122 4 0 355 902 664 379 +123 4 0 127 131 1280 135 +124 4 0 187 1324 1282 195 +125 4 0 339 634 110 118 +126 4 0 224 217 219 220 +127 4 0 280 279 285 292 +128 4 0 116 128 1315 1264 +129 4 0 393 1578 375 1471 +130 4 0 394 721 679 1089 +131 4 0 150 148 149 161 +132 4 0 161 149 171 148 +133 4 0 201 343 205 454 +134 4 0 224 217 220 234 +135 4 0 1054 299 283 271 +136 4 0 1317 1265 1262 127 +137 4 0 993 728 1783 513 +138 4 0 1280 1262 1319 131 +139 4 0 187 1322 1324 191 +140 4 0 458 430 64 1286 +141 4 0 1286 1311 430 64 +142 4 0 488 1322 187 191 +143 4 0 886 1304 345 995 +144 4 0 134 550 486 460 +145 4 0 134 550 460 130 +146 4 0 488 153 1321 155 +147 4 0 740 732 1546 1716 +148 4 0 1323 196 198 1263 +149 4 0 153 848 1275 1321 +150 4 0 457 63 345 75 +151 4 0 447 253 1331 261 +152 4 0 1263 188 196 192 +153 4 0 1304 969 484 995 +154 4 0 488 357 661 356 +155 4 0 554 456 369 1258 +156 4 0 369 735 994 456 +157 4 0 1258 554 651 369 +158 4 0 568 1108 398 516 +159 4 0 786 294 260 268 +160 4 0 1263 198 192 196 +161 4 0 454 473 343 205 +162 4 0 259 277 558 293 +163 4 0 385 344 346 347 +164 4 0 474 459 549 113 +165 4 0 385 1307 346 344 +166 4 0 616 347 978 344 +167 4 0 190 926 860 194 +168 4 0 1314 1455 521 115 +169 4 0 200 926 190 194 +170 4 0 510 472 521 1336 +171 4 0 510 350 352 521 +172 4 0 510 472 350 521 +173 4 0 1207 1315 352 350 +174 4 0 1317 1280 127 1262 +175 4 0 355 379 354 1320 +176 4 0 807 1303 1327 204 +177 4 0 902 1320 379 355 +178 4 0 806 215 213 203 +179 4 0 807 1303 209 216 +180 4 0 1136 854 365 1327 +181 4 0 355 664 335 379 +182 4 0 405 436 416 435 +183 4 0 1276 1274 357 661 +184 4 0 404 252 650 246 +185 4 0 1273 187 488 1282 +186 4 0 1172 363 362 832 +187 4 0 427 368 254 262 +188 4 0 927 1328 374 362 +189 4 0 455 1190 1154 1328 +190 4 0 471 287 298 270 +191 4 0 514 365 1380 876 +192 4 0 1191 1465 866 1380 +193 4 0 404 651 366 369 +194 4 0 285 308 292 296 +195 4 0 426 427 901 368 +196 4 0 1704 370 803 1063 +197 4 0 161 148 1134 146 +198 4 0 161 1134 148 170 +199 4 0 161 171 170 148 +200 4 0 502 803 830 370 +201 4 0 280 308 292 285 +202 4 0 280 292 308 306 +203 4 0 1383 371 370 1063 +204 4 0 343 201 205 193 +205 4 0 1793 746 1779 310 +206 4 0 922 785 560 923 +207 4 0 264 923 256 1330 +208 4 0 1161 562 561 560 +209 4 0 725 502 370 971 +210 4 0 388 1791 373 620 +211 4 0 447 243 253 261 +212 4 0 427 254 244 262 +213 4 0 870 1039 691 1297 +214 4 0 560 562 726 1161 +215 4 0 1016 518 1293 1579 +216 4 0 872 746 1793 310 +217 4 0 948 539 989 540 +218 4 0 153 488 1275 175 +219 4 0 488 1275 356 1321 +220 4 0 1275 1321 488 153 +221 4 0 612 177 169 173 +222 4 0 848 379 131 1271 +223 4 0 848 1271 131 143 +224 4 0 1319 1280 131 1271 +225 4 0 1224 1270 384 381 +226 4 0 1382 546 1556 898 +227 4 0 554 651 875 649 +228 4 0 572 310 316 312 +229 4 0 1514 388 740 462 +230 4 0 462 1160 851 965 +231 4 0 851 1160 1829 684 +232 4 0 1273 175 1275 488 +233 4 0 379 1277 1271 848 +234 4 0 848 1271 143 1277 +235 4 0 1268 1778 1130 1807 +236 4 0 1696 1169 1011 1240 +237 4 0 649 554 651 1258 +238 4 0 1574 1130 1033 1807 +239 4 0 1807 1260 1574 334 +240 4 0 1447 874 1662 1680 +241 4 0 1395 1010 392 810 +242 4 0 203 1324 195 1326 +243 4 0 993 1397 1326 364 +244 4 0 1688 1390 1418 824 +245 4 0 363 927 454 362 +246 4 0 1043 35 51 56 +247 4 0 736 563 374 927 +248 4 0 749 760 1150 1553 +249 4 0 784 1825 1567 783 +250 4 0 1397 1326 364 1324 +251 4 0 901 427 426 659 +252 4 0 409 302 608 579 +253 4 0 409 609 304 579 +254 4 0 385 51 34 44 +255 4 0 1830 833 1049 706 +256 4 0 1143 720 421 1820 +257 4 0 389 474 619 351 +258 4 0 1112 592 1366 889 +259 4 0 389 685 634 351 +260 4 0 619 113 117 351 +261 4 0 962 31 937 597 +262 4 0 962 457 31 597 +263 4 0 685 619 351 389 +264 4 0 351 474 349 389 +265 4 0 117 125 459 113 +266 4 0 148 1134 1727 599 +267 4 0 616 74 62 82 +268 4 0 549 486 550 800 +269 4 0 1832 1176 330 662 +270 4 0 29 692 1600 55 +271 4 0 41 35 51 34 +272 4 0 716 1410 596 976 +273 4 0 1641 390 825 1032 +274 4 0 811 129 125 133 +275 4 0 339 114 110 102 +276 4 0 118 126 114 487 +277 4 0 588 846 1020 862 +278 4 0 607 1606 1117 407 +279 4 0 41 35 30 36 +280 4 0 41 35 34 30 +281 4 0 14 30 36 41 +282 4 0 588 38 40 18 +283 4 0 700 1074 1384 403 +284 4 0 1264 1315 1318 128 +285 4 0 744 458 903 457 +286 4 0 29 15 400 13 +287 4 0 902 136 1272 144 +288 4 0 844 620 1184 1539 +289 4 0 654 975 932 1790 +290 4 0 956 1469 71 1619 +291 4 0 128 136 1316 132 +292 4 0 93 1349 325 89 +293 4 0 902 132 144 140 +294 4 0 92 104 108 90 +295 4 0 104 108 105 107 +296 4 0 90 108 105 104 +297 4 0 90 105 94 104 +298 4 0 1237 1481 1522 822 +299 4 0 107 94 99 105 +300 4 0 1829 620 928 684 +301 4 0 620 1792 844 928 +302 4 0 928 1065 851 684 +303 4 0 891 1100 1101 414 +304 4 0 1199 1047 611 641 +305 4 0 1204 920 642 383 +306 4 0 655 94 105 99 +307 4 0 863 1366 571 950 +308 4 0 756 1788 1672 701 +309 4 0 962 597 937 744 +310 4 0 962 457 597 744 +311 4 0 1647 632 309 652 +312 4 0 981 679 776 1071 +313 4 0 918 1082 1703 1702 +314 4 0 1326 195 645 1324 +315 4 0 1282 1324 645 195 +316 4 0 870 518 336 691 +317 4 0 1401 1217 1503 784 +318 4 0 666 1484 1720 1563 +319 4 0 1293 518 1764 1631 +320 4 0 1112 889 1366 1585 +321 4 0 1325 206 202 832 +322 4 0 408 303 283 410 +323 4 0 573 449 877 778 +324 4 0 629 632 309 1647 +325 4 0 1671 1071 990 859 +326 4 0 643 376 189 973 +327 4 0 1073 976 936 1460 +328 4 0 907 1071 1671 859 +329 4 0 539 1549 989 1070 +330 4 0 532 949 1071 541 +331 4 0 719 394 422 1090 +332 4 0 1079 321 1419 1070 +333 4 0 679 721 423 1269 +334 4 0 1043 51 35 34 +335 4 0 589 1683 1377 77 +336 4 0 426 368 901 371 +337 4 0 40 548 588 20 +338 4 0 985 548 40 20 +339 4 0 97 484 93 87 +340 4 0 1237 1522 1050 822 +341 4 0 17 845 37 39 +342 4 0 170 161 160 582 +343 4 0 980 1713 622 1219 +344 4 0 582 171 170 161 +345 4 0 584 391 1506 953 +346 4 0 812 1287 1826 1577 +347 4 0 583 160 161 582 +348 4 0 644 1797 169 1056 +349 4 0 1736 171 170 178 +350 4 0 832 206 202 194 +351 4 0 148 170 1736 171 +352 4 0 949 1142 1071 541 +353 4 0 939 183 181 1656 +354 4 0 1043 439 35 56 +355 4 0 423 394 679 698 +356 4 0 729 19 25 49 +357 4 0 795 774 1588 705 +358 4 0 701 756 702 775 +359 4 0 655 90 105 94 +360 4 0 650 246 252 228 +361 4 0 840 431 1166 1467 +362 4 0 209 217 219 216 +363 4 0 219 216 217 224 +364 4 0 408 283 303 281 +365 4 0 471 287 296 298 +366 4 0 410 411 408 818 +367 4 0 409 284 609 411 +368 4 0 561 609 284 411 +369 4 0 284 300 561 272 +370 4 0 1054 303 283 299 +371 4 0 1076 297 269 281 +372 4 0 855 465 443 466 +373 4 0 160 377 170 582 +374 4 0 1011 1605 847 1012 +375 4 0 425 380 1245 1399 +376 4 0 736 211 237 221 +377 4 0 343 376 517 861 +378 4 0 861 1173 860 1051 +379 4 0 643 612 429 428 +380 4 0 612 169 151 173 +381 4 0 1736 1051 646 614 +382 4 0 193 199 205 343 +383 4 0 194 206 200 724 +384 4 0 832 194 926 724 +385 4 0 93 89 959 103 +386 4 0 104 967 1753 799 +387 4 0 1469 959 325 89 +388 4 0 700 1714 1634 693 +389 4 0 855 443 465 681 +390 4 0 863 1257 864 1738 +391 4 0 445 468 858 682 +392 4 0 1496 1640 543 1559 +393 4 0 725 368 262 971 +394 4 0 734 669 662 330 +395 4 0 1022 217 209 216 +396 4 0 1166 435 1541 431 +397 4 0 437 432 436 406 +398 4 0 418 437 436 406 +399 4 0 433 732 437 438 +400 4 0 1566 1147 708 1183 +401 4 0 51 56 66 1043 +402 4 0 692 55 29 47 +403 4 0 439 24 48 38 +404 4 0 1020 588 862 586 +405 4 0 588 24 38 18 +406 4 0 1270 43 1224 384 +407 4 0 446 843 858 445 +408 4 0 385 347 1225 74 +409 4 0 201 454 374 362 +410 4 0 75 345 886 1304 +411 4 0 1122 891 415 475 +412 4 0 455 212 206 222 +413 4 0 738 447 737 426 +414 4 0 1154 659 563 1328 +415 4 0 921 483 536 1385 +416 4 0 385 74 66 62 +417 4 0 951 499 589 978 +418 4 0 1215 1270 1168 505 +419 4 0 978 952 1629 347 +420 4 0 550 487 549 349 +421 4 0 550 126 114 124 +422 4 0 1809 1777 1367 718 +423 4 0 492 34 41 51 +424 4 0 44 66 62 385 +425 4 0 454 363 343 473 +426 4 0 1172 832 517 363 +427 4 0 363 724 832 517 +428 4 0 1048 795 1156 1200 +429 4 0 44 66 385 51 +430 4 0 1630 628 1347 232 +431 4 0 418 406 732 437 +432 4 0 856 467 466 444 +433 4 0 858 445 682 683 +434 4 0 443 681 855 856 +435 4 0 454 363 362 343 +436 4 0 858 446 445 683 +437 4 0 855 466 443 856 +438 4 0 627 622 980 624 +439 4 0 630 1163 1109 1658 +440 4 0 1314 521 1265 115 +441 4 0 628 1099 892 1570 +442 4 0 517 343 473 199 +443 4 0 343 517 473 363 +444 4 0 471 298 282 270 +445 4 0 378 1725 508 393 +446 4 0 587 548 512 823 +447 4 0 512 984 823 548 +448 4 0 587 823 512 845 +449 4 0 687 1204 383 920 +450 4 0 806 993 215 203 +451 4 0 806 223 227 213 +452 4 0 688 1564 1296 524 +453 4 0 919 598 968 1417 +454 4 0 1239 598 1259 1417 +455 4 0 349 351 549 474 +456 4 0 1521 1658 367 1755 +457 4 0 822 1755 1050 504 +458 4 0 1525 826 461 1439 +459 4 0 519 1283 188 1274 +460 4 0 188 1263 519 192 +461 4 0 192 519 188 640 +462 4 0 188 1274 640 519 +463 4 0 883 576 575 782 +464 4 0 154 664 902 156 +465 4 0 902 664 154 1278 +466 4 0 154 156 1276 664 +467 4 0 154 1276 335 664 +468 4 0 376 861 973 429 +469 4 0 770 1426 424 722 +470 4 0 370 1023 803 1063 +471 4 0 990 1142 1671 540 +472 4 0 532 990 541 1071 +473 4 0 184 182 166 535 +474 4 0 1569 908 918 1702 +475 4 0 1237 822 1050 504 +476 4 0 949 1584 532 1159 +477 4 0 941 534 847 1766 +478 4 0 841 1184 417 1705 +479 4 0 368 426 1329 371 +480 4 0 1329 1331 371 447 +481 4 0 827 461 1255 1525 +482 4 0 864 1257 241 1738 +483 4 0 1037 1123 475 1145 +484 4 0 866 1191 461 1465 +485 4 0 880 1522 1197 829 +486 4 0 922 735 369 456 +487 4 0 277 735 922 263 +488 4 0 658 1300 1425 523 +489 4 0 482 705 1385 479 +490 4 0 846 1020 439 1247 +491 4 0 1218 750 489 930 +492 4 0 676 1837 750 489 +493 4 0 389 339 349 634 +494 4 0 550 487 349 114 +495 4 0 549 459 123 113 +496 4 0 550 126 487 114 +497 4 0 811 129 133 141 +498 4 0 800 1041 811 459 +499 4 0 118 1285 487 114 +500 4 0 154 640 176 1276 +501 4 0 488 179 153 155 +502 4 0 154 156 640 1276 +503 4 0 488 175 153 179 +504 4 0 637 712 1780 1690 +505 4 0 1229 1390 1222 824 +506 4 0 992 384 1261 1270 +507 4 0 1155 1010 1071 1733 +508 4 0 1218 41 635 329 +509 4 0 736 563 211 374 +510 4 0 525 1548 526 1152 +511 4 0 886 995 345 348 +512 4 0 485 80 84 98 +513 4 0 502 266 258 279 +514 4 0 502 279 258 276 +515 4 0 502 1346 830 894 +516 4 0 1080 984 545 814 +517 4 0 225 736 563 211 +518 4 0 291 295 265 470 +519 4 0 676 750 961 1592 +520 4 0 470 291 257 265 +521 4 0 409 411 542 1195 +522 4 0 1535 865 547 961 +523 4 0 471 502 509 1290 +524 4 0 1782 1829 1812 928 +525 4 0 1777 641 490 1199 +526 4 0 163 157 419 1823 +527 4 0 1681 1492 711 742 +528 4 0 672 1745 5 9 +529 4 0 1130 1033 1807 1778 +530 4 0 507 1195 509 603 +531 4 0 1641 390 1379 825 +532 4 0 714 1770 637 1308 +533 4 0 961 1198 1592 865 +534 4 0 1578 1551 520 1116 +535 4 0 680 1525 852 1439 +536 4 0 1112 889 1585 1165 +537 4 0 749 624 1150 760 +538 4 0 527 496 526 498 +539 4 0 1229 1006 1390 824 +540 4 0 1305 1745 672 1026 +541 4 0 1535 677 1356 547 +542 4 0 1014 677 1297 336 +543 4 0 495 677 1297 1014 +544 4 0 1378 674 1568 870 +545 4 0 495 337 497 489 +546 4 0 833 1386 1201 706 +547 4 0 380 1284 770 722 +548 4 0 380 722 770 425 +549 4 0 1072 1478 1452 1236 +550 4 0 949 541 532 1584 +551 4 0 532 1581 1011 1478 +552 4 0 1175 777 898 894 +553 4 0 670 557 593 1416 +554 4 0 1751 1129 1453 955 +555 4 0 988 946 1510 1625 +556 4 0 535 166 184 168 +557 4 0 259 558 277 735 +558 4 0 539 1189 1070 989 +559 4 0 679 776 1071 907 +560 4 0 679 721 776 1089 +561 4 0 887 1052 987 533 +562 4 0 949 532 1072 1159 +563 4 0 609 409 411 542 +564 4 0 295 269 604 297 +565 4 0 90 1400 789 655 +566 4 0 107 94 105 104 +567 4 0 1469 959 958 325 +568 4 0 1421 342 1007 771 +569 4 0 726 560 559 562 +570 4 0 561 272 300 268 +571 4 0 561 300 294 268 +572 4 0 1295 1176 1450 1832 +573 4 0 1295 1176 1832 920 +574 4 0 278 260 264 923 +575 4 0 255 263 735 259 +576 4 0 410 562 726 559 +577 4 0 561 562 1161 411 +578 4 0 303 1054 283 410 +579 4 0 1221 94 104 1758 +580 4 0 1315 120 107 112 +581 4 0 1315 1313 107 116 +582 4 0 107 1315 116 120 +583 4 0 1221 1248 1315 567 +584 4 0 784 748 1567 1825 +585 4 0 749 1553 341 760 +586 4 0 112 1221 98 99 +587 4 0 449 573 877 880 +588 4 0 279 292 287 285 +589 4 0 455 212 222 238 +590 4 0 927 1328 455 1154 +591 4 0 563 1154 1328 927 +592 4 0 736 454 211 221 +593 4 0 448 262 244 250 +594 4 0 447 737 243 249 +595 4 0 447 243 261 249 +596 4 0 1328 1190 659 212 +597 4 0 455 1328 202 212 +598 4 0 455 1190 1328 212 +599 4 0 455 238 1190 212 +600 4 0 1192 1000 754 765 +601 4 0 554 456 1258 263 +602 4 0 994 456 1258 369 +603 4 0 251 554 1258 263 +604 4 0 263 255 1258 245 +605 4 0 245 263 251 1258 +606 4 0 1534 399 439 1043 +607 4 0 588 984 512 548 +608 4 0 440 1067 1131 692 +609 4 0 17 845 692 37 +610 4 0 588 984 548 40 +611 4 0 1288 837 1720 798 +612 4 0 587 17 845 1067 +613 4 0 1067 845 692 17 +614 4 0 1818 378 977 870 +615 4 0 1378 977 870 1568 +616 4 0 870 1568 977 1818 +617 4 0 616 82 62 78 +618 4 0 1215 1377 951 589 +619 4 0 1396 591 952 978 +620 4 0 951 591 589 815 +621 4 0 616 82 78 96 +622 4 0 619 109 113 101 +623 4 0 109 101 618 85 +624 4 0 85 618 109 95 +625 4 0 339 110 86 102 +626 4 0 925 560 726 1161 +627 4 0 562 411 410 726 +628 4 0 676 1837 1583 750 +629 4 0 994 735 263 456 +630 4 0 255 735 263 994 +631 4 0 922 735 456 263 +632 4 0 263 456 1258 994 +633 4 0 263 994 1258 255 +634 4 0 549 486 800 1041 +635 4 0 718 617 1777 1367 +636 4 0 1690 712 802 30 +637 4 0 897 1177 1729 600 +638 4 0 1177 976 1756 716 +639 4 0 509 1290 605 471 +640 4 0 608 509 605 471 +641 4 0 603 542 409 608 +642 4 0 393 1725 508 1448 +643 4 0 508 501 1214 1725 +644 4 0 1594 813 1267 801 +645 4 0 800 459 1357 549 +646 4 0 1040 691 1157 677 +647 4 0 661 1276 156 356 +648 4 0 664 1276 356 156 +649 4 0 1056 1654 804 601 +650 4 0 1076 281 301 297 +651 4 0 1477 1772 628 892 +652 4 0 628 892 1772 232 +653 4 0 1404 551 839 1514 +654 4 0 1404 551 1256 566 +655 4 0 1514 1256 1404 551 +656 4 0 1430 651 875 554 +657 4 0 951 815 589 1377 +658 4 0 1561 1834 805 1235 +659 4 0 871 805 1834 1235 +660 4 0 726 609 1161 411 +661 4 0 412 805 871 1500 +662 4 0 519 357 661 488 +663 4 0 807 805 1303 216 +664 4 0 277 558 922 735 +665 4 0 779 822 1521 1389 +666 4 0 408 411 542 818 +667 4 0 609 542 411 818 +668 4 0 343 199 517 376 +669 4 0 376 973 343 199 +670 4 0 193 973 199 343 +671 4 0 834 177 428 173 +672 4 0 973 199 189 193 +673 4 0 821 1520 670 511 +674 4 0 612 1593 707 151 +675 4 0 732 462 607 407 +676 4 0 664 335 379 848 +677 4 0 614 613 1622 1724 +678 4 0 816 1443 806 239 +679 4 0 613 1045 1622 1724 +680 4 0 1045 149 152 142 +681 4 0 1045 138 149 142 +682 4 0 1622 148 149 138 +683 4 0 558 293 277 922 +684 4 0 293 828 1054 299 +685 4 0 1054 299 828 726 +686 4 0 743 174 178 860 +687 4 0 1051 861 429 743 +688 4 0 557 511 670 593 +689 4 0 1366 889 402 1585 +690 4 0 618 815 884 591 +691 4 0 685 117 619 109 +692 4 0 619 109 117 113 +693 4 0 619 618 109 101 +694 4 0 515 1761 383 727 +695 4 0 907 989 1549 1070 +696 4 0 1419 321 907 1070 +697 4 0 989 321 907 859 +698 4 0 1070 321 907 989 +699 4 0 905 781 1083 812 +700 4 0 751 1230 623 1061 +701 4 0 751 622 627 1238 +702 4 0 468 682 912 1732 +703 4 0 1287 970 1826 1543 +704 4 0 839 1404 1514 1607 +705 4 0 417 1124 476 1335 +706 4 0 844 406 418 1616 +707 4 0 843 468 842 405 +708 4 0 763 1096 1717 1120 +709 4 0 629 309 632 630 +710 4 0 871 514 929 1834 +711 4 0 1407 1715 879 1085 +712 4 0 871 1834 929 1235 +713 4 0 412 1633 871 805 +714 4 0 633 904 1251 450 +715 4 0 807 1327 1303 805 +716 4 0 686 710 708 1147 +717 4 0 898 1346 894 899 +718 4 0 971 258 262 276 +719 4 0 685 911 389 634 +720 4 0 685 109 618 95 +721 4 0 954 616 86 96 +722 4 0 1396 591 954 952 +723 4 0 844 1782 1812 928 +724 4 0 1829 928 851 684 +725 4 0 928 1829 1546 1782 +726 4 0 675 637 328 1718 +727 4 0 689 1762 675 1560 +728 4 0 524 947 1411 1006 +729 4 0 750 1126 489 930 +730 4 0 385 346 1043 1225 +731 4 0 742 1044 808 346 +732 4 0 1517 742 1044 1723 +733 4 0 1043 1044 346 639 +734 4 0 34 51 385 1043 +735 4 0 1043 639 346 385 +736 4 0 757 1092 1408 1003 +737 4 0 1408 1254 1003 1092 +738 4 0 488 519 358 359 +739 4 0 488 358 519 357 +740 4 0 519 357 1274 661 +741 4 0 176 640 188 1274 +742 4 0 640 176 192 180 +743 4 0 640 156 154 180 +744 4 0 640 154 176 180 +745 4 0 488 187 175 191 +746 4 0 640 176 188 192 +747 4 0 488 175 179 191 +748 4 0 860 190 194 186 +749 4 0 643 612 428 177 +750 4 0 926 832 724 1173 +751 4 0 1598 615 646 602 +752 4 0 1598 613 646 615 +753 4 0 409 608 471 509 +754 4 0 886 647 969 995 +755 4 0 485 98 1232 1221 +756 4 0 404 252 246 264 +757 4 0 340 1420 650 366 +758 4 0 807 228 1749 219 +759 4 0 404 366 252 372 +760 4 0 160 583 377 582 +761 4 0 1066 585 788 1431 +762 4 0 492 635 41 34 +763 4 0 956 403 71 1469 +764 4 0 382 1243 1253 1544 +765 4 0 1612 792 1653 1669 +766 4 0 763 1776 1717 1096 +767 4 0 857 1013 665 1813 +768 4 0 252 650 366 404 +769 4 0 807 209 214 219 +770 4 0 807 216 209 219 +771 4 0 340 650 1420 1651 +772 4 0 725 502 971 276 +773 4 0 686 672 1745 5 +774 4 0 1445 1024 673 1250 +775 4 0 1409 568 516 10 +776 4 0 671 6 8 10 +777 4 0 1400 1721 932 975 +778 4 0 399 401 639 1735 +779 4 0 1158 1026 1433 1029 +780 4 0 691 677 336 1297 +781 4 0 673 1492 1158 1682 +782 4 0 671 520 6 10 +783 4 0 671 568 1409 10 +784 4 0 1360 568 671 1748 +785 4 0 688 524 947 1747 +786 4 0 468 858 843 445 +787 4 0 839 957 1781 1547 +788 4 0 1667 465 1094 443 +789 4 0 441 463 852 1372 +790 4 0 680 441 852 1525 +791 4 0 1667 681 465 443 +792 4 0 442 464 853 463 +793 4 0 1728 463 680 441 +794 4 0 852 441 680 463 +795 4 0 415 1122 1454 1100 +796 4 0 711 400 820 1261 +797 4 0 820 742 711 1261 +798 4 0 1064 853 442 681 +799 4 0 1739 1728 853 463 +800 4 0 844 1782 1546 1716 +801 4 0 740 732 1373 407 +802 4 0 68 741 458 76 +803 4 0 685 619 389 911 +804 4 0 685 619 618 109 +805 4 0 806 239 728 816 +806 4 0 685 619 911 618 +807 4 0 686 1745 1305 1798 +808 4 0 1035 690 1837 1708 +809 4 0 1030 689 1560 1250 +810 4 0 688 1747 947 1031 +811 4 0 1535 1620 547 865 +812 4 0 1024 1250 1560 673 +813 4 0 1764 1631 518 870 +814 4 0 691 1297 336 870 +815 4 0 1036 1035 1621 1028 +816 4 0 12 671 8 10 +817 4 0 1535 677 547 1620 +818 4 0 1413 1376 383 687 +819 4 0 686 708 1566 1147 +820 4 0 686 708 710 5 +821 4 0 547 837 865 1288 +822 4 0 1807 1260 334 1778 +823 4 0 692 37 23 17 +824 4 0 692 47 23 37 +825 4 0 1565 998 764 1424 +826 4 0 706 54 60 70 +827 4 0 795 482 705 1588 +828 4 0 992 440 1261 742 +829 4 0 362 343 201 454 +830 4 0 1783 728 223 513 +831 4 0 728 876 513 993 +832 4 0 993 215 1783 806 +833 4 0 806 203 1326 993 +834 4 0 1343 1828 1759 1487 +835 4 0 1226 700 578 1074 +836 4 0 703 935 757 772 +837 4 0 1149 1587 1210 1174 +838 4 0 1415 1149 1558 1310 +839 4 0 706 72 1046 70 +840 4 0 706 60 72 70 +841 4 0 914 581 703 1487 +842 4 0 704 1670 581 914 +843 4 0 1649 481 774 955 +844 4 0 793 1819 702 590 +845 4 0 578 1162 1611 1074 +846 4 0 702 1734 580 590 +847 4 0 793 701 580 702 +848 4 0 1202 578 1162 1611 +849 4 0 757 1002 767 766 +850 4 0 351 549 459 487 +851 4 0 339 110 114 118 +852 4 0 1646 1186 915 1429 +853 4 0 1598 1045 613 1451 +854 4 0 1045 138 142 130 +855 4 0 707 1267 813 801 +856 4 0 1267 801 707 850 +857 4 0 644 1593 707 612 +858 4 0 495 677 337 1198 +859 4 0 638 1492 714 1459 +860 4 0 709 710 5 9 +861 4 0 1459 1492 714 1682 +862 4 0 1459 638 713 714 +863 4 0 714 1682 1492 673 +864 4 0 714 1492 638 673 +865 4 0 714 1770 673 638 +866 4 0 714 333 673 1770 +867 4 0 1691 329 635 16 +868 4 0 1015 857 1563 1720 +869 4 0 708 710 5 709 +870 4 0 672 710 9 5 +871 4 0 712 638 639 637 +872 4 0 30 1690 712 34 +873 4 0 639 401 712 1735 +874 4 0 820 1206 711 742 +875 4 0 638 639 713 712 +876 4 0 722 425 380 480 +877 4 0 915 1075 1820 421 +878 4 0 1529 1329 1063 1023 +879 4 0 1426 1144 424 722 +880 4 0 1241 1177 420 897 +881 4 0 1009 1528 1388 1113 +882 4 0 1302 859 391 1181 +883 4 0 254 368 971 262 +884 4 0 560 785 922 735 +885 4 0 785 735 369 922 +886 4 0 726 411 1161 562 +887 4 0 1054 293 558 828 +888 4 0 1161 561 411 609 +889 4 0 726 609 411 818 +890 4 0 560 559 828 726 +891 4 0 137 129 811 141 +892 4 0 607 462 1256 407 +893 4 0 429 850 1267 707 +894 4 0 428 612 173 177 +895 4 0 614 178 743 174 +896 4 0 189 177 834 173 +897 4 0 806 816 728 875 +898 4 0 340 1651 1595 807 +899 4 0 807 1235 1749 1595 +900 4 0 201 454 211 374 +901 4 0 729 19 49 39 +902 4 0 457 67 63 75 +903 4 0 457 345 458 348 +904 4 0 68 458 64 76 +905 4 0 45 457 67 63 +906 4 0 691 1157 677 1297 +907 4 0 1035 1837 1038 1708 +908 4 0 1036 865 1620 1028 +909 4 0 40 18 20 588 +910 4 0 738 659 426 563 +911 4 0 659 901 739 738 +912 4 0 736 211 225 237 +913 4 0 736 225 249 237 +914 4 0 737 225 243 249 +915 4 0 736 249 225 737 +916 4 0 739 659 1154 1190 +917 4 0 850 1137 601 1449 +918 4 0 618 95 85 884 +919 4 0 685 815 95 618 +920 4 0 739 226 238 250 +921 4 0 427 262 244 448 +922 4 0 239 1443 806 227 +923 4 0 739 448 244 250 +924 4 0 826 1525 461 827 +925 4 0 863 1524 827 571 +926 4 0 845 19 17 587 +927 4 0 512 984 814 823 +928 4 0 845 39 17 19 +929 4 0 545 814 984 823 +930 4 0 485 1127 1232 1311 +931 4 0 647 995 1127 969 +932 4 0 739 244 448 427 +933 4 0 739 244 226 250 +934 4 0 736 738 563 1154 +935 4 0 739 244 659 226 +936 4 0 739 659 244 427 +937 4 0 659 738 426 901 +938 4 0 659 1154 563 738 +939 4 0 659 739 1154 738 +940 4 0 659 1190 739 226 +941 4 0 710 672 1663 636 +942 4 0 269 470 295 604 +943 4 0 470 1573 604 893 +944 4 0 51 1043 66 385 +945 4 0 612 169 147 151 +946 4 0 1797 169 612 644 +947 4 0 612 643 644 177 +948 4 0 850 644 1593 707 +949 4 0 850 429 644 707 +950 4 0 1648 894 830 1810 +951 4 0 644 643 612 429 +952 4 0 644 429 612 707 +953 4 0 415 1037 1122 475 +954 4 0 1037 1145 475 415 +955 4 0 1481 822 1237 632 +956 4 0 646 1391 614 1051 +957 4 0 829 1389 822 779 +958 4 0 1518 849 1298 493 +959 4 0 824 1701 1006 494 +960 4 0 1285 339 114 118 +961 4 0 614 171 174 152 +962 4 0 1622 171 152 149 +963 4 0 832 724 363 206 +964 4 0 832 194 724 206 +965 4 0 171 614 174 178 +966 4 0 1063 1023 803 1757 +967 4 0 458 348 903 457 +968 4 0 614 1391 646 613 +969 4 0 1080 814 545 937 +970 4 0 545 937 814 823 +971 4 0 614 613 646 1736 +972 4 0 1063 1529 1331 1329 +973 4 0 1391 743 614 1051 +974 4 0 1020 1131 1517 586 +975 4 0 68 817 458 741 +976 4 0 730 68 817 458 +977 4 0 408 818 542 1076 +978 4 0 818 410 411 726 +979 4 0 819 1473 610 1086 +980 4 0 822 1521 1760 632 +981 4 0 950 827 571 863 +982 4 0 826 827 461 678 +983 4 0 558 293 922 828 +984 4 0 676 750 1592 489 +985 4 0 774 1212 955 1453 +986 4 0 892 434 931 1467 +987 4 0 872 1518 746 310 +988 4 0 738 563 426 737 +989 4 0 598 968 1463 919 +990 4 0 1463 1008 968 598 +991 4 0 1008 1103 972 968 +992 4 0 310 1779 1403 746 +993 4 0 980 622 627 1437 +994 4 0 782 781 574 451 +995 4 0 1053 1813 1013 1102 +996 4 0 736 738 737 563 +997 4 0 1463 1139 1532 919 +998 4 0 1269 679 776 981 +999 4 0 1057 332 1072 981 +1000 4 0 1670 704 581 1279 +1001 4 0 584 953 1506 933 +1002 4 0 775 701 964 793 +1003 4 0 964 326 1700 966 +1004 4 0 1642 342 763 762 +1005 4 0 1776 1642 1096 763 +1006 4 0 1202 694 701 1672 +1007 4 0 956 1637 1711 1231 +1008 4 0 1788 694 1672 701 +1009 4 0 75 63 345 1304 +1010 4 0 762 342 1007 1128 +1011 4 0 775 701 793 702 +1012 4 0 756 1208 913 755 +1013 4 0 756 1788 1208 1000 +1014 4 0 695 913 757 935 +1015 4 0 1242 935 753 775 +1016 4 0 503 704 772 773 +1017 4 0 1432 1822 503 1244 +1018 4 0 523 1653 556 1151 +1019 4 0 791 1151 523 552 +1020 4 0 1058 1338 836 1479 +1021 4 0 987 1800 1135 1444 +1022 4 0 440 692 29 1067 +1023 4 0 1002 767 1003 757 +1024 4 0 791 1151 1156 523 +1025 4 0 1001 766 755 765 +1026 4 0 755 1001 765 1000 +1027 4 0 1835 1545 915 1186 +1028 4 0 1070 1602 1294 338 +1029 4 0 801 813 707 1442 +1030 4 0 939 887 533 1052 +1031 4 0 774 1244 955 481 +1032 4 0 269 470 265 295 +1033 4 0 1023 470 803 1757 +1034 4 0 1704 893 1757 803 +1035 4 0 481 1306 774 1244 +1036 4 0 1004 1003 768 1254 +1037 4 0 733 1210 1149 1587 +1038 4 0 1614 1039 674 997 +1039 4 0 1007 769 771 762 +1040 4 0 1561 929 1235 340 +1041 4 0 1719 876 1542 728 +1042 4 0 543 1640 876 993 +1043 4 0 457 903 67 75 +1044 4 0 862 846 512 588 +1045 4 0 1775 90 789 655 +1046 4 0 1175 1726 1382 898 +1047 4 0 1840 324 1824 625 +1048 4 0 625 1577 1840 324 +1049 4 0 1217 883 452 1146 +1050 4 0 440 1261 742 820 +1051 4 0 898 777 1628 894 +1052 4 0 893 652 873 1196 +1053 4 0 632 1481 1513 873 +1054 4 0 417 1148 1123 1145 +1055 4 0 1741 898 777 1628 +1056 4 0 784 576 885 1462 +1057 4 0 1069 1662 1545 874 +1058 4 0 1796 1597 885 972 +1059 4 0 1796 748 1597 1464 +1060 4 0 1403 310 746 1485 +1061 4 0 859 1066 391 1181 +1062 4 0 982 983 969 1018 +1063 4 0 987 1132 1599 1135 +1064 4 0 779 822 1522 1481 +1065 4 0 628 892 232 1095 +1066 4 0 970 812 1826 1353 +1067 4 0 1069 988 1680 874 +1068 4 0 1744 1260 1104 1025 +1069 4 0 690 1837 1260 334 +1070 4 0 906 942 1710 938 +1071 4 0 574 882 1407 1715 +1072 4 0 618 815 95 884 +1073 4 0 589 884 1377 815 +1074 4 0 1796 1464 1597 972 +1075 4 0 779 1481 632 822 +1076 4 0 849 821 1485 780 +1077 4 0 1304 886 969 995 +1078 4 0 1095 1570 628 892 +1079 4 0 713 401 712 639 +1080 4 0 729 937 31 25 +1081 4 0 785 923 256 260 +1082 4 0 759 1415 1246 705 +1083 4 0 293 558 259 267 +1084 4 0 759 697 1415 705 +1085 4 0 786 260 294 278 +1086 4 0 786 561 294 268 +1087 4 0 925 1161 561 560 +1088 4 0 1799 1042 1017 569 +1089 4 0 1799 906 1017 1042 +1090 4 0 881 1407 569 1042 +1091 4 0 1799 1805 906 1042 +1092 4 0 871 412 1500 1234 +1093 4 0 1757 1023 1529 1063 +1094 4 0 1696 532 1240 1011 +1095 4 0 729 39 823 19 +1096 4 0 1080 814 937 729 +1097 4 0 729 39 814 823 +1098 4 0 729 19 823 937 +1099 4 0 1700 958 1665 1162 +1100 4 0 958 403 1665 1162 +1101 4 0 1243 1266 1133 1312 +1102 4 0 1626 753 775 1242 +1103 4 0 67 31 457 45 +1104 4 0 962 903 457 744 +1105 4 0 797 706 60 72 +1106 4 0 620 1184 373 388 +1107 4 0 739 427 901 659 +1108 4 0 1130 1033 734 330 +1109 4 0 1670 1279 955 1751 +1110 4 0 1819 1242 1626 775 +1111 4 0 924 93 103 111 +1112 4 0 982 1336 472 510 +1113 4 0 83 969 97 484 +1114 4 0 1151 1156 1048 795 +1115 4 0 553 792 1712 1156 +1116 4 0 863 1255 1257 1068 +1117 4 0 924 93 111 97 +1118 4 0 983 809 567 1497 +1119 4 0 773 1129 1453 1751 +1120 4 0 704 773 794 772 +1121 4 0 703 704 794 772 +1122 4 0 871 1706 412 1234 +1123 4 0 1127 647 983 1232 +1124 4 0 1127 647 1232 1311 +1125 4 0 656 1533 1300 552 +1126 4 0 656 1300 555 552 +1127 4 0 1722 932 654 1203 +1128 4 0 1758 790 753 327 +1129 4 0 959 91 103 89 +1130 4 0 660 1577 1840 625 +1131 4 0 1833 1840 1824 625 +1132 4 0 1840 660 625 1833 +1133 4 0 757 703 772 704 +1134 4 0 1722 654 932 1790 +1135 4 0 1212 955 1461 1613 +1136 4 0 937 25 729 19 +1137 4 0 600 1073 1530 397 +1138 4 0 1076 301 281 303 +1139 4 0 409 304 284 282 +1140 4 0 409 302 304 282 +1141 4 0 603 542 1195 409 +1142 4 0 1270 992 384 381 +1143 4 0 408 507 269 1076 +1144 4 0 408 269 281 1076 +1145 4 0 953 717 1059 1557 +1146 4 0 986 1451 1045 1598 +1147 4 0 983 1497 567 1018 +1148 4 0 567 1018 1497 1207 +1149 4 0 695 757 913 1002 +1150 4 0 1000 755 1208 756 +1151 4 0 873 652 893 1494 +1152 4 0 460 986 486 1045 +1153 4 0 995 969 484 1127 +1154 4 0 1060 1336 982 959 +1155 4 0 966 326 1700 1446 +1156 4 0 67 31 57 962 +1157 4 0 918 904 594 944 +1158 4 0 98 1221 112 567 +1159 4 0 904 908 918 594 +1160 4 0 480 425 380 1245 +1161 4 0 934 606 1114 1412 +1162 4 0 794 1291 789 1499 +1163 4 0 405 436 418 416 +1164 4 0 418 844 1616 469 +1165 4 0 839 1179 1441 957 +1166 4 0 1313 1248 1315 107 +1167 4 0 1657 1073 987 397 +1168 4 0 1018 982 472 510 +1169 4 0 484 924 969 97 +1170 4 0 1315 112 1221 567 +1171 4 0 567 1476 809 1221 +1172 4 0 1631 1764 977 870 +1173 4 0 803 894 509 502 +1174 4 0 803 830 894 502 +1175 4 0 847 1011 1839 1138 +1176 4 0 534 847 1766 1138 +1177 4 0 502 279 276 292 +1178 4 0 447 1329 243 426 +1179 4 0 509 502 894 1290 +1180 4 0 1257 678 461 827 +1181 4 0 826 1523 827 678 +1182 4 0 1255 827 863 1257 +1183 4 0 1257 461 1255 827 +1184 4 0 816 875 806 1443 +1185 4 0 365 1719 514 929 +1186 4 0 854 1719 929 1228 +1187 4 0 1719 854 929 365 +1188 4 0 1203 932 654 1400 +1189 4 0 648 340 854 1561 +1190 4 0 807 219 214 228 +1191 4 0 1506 953 1059 933 +1192 4 0 806 223 213 215 +1193 4 0 214 807 204 209 +1194 4 0 1749 1235 224 1595 +1195 4 0 648 340 807 1651 +1196 4 0 462 551 965 1256 +1197 4 0 1149 733 1415 1005 +1198 4 0 816 649 875 1443 +1199 4 0 954 634 110 339 +1200 4 0 31 729 57 962 +1201 4 0 440 1600 29 692 +1202 4 0 485 80 98 88 +1203 4 0 338 321 1079 1070 +1204 4 0 484 97 79 87 +1205 4 0 484 83 969 1304 +1206 4 0 567 1221 1248 1476 +1207 4 0 942 594 909 904 +1208 4 0 485 99 88 98 +1209 4 0 800 986 813 486 +1210 4 0 1357 800 801 811 +1211 4 0 1042 942 906 1632 +1212 4 0 1632 942 1345 1042 +1213 4 0 97 924 93 484 +1214 4 0 813 811 801 800 +1215 4 0 904 944 1082 450 +1216 4 0 918 904 944 1082 +1217 4 0 125 129 811 1357 +1218 4 0 982 93 924 484 +1219 4 0 125 113 123 459 +1220 4 0 124 130 550 126 +1221 4 0 688 524 1296 947 +1222 4 0 460 986 1045 138 +1223 4 0 688 947 1296 1031 +1224 4 0 550 487 486 549 +1225 4 0 410 726 1054 559 +1226 4 0 873 1704 893 1021 +1227 4 0 586 588 862 587 +1228 4 0 759 1174 1246 1415 +1229 4 0 961 865 547 837 +1230 4 0 899 894 830 1346 +1231 4 0 1648 803 830 894 +1232 4 0 1346 725 276 502 +1233 4 0 502 971 276 258 +1234 4 0 419 718 1777 1809 +1235 4 0 834 185 193 189 +1236 4 0 1051 861 743 860 +1237 4 0 834 193 973 189 +1238 4 0 1371 865 961 837 +1239 4 0 1051 926 1173 860 +1240 4 0 1601 422 1090 719 +1241 4 0 211 205 221 454 +1242 4 0 1069 538 1680 988 +1243 4 0 1256 551 965 566 +1244 4 0 396 1138 1839 1011 +1245 4 0 482 1088 795 479 +1246 4 0 86 96 616 78 +1247 4 0 1423 972 747 968 +1248 4 0 968 972 747 1252 +1249 4 0 969 982 924 484 +1250 4 0 1347 867 1234 1609 +1251 4 0 435 405 436 432 +1252 4 0 435 431 405 432 +1253 4 0 438 1171 1468 607 +1254 4 0 413 441 868 1474 +1255 4 0 414 442 1474 869 +1256 4 0 844 928 1546 1782 +1257 4 0 740 462 1546 732 +1258 4 0 1668 468 842 445 +1259 4 0 858 446 469 843 +1260 4 0 458 46 68 64 +1261 4 0 1121 414 1098 1100 +1262 4 0 841 417 1184 1124 +1263 4 0 1098 890 413 414 +1264 4 0 1212 1693 955 1129 +1265 4 0 443 466 1095 1093 +1266 4 0 443 466 1093 444 +1267 4 0 962 67 31 457 +1268 4 0 962 903 67 457 +1269 4 0 643 973 834 428 +1270 4 0 906 1816 1472 938 +1271 4 0 451 1586 1515 974 +1272 4 0 974 896 1586 752 +1273 4 0 845 512 587 862 +1274 4 0 1020 588 1247 846 +1275 4 0 1247 38 588 24 +1276 4 0 911 339 389 634 +1277 4 0 846 40 588 38 +1278 4 0 846 40 984 588 +1279 4 0 846 984 512 588 +1280 4 0 1271 131 143 135 +1281 4 0 902 1272 136 1320 +1282 4 0 902 1320 136 132 +1283 4 0 848 153 139 155 +1284 4 0 902 132 136 144 +1285 4 0 848 1275 335 1277 +1286 4 0 848 139 153 143 +1287 4 0 858 1686 446 683 +1288 4 0 1829 1791 620 684 +1289 4 0 980 622 1713 1795 +1290 4 0 980 1795 1713 1464 +1291 4 0 452 1008 1423 653 +1292 4 0 1423 1008 968 1463 +1293 4 0 951 505 589 499 +1294 4 0 951 591 978 589 +1295 4 0 978 347 1629 499 +1296 4 0 795 479 1200 705 +1297 4 0 482 705 479 795 +1298 4 0 469 446 858 1065 +1299 4 0 681 853 442 465 +1300 4 0 465 681 853 855 +1301 4 0 189 973 834 643 +1302 4 0 834 189 173 185 +1303 4 0 428 834 643 177 +1304 4 0 926 194 200 724 +1305 4 0 550 130 134 126 +1306 4 0 860 190 174 178 +1307 4 0 860 190 186 174 +1308 4 0 376 861 343 973 +1309 4 0 871 412 866 1380 +1310 4 0 1372 463 866 441 +1311 4 0 442 463 1091 867 +1312 4 0 1728 463 1091 442 +1313 4 0 441 463 866 1091 +1314 4 0 1122 891 1100 415 +1315 4 0 247 1301 1768 864 +1316 4 0 412 463 866 1372 +1317 4 0 412 463 1609 1706 +1318 4 0 867 442 463 464 +1319 4 0 1609 464 867 463 +1320 4 0 1699 867 1234 1347 +1321 4 0 1093 1817 1454 444 +1322 4 0 761 536 387 762 +1323 4 0 409 579 608 542 +1324 4 0 409 609 579 542 +1325 4 0 1235 224 1234 216 +1326 4 0 737 225 563 243 +1327 4 0 736 737 225 563 +1328 4 0 391 859 1671 990 +1329 4 0 561 609 300 284 +1330 4 0 391 584 787 585 +1331 4 0 561 300 1161 294 +1332 4 0 294 1161 561 925 +1333 4 0 770 722 1084 425 +1334 4 0 473 343 205 199 +1335 4 0 924 510 1336 982 +1336 4 0 924 103 93 982 +1337 4 0 1446 982 959 1060 +1338 4 0 982 93 959 103 +1339 4 0 959 325 93 982 +1340 4 0 874 1069 1662 1680 +1341 4 0 391 1302 989 859 +1342 4 0 907 776 1071 859 +1343 4 0 1142 907 1671 540 +1344 4 0 1071 990 1142 1671 +1345 4 0 1146 1509 752 896 +1346 4 0 987 1132 1052 1599 +1347 4 0 452 885 1462 784 +1348 4 0 1680 1752 874 988 +1349 4 0 1392 1694 989 1189 +1350 4 0 715 836 1077 1479 +1351 4 0 1697 715 1460 1756 +1352 4 0 882 574 451 782 +1353 4 0 1757 1021 900 1196 +1354 4 0 575 1698 883 1502 +1355 4 0 782 575 883 1502 +1356 4 0 1518 821 1485 849 +1357 4 0 780 747 821 1618 +1358 4 0 1518 746 310 1485 +1359 4 0 1518 821 849 493 +1360 4 0 898 1175 1726 1741 +1361 4 0 1407 1085 879 569 +1362 4 0 880 829 1197 573 +1363 4 0 822 1521 632 779 +1364 4 0 410 818 408 303 +1365 4 0 818 410 726 303 +1366 4 0 974 1562 896 1368 +1367 4 0 882 574 782 575 +1368 4 0 879 1407 569 881 +1369 4 0 450 1087 881 877 +1370 4 0 1052 1599 804 1047 +1371 4 0 1102 663 1053 1130 +1372 4 0 1176 1709 330 1033 +1373 4 0 885 577 972 1178 +1374 4 0 543 1559 1640 993 +1375 4 0 737 447 243 426 +1376 4 0 737 563 426 243 +1377 4 0 1093 1100 443 415 +1378 4 0 1093 443 444 415 +1379 4 0 446 843 1655 841 +1380 4 0 628 466 1095 465 +1381 4 0 628 465 1095 1094 +1382 4 0 465 466 1095 443 +1383 4 0 869 442 867 1094 +1384 4 0 442 464 867 1094 +1385 4 0 626 657 1841 1050 +1386 4 0 465 853 442 464 +1387 4 0 1630 464 1094 867 +1388 4 0 1841 1473 819 1540 +1389 4 0 626 1050 1841 1540 +1390 4 0 628 465 1094 1630 +1391 4 0 1005 1149 1558 1415 +1392 4 0 774 1244 1453 955 +1393 4 0 1747 1411 674 1436 +1394 4 0 893 1757 803 470 +1395 4 0 605 603 509 608 +1396 4 0 507 470 604 893 +1397 4 0 330 669 662 1176 +1398 4 0 1099 840 892 1570 +1399 4 0 668 1176 662 669 +1400 4 0 269 604 297 1076 +1401 4 0 894 509 1290 605 +1402 4 0 894 899 1628 898 +1403 4 0 1656 1047 887 1052 +1404 4 0 939 1414 1052 533 +1405 4 0 417 1123 841 1145 +1406 4 0 1575 1123 1037 1145 +1407 4 0 676 750 1427 961 +1408 4 0 1743 529 535 941 +1409 4 0 1580 941 847 529 +1410 4 0 758 1244 1453 774 +1411 4 0 848 143 131 139 +1412 4 0 902 144 154 140 +1413 4 0 144 902 154 1278 +1414 4 0 780 1659 849 493 +1415 4 0 1464 1795 747 972 +1416 4 0 902 154 156 140 +1417 4 0 1389 570 779 829 +1418 4 0 1701 1006 1229 824 +1419 4 0 495 1014 526 525 +1420 4 0 337 677 1014 1356 +1421 4 0 495 1014 337 677 +1422 4 0 32 46 68 458 +1423 4 0 458 817 903 741 +1424 4 0 58 32 68 730 +1425 4 0 1053 1013 665 663 +1426 4 0 1437 980 622 1219 +1427 4 0 623 751 622 1230 +1428 4 0 916 938 974 1180 +1429 4 0 1381 1027 797 1201 +1430 4 0 974 1562 916 595 +1431 4 0 670 511 1520 593 +1432 4 0 1378 870 977 1764 +1433 4 0 376 199 189 973 +1434 4 0 974 1368 896 752 +1435 4 0 1710 942 906 1042 +1436 4 0 942 1180 916 1456 +1437 4 0 909 942 938 916 +1438 4 0 707 1593 1442 151 +1439 4 0 1442 147 137 141 +1440 4 0 1442 151 147 141 +1441 4 0 707 850 801 1593 +1442 4 0 801 1442 707 1593 +1443 4 0 905 782 1774 1754 +1444 4 0 904 1082 1251 450 +1445 4 0 821 747 1252 1480 +1446 4 0 1423 972 968 1008 +1447 4 0 1799 1816 906 1805 +1448 4 0 905 781 782 451 +1449 4 0 905 781 812 782 +1450 4 0 1589 781 1083 905 +1451 4 0 1056 159 169 1352 +1452 4 0 804 1056 167 1769 +1453 4 0 1052 1056 167 804 +1454 4 0 424 332 1057 981 +1455 4 0 1057 332 424 770 +1456 4 0 1151 553 1156 1669 +1457 4 0 595 1562 896 974 +1458 4 0 1177 596 976 716 +1459 4 0 715 835 1479 1447 +1460 4 0 587 548 588 512 +1461 4 0 862 512 587 588 +1462 4 0 1059 161 583 160 +1463 4 0 1059 583 1695 933 +1464 4 0 872 1164 1636 1110 +1465 4 0 754 694 1565 323 +1466 4 0 626 1540 1841 819 +1467 4 0 530 957 1340 528 +1468 4 0 373 957 530 528 +1469 4 0 922 560 925 923 +1470 4 0 558 828 922 560 +1471 4 0 925 828 560 922 +1472 4 0 925 923 786 278 +1473 4 0 544 1779 1107 310 +1474 4 0 700 403 1231 958 +1475 4 0 964 565 1700 1162 +1476 4 0 1202 1672 701 1162 +1477 4 0 84 64 1286 76 +1478 4 0 1501 445 842 1358 +1479 4 0 348 995 647 886 +1480 4 0 1080 937 545 744 +1481 4 0 1624 1221 1248 967 +1482 4 0 813 811 800 1041 +1483 4 0 1042 906 1017 1804 +1484 4 0 569 1042 1017 881 +1485 4 0 1070 1189 946 1836 +1486 4 0 1069 945 538 988 +1487 4 0 757 695 1092 1003 +1488 4 0 1070 338 1294 1079 +1489 4 0 538 1069 943 945 +1490 4 0 1073 936 836 1077 +1491 4 0 936 836 531 940 +1492 4 0 1190 238 739 226 +1493 4 0 1069 943 835 537 +1494 4 0 1069 936 835 943 +1495 4 0 226 659 1190 212 +1496 4 0 537 538 1069 943 +1497 4 0 1800 987 940 1073 +1498 4 0 1073 987 940 1657 +1499 4 0 776 721 679 1269 +1500 4 0 531 836 936 835 +1501 4 0 901 1187 427 262 +1502 4 0 725 1187 368 371 +1503 4 0 644 1137 601 850 +1504 4 0 1047 1199 1656 887 +1505 4 0 1052 1047 804 1656 +1506 4 0 769 1128 762 1007 +1507 4 0 443 681 856 1193 +1508 4 0 769 1128 1007 697 +1509 4 0 1066 788 585 787 +1510 4 0 1010 1395 392 1402 +1511 4 0 820 1067 440 29 +1512 4 0 936 836 715 835 +1513 4 0 954 952 616 82 +1514 4 0 589 884 77 1377 +1515 4 0 589 591 884 815 +1516 4 0 954 616 96 82 +1517 4 0 952 74 616 82 +1518 4 0 1077 1073 600 397 +1519 4 0 591 978 616 952 +1520 4 0 978 952 347 616 +1521 4 0 952 74 347 616 +1522 4 0 1077 836 1800 1675 +1523 4 0 1073 1077 836 1800 +1524 4 0 1524 247 1768 864 +1525 4 0 1068 543 1496 1640 +1526 4 0 876 543 1068 1640 +1527 4 0 325 982 959 1665 +1528 4 0 327 1221 1624 967 +1529 4 0 963 327 1624 967 +1530 4 0 701 964 1672 775 +1531 4 0 700 403 958 1162 +1532 4 0 1000 754 756 1788 +1533 4 0 859 1402 391 1066 +1534 4 0 327 967 963 753 +1535 4 0 404 372 252 264 +1536 4 0 554 649 816 251 +1537 4 0 251 554 649 1258 +1538 4 0 1626 793 963 327 +1539 4 0 775 1626 963 753 +1540 4 0 963 1626 327 753 +1541 4 0 963 964 793 775 +1542 4 0 967 327 1758 753 +1543 4 0 474 113 619 351 +1544 4 0 966 1677 1624 964 +1545 4 0 793 963 1677 964 +1546 4 0 966 1531 1062 1476 +1547 4 0 809 1476 1676 1221 +1548 4 0 1624 1062 967 1248 +1549 4 0 1665 325 958 959 +1550 4 0 1060 472 966 1446 +1551 4 0 959 93 325 89 +1552 4 0 649 251 1258 245 +1553 4 0 1651 340 650 648 +1554 4 0 1186 716 915 1075 +1555 4 0 915 716 1820 1075 +1556 4 0 1561 929 340 854 +1557 4 0 1420 1651 1595 340 +1558 4 0 649 816 875 554 +1559 4 0 323 1596 1078 693 +1560 4 0 693 1118 1078 1711 +1561 4 0 287 296 285 292 +1562 4 0 287 471 502 266 +1563 4 0 266 270 287 471 +1564 4 0 1591 621 970 1406 +1565 4 0 1519 972 747 1795 +1566 4 0 864 1768 863 1301 +1567 4 0 839 1767 957 1547 +1568 4 0 598 1463 1532 919 +1569 4 0 516 568 1108 10 +1570 4 0 904 594 944 942 +1571 4 0 607 1117 1457 407 +1572 4 0 838 1117 407 1140 +1573 4 0 693 1596 1078 1118 +1574 4 0 1046 1120 1209 1717 +1575 4 0 163 157 1823 1363 +1576 4 0 641 1199 1363 611 +1577 4 0 380 1245 1399 1661 +1578 4 0 1009 1528 1113 1393 +1579 4 0 972 1252 1519 747 +1580 4 0 1115 1183 1566 708 +1581 4 0 1578 1116 520 1182 +1582 4 0 979 1235 871 1617 +1583 4 0 1082 449 657 626 +1584 4 0 256 246 264 404 +1585 4 0 256 264 1330 404 +1586 4 0 560 925 923 786 +1587 4 0 560 828 925 726 +1588 4 0 923 1330 785 256 +1589 4 0 925 294 278 786 +1590 4 0 905 1083 1353 812 +1591 4 0 1589 1083 1353 905 +1592 4 0 1311 84 485 80 +1593 4 0 1100 1121 414 891 +1594 4 0 415 1100 1101 891 +1595 4 0 1094 1667 443 1507 +1596 4 0 1739 853 1728 1064 +1597 4 0 770 722 424 1084 +1598 4 0 98 485 99 1221 +1599 4 0 983 969 647 1127 +1600 4 0 983 809 1127 567 +1601 4 0 985 40 50 26 +1602 4 0 985 40 26 20 +1603 4 0 985 548 20 545 +1604 4 0 985 984 548 545 +1605 4 0 985 984 545 1080 +1606 4 0 1086 1540 819 1473 +1607 4 0 1599 397 1052 987 +1608 4 0 529 166 535 168 +1609 4 0 1752 874 988 1740 +1610 4 0 394 1089 679 1512 +1611 4 0 679 1089 776 321 +1612 4 0 988 1835 945 946 +1613 4 0 1073 1530 397 1657 +1614 4 0 1090 394 698 1512 +1615 4 0 757 704 503 1092 +1616 4 0 503 1432 1092 704 +1617 4 0 757 703 704 1092 +1618 4 0 785 560 923 786 +1619 4 0 786 923 260 278 +1620 4 0 558 267 293 1054 +1621 4 0 259 277 263 735 +1622 4 0 1096 1750 699 763 +1623 4 0 558 560 922 735 +1624 4 0 1509 896 1097 653 +1625 4 0 653 1097 452 1008 +1626 4 0 628 1477 892 1099 +1627 4 0 840 1166 1099 1467 +1628 4 0 1467 840 892 1099 +1629 4 0 1005 697 769 1007 +1630 4 0 1003 1408 767 768 +1631 4 0 1101 1100 443 1507 +1632 4 0 415 1100 443 1101 +1633 4 0 1130 1102 1778 1268 +1634 4 0 1130 1102 1033 1778 +1635 4 0 1008 598 1103 968 +1636 4 0 968 598 1103 1239 +1637 4 0 757 1002 695 1003 +1638 4 0 163 1363 1823 1111 +1639 4 0 323 764 1424 1565 +1640 4 0 1000 1192 754 694 +1641 4 0 1000 694 754 1788 +1642 4 0 1001 1434 755 766 +1643 4 0 1001 1434 766 1002 +1644 4 0 1002 1434 913 1208 +1645 4 0 1002 766 757 913 +1646 4 0 1637 1078 956 1711 +1647 4 0 750 337 489 1126 +1648 4 0 497 1126 337 525 +1649 4 0 762 342 1128 536 +1650 4 0 761 536 762 1128 +1651 4 0 761 1639 1128 697 +1652 4 0 485 1311 1232 84 +1653 4 0 1232 647 1223 1311 +1654 4 0 1232 485 84 98 +1655 4 0 729 814 937 823 +1656 4 0 1129 1554 789 794 +1657 4 0 1554 1400 1129 789 +1658 4 0 1067 692 845 1131 +1659 4 0 820 1067 586 1131 +1660 4 0 166 168 1012 1009 +1661 4 0 1132 804 601 1056 +1662 4 0 1243 1133 1188 1312 +1663 4 0 170 161 1134 160 +1664 4 0 1447 1344 835 1058 +1665 4 0 1800 836 1338 1675 +1666 4 0 1135 646 1170 602 +1667 4 0 990 1010 1733 1071 +1668 4 0 989 1070 1392 1189 +1669 4 0 1012 529 168 166 +1670 4 0 1016 667 1495 1538 +1671 4 0 845 823 512 39 +1672 4 0 512 814 39 823 +1673 4 0 1326 1136 364 360 +1674 4 0 854 364 1326 1136 +1675 4 0 903 348 75 457 +1676 4 0 348 345 886 75 +1677 4 0 457 345 348 75 +1678 4 0 552 1461 1533 791 +1679 4 0 502 370 830 725 +1680 4 0 1704 803 1757 1063 +1681 4 0 470 893 507 803 +1682 4 0 1648 894 603 803 +1683 4 0 830 502 725 1346 +1684 4 0 850 1593 644 1137 +1685 4 0 439 24 35 48 +1686 4 0 1534 30 1043 35 +1687 4 0 1534 24 30 35 +1688 4 0 399 1043 1020 439 +1689 4 0 1534 1043 1735 399 +1690 4 0 440 820 742 1517 +1691 4 0 692 23 47 29 +1692 4 0 653 910 831 1139 +1693 4 0 439 1247 1020 399 +1694 4 0 820 1131 440 1067 +1695 4 0 586 1067 587 845 +1696 4 0 845 1131 586 1067 +1697 4 0 440 820 1517 1131 +1698 4 0 1020 862 1131 586 +1699 4 0 961 837 1813 1371 +1700 4 0 1268 1102 1053 1130 +1701 4 0 1376 1305 1026 1029 +1702 4 0 1140 1117 407 1457 +1703 4 0 1359 913 935 702 +1704 4 0 702 913 935 775 +1705 4 0 429 1205 644 643 +1706 4 0 332 721 424 1144 +1707 4 0 515 383 1147 727 +1708 4 0 1150 624 980 1464 +1709 4 0 776 332 1071 1155 +1710 4 0 1552 1010 1071 1155 +1711 4 0 1620 1198 677 1028 +1712 4 0 1614 1747 688 1031 +1713 4 0 687 1158 1029 1376 +1714 4 0 1158 636 672 453 +1715 4 0 687 1158 1376 453 +1716 4 0 941 534 1159 847 +1717 4 0 439 35 56 48 +1718 4 0 1043 35 30 34 +1719 4 0 1043 385 34 639 +1720 4 0 1020 1044 1517 1131 +1721 4 0 1517 742 440 1044 +1722 4 0 1043 639 1735 399 +1723 4 0 1723 1044 808 742 +1724 4 0 1043 1044 639 399 +1725 4 0 1020 1044 1043 399 +1726 4 0 1039 1157 691 1297 +1727 4 0 813 811 1442 801 +1728 4 0 486 1451 1045 986 +1729 4 0 487 134 550 486 +1730 4 0 888 1165 868 413 +1731 4 0 1112 888 1165 868 +1732 4 0 1306 1244 758 774 +1733 4 0 840 431 1527 1166 +1734 4 0 1527 435 1166 431 +1735 4 0 833 1386 1642 762 +1736 4 0 1046 706 1717 833 +1737 4 0 1156 553 792 1669 +1738 4 0 1049 797 1830 706 +1739 4 0 1332 491 387 536 +1740 4 0 1048 795 1200 705 +1741 4 0 1049 833 1201 706 +1742 4 0 1049 1201 797 706 +1743 4 0 774 1212 1613 955 +1744 4 0 1679 1151 1048 795 +1745 4 0 1649 774 1613 955 +1746 4 0 939 1167 533 887 +1747 4 0 1048 795 705 1679 +1748 4 0 1168 1309 1270 1224 +1749 4 0 94 1753 104 1758 +1750 4 0 1049 1194 1830 895 +1751 4 0 1641 1379 1169 825 +1752 4 0 954 86 616 591 +1753 4 0 954 86 591 339 +1754 4 0 644 850 601 1170 +1755 4 0 1132 644 601 1170 +1756 4 0 429 1170 644 1205 +1757 4 0 644 429 850 1170 +1758 4 0 438 1615 1171 607 +1759 4 0 429 1205 861 1051 +1760 4 0 343 363 362 1172 +1761 4 0 343 1172 517 363 +1762 4 0 343 517 1172 861 +1763 4 0 861 1205 1173 1051 +1764 4 0 1173 861 517 376 +1765 4 0 1246 1644 1174 759 +1766 4 0 1054 299 267 293 +1767 4 0 1054 299 271 267 +1768 4 0 560 558 828 559 +1769 4 0 1054 828 559 726 +1770 4 0 1188 1133 1623 895 +1771 4 0 126 487 134 550 +1772 4 0 316 1518 310 572 +1773 4 0 134 130 1045 142 +1774 4 0 134 460 486 1045 +1775 4 0 730 32 458 744 +1776 4 0 730 903 962 744 +1777 4 0 730 458 903 744 +1778 4 0 553 491 792 1220 +1779 4 0 31 729 25 57 +1780 4 0 1049 1201 1220 895 +1781 4 0 58 32 985 26 +1782 4 0 1178 577 972 1795 +1783 4 0 992 440 1600 1261 +1784 4 0 33 65 1261 43 +1785 4 0 768 1254 1003 1408 +1786 4 0 1441 1364 530 957 +1787 4 0 985 40 548 984 +1788 4 0 545 823 984 548 +1789 4 0 1180 896 974 595 +1790 4 0 1586 896 974 1180 +1791 4 0 1506 1181 391 787 +1792 4 0 515 727 1566 1482 +1793 4 0 1100 1122 1121 891 +1794 4 0 251 649 227 245 +1795 4 0 239 251 816 649 +1796 4 0 75 1304 886 83 +1797 4 0 83 1304 79 63 +1798 4 0 75 63 1304 83 +1799 4 0 83 886 969 1304 +1800 4 0 419 157 1550 1823 +1801 4 0 1550 718 419 1809 +1802 4 0 1823 157 1550 1363 +1803 4 0 419 1809 1823 1550 +1804 4 0 844 620 1812 1184 +1805 4 0 373 322 1184 1335 +1806 4 0 373 1184 620 1335 +1807 4 0 689 1185 1762 333 +1808 4 0 689 1450 1185 333 +1809 4 0 936 715 836 1077 +1810 4 0 1835 1186 915 1737 +1811 4 0 1646 1186 1429 1601 +1812 4 0 1266 382 1544 1243 +1813 4 0 1243 1266 1312 1544 +1814 4 0 990 532 1010 1071 +1815 4 0 1696 1478 532 1011 +1816 4 0 600 1460 976 1073 +1817 4 0 1187 368 427 262 +1818 4 0 725 262 368 1187 +1819 4 0 1697 715 1069 936 +1820 4 0 1069 835 936 715 +1821 4 0 510 1336 521 1455 +1822 4 0 510 1440 1336 1455 +1823 4 0 1194 895 1049 1312 +1824 4 0 291 307 900 305 +1825 4 0 900 307 291 1757 +1826 4 0 1757 893 652 1573 +1827 4 0 1625 1836 946 1189 +1828 4 0 1070 1189 1836 1602 +1829 4 0 1189 1557 1740 717 +1830 4 0 412 1191 866 1380 +1831 4 0 1827 1192 764 999 +1832 4 0 1565 764 998 1192 +1833 4 0 1194 1623 1106 895 +1834 4 0 1055 1194 1498 1106 +1835 4 0 1623 895 1194 1188 +1836 4 0 1195 411 542 408 +1837 4 0 408 507 1076 603 +1838 4 0 1076 408 303 281 +1839 4 0 859 391 1402 990 +1840 4 0 1037 1145 1501 1358 +1841 4 0 1586 1146 752 896 +1842 4 0 1217 883 1146 782 +1843 4 0 883 1502 1146 782 +1844 4 0 1482 1761 515 727 +1845 4 0 1145 1148 1123 475 +1846 4 0 591 685 634 911 +1847 4 0 685 591 618 911 +1848 4 0 954 591 1396 634 +1849 4 0 732 406 433 437 +1850 4 0 96 86 954 110 +1851 4 0 740 732 1716 1373 +1852 4 0 954 110 86 339 +1853 4 0 685 591 815 618 +1854 4 0 523 1151 556 1355 +1855 4 0 1555 1033 734 1130 +1856 4 0 730 985 545 1080 +1857 4 0 729 25 57 49 +1858 4 0 1746 1104 328 1838 +1859 4 0 985 26 50 58 +1860 4 0 525 1152 526 495 +1861 4 0 627 980 1437 1153 +1862 4 0 985 32 58 730 +1863 4 0 1080 545 730 744 +1864 4 0 1080 962 937 744 +1865 4 0 1080 730 962 744 +1866 4 0 545 730 744 32 +1867 4 0 1683 1377 1215 589 +1868 4 0 730 32 545 985 +1869 4 0 545 20 985 26 +1870 4 0 736 1154 563 927 +1871 4 0 545 985 32 26 +1872 4 0 1035 676 1028 1038 +1873 4 0 643 429 973 428 +1874 4 0 961 676 1592 1198 +1875 4 0 489 1198 1592 676 +1876 4 0 1036 1621 865 1028 +1877 4 0 1028 1198 1621 865 +1878 4 0 865 1198 1621 961 +1879 4 0 1475 1256 965 566 +1880 4 0 508 1214 1448 1725 +1881 4 0 129 1357 137 811 +1882 4 0 1357 459 125 123 +1883 4 0 1111 1363 1199 165 +1884 4 0 503 696 1244 758 +1885 4 0 1363 1199 165 611 +1886 4 0 718 897 617 1367 +1887 4 0 1048 1200 1156 1712 +1888 4 0 1200 479 1385 705 +1889 4 0 1048 1200 1385 705 +1890 4 0 1049 1730 1220 1201 +1891 4 0 415 1122 1037 1454 +1892 4 0 800 460 486 550 +1893 4 0 800 986 486 460 +1894 4 0 1190 659 1154 1328 +1895 4 0 212 202 455 206 +1896 4 0 206 202 455 1325 +1897 4 0 1040 1645 1157 691 +1898 4 0 435 405 1527 416 +1899 4 0 569 881 1087 878 +1900 4 0 569 879 881 878 +1901 4 0 1087 878 1085 569 +1902 4 0 1085 878 879 569 +1903 4 0 1162 700 578 1202 +1904 4 0 1458 877 1087 778 +1905 4 0 578 700 1162 1074 +1906 4 0 700 1714 1202 565 +1907 4 0 700 565 1202 1162 +1908 4 0 1087 877 878 881 +1909 4 0 875 816 728 1228 +1910 4 0 160 170 1344 1134 +1911 4 0 854 1650 648 875 +1912 4 0 1283 188 196 1263 +1913 4 0 1037 1123 1122 475 +1914 4 0 807 1235 805 216 +1915 4 0 216 219 807 1749 +1916 4 0 979 1235 224 1234 +1917 4 0 1500 805 871 1235 +1918 4 0 495 1198 337 489 +1919 4 0 842 445 1501 1668 +1920 4 0 950 1525 1428 571 +1921 4 0 1091 442 1474 1728 +1922 4 0 1098 414 1474 869 +1923 4 0 1094 465 1095 443 +1924 4 0 467 1572 1093 1570 +1925 4 0 444 467 1093 1817 +1926 4 0 1572 1093 466 467 +1927 4 0 1184 417 1705 1335 +1928 4 0 628 1572 1095 466 +1929 4 0 1318 1317 353 354 +1930 4 0 128 1316 136 1318 +1931 4 0 1501 1145 445 1358 +1932 4 0 1094 442 464 465 +1933 4 0 925 560 561 786 +1934 4 0 561 1161 300 609 +1935 4 0 513 876 1640 993 +1936 4 0 869 1094 1507 1667 +1937 4 0 890 1121 891 414 +1938 4 0 964 1700 326 1162 +1939 4 0 453 1682 1204 687 +1940 4 0 1198 1028 1620 865 +1941 4 0 643 429 1205 376 +1942 4 0 1124 476 1123 417 +1943 4 0 400 1206 711 820 +1944 4 0 1124 1335 417 1184 +1945 4 0 1123 1124 417 841 +1946 4 0 1100 869 414 1098 +1947 4 0 487 351 549 349 +1948 4 0 510 1207 352 350 +1949 4 0 1093 467 1678 1817 +1950 4 0 827 1525 1255 950 +1951 4 0 1094 869 1507 1100 +1952 4 0 1100 1094 443 1507 +1953 4 0 1091 463 1706 867 +1954 4 0 1091 442 867 869 +1955 4 0 1508 1112 1165 868 +1956 4 0 702 1359 913 1208 +1957 4 0 1002 1208 913 695 +1958 4 0 1568 378 1490 977 +1959 4 0 413 868 1098 1474 +1960 4 0 1119 1098 413 868 +1961 4 0 1098 869 1474 1091 +1962 4 0 901 426 371 447 +1963 4 0 1121 890 1119 1098 +1964 4 0 1098 1121 890 414 +1965 4 0 738 426 901 447 +1966 4 0 1119 888 1112 868 +1967 4 0 549 487 486 1041 +1968 4 0 1209 1120 28 763 +1969 4 0 1284 1426 770 722 +1970 4 0 1072 332 1452 1478 +1971 4 0 768 1398 1254 503 +1972 4 0 1098 1119 413 890 +1973 4 0 1119 888 413 890 +1974 4 0 1398 696 1254 503 +1975 4 0 1119 413 888 868 +1976 4 0 442 1091 1474 869 +1977 4 0 1293 1213 1016 1579 +1978 4 0 823 19 845 587 +1979 4 0 920 668 1216 1526 +1980 4 0 1217 576 883 782 +1981 4 0 752 1217 1146 782 +1982 4 0 930 960 489 1218 +1983 4 0 485 88 99 94 +1984 4 0 1219 780 622 1403 +1985 4 0 747 780 1219 1618 +1986 4 0 751 1437 622 1230 +1987 4 0 1221 567 1127 809 +1988 4 0 1127 567 1232 983 +1989 4 0 491 1220 553 1332 +1990 4 0 1220 491 792 1266 +1991 4 0 1296 671 6 8 +1992 4 0 1505 1296 1748 1031 +1993 4 0 1296 1031 1483 1081 +1994 4 0 1221 104 1248 967 +1995 4 0 327 1758 1221 967 +1996 4 0 982 983 1018 809 +1997 4 0 1159 534 1581 847 +1998 4 0 687 1204 673 1682 +1999 4 0 714 333 1682 673 +2000 4 0 1232 1223 84 1311 +2001 4 0 84 1311 1223 1286 +2002 4 0 751 623 622 1238 +2003 4 0 1261 384 43 1270 +2004 4 0 1556 1175 898 894 +2005 4 0 385 1225 1043 66 +2006 4 0 1384 700 1226 1074 +2007 4 0 592 1610 1366 889 +2008 4 0 1366 1610 402 889 +2009 4 0 1125 289 1227 1301 +2010 4 0 854 1228 929 340 +2011 4 0 875 816 1228 1430 +2012 4 0 1228 1650 854 875 +2013 4 0 849 1518 572 1485 +2014 4 0 1518 1485 310 572 +2015 4 0 1674 531 936 943 +2016 4 0 1060 1489 1336 959 +2017 4 0 959 91 1336 103 +2018 4 0 524 1411 1436 1229 +2019 4 0 524 1006 1411 1229 +2020 4 0 1763 1006 524 1229 +2021 4 0 496 522 1297 674 +2022 4 0 746 623 1061 1779 +2023 4 0 1230 623 1061 746 +2024 4 0 1230 1219 622 1403 +2025 4 0 1231 700 1634 693 +2026 4 0 1231 565 700 958 +2027 4 0 1221 567 98 1232 +2028 4 0 1653 1233 1253 792 +2029 4 0 807 1235 1595 340 +2030 4 0 898 1556 894 1346 +2031 4 0 546 1346 1556 898 +2032 4 0 467 682 912 468 +2033 4 0 1236 1284 770 380 +2034 4 0 1011 1605 1236 847 +2035 4 0 1237 822 1760 632 +2036 4 0 511 1239 593 557 +2037 4 0 398 1108 568 1660 +2038 4 0 824 1337 1701 494 +2039 4 0 863 1227 402 1366 +2040 4 0 863 1366 402 571 +2041 4 0 1292 483 921 1385 +2042 4 0 491 921 536 1385 +2043 4 0 758 696 1244 1306 +2044 4 0 490 1249 641 723 +2045 4 0 687 1250 1204 920 +2046 4 0 788 1431 395 1685 +2047 4 0 626 449 631 1251 +2048 4 0 387 536 491 1201 +2049 4 0 491 921 386 536 +2050 4 0 670 1520 1416 593 +2051 4 0 821 1652 670 1520 +2052 4 0 792 1233 1612 1653 +2053 4 0 1210 1004 768 1398 +2054 4 0 607 1256 1606 407 +2055 4 0 1296 1551 520 1578 +2056 4 0 1296 1564 1360 524 +2057 4 0 1360 1748 671 1296 +2058 4 0 1296 6 671 520 +2059 4 0 1173 832 724 517 +2060 4 0 1173 517 861 832 +2061 4 0 1239 1259 593 557 +2062 4 0 1033 1709 1574 1260 +2063 4 0 1260 1838 1104 1025 +2064 4 0 1260 1104 1838 334 +2065 4 0 1260 1034 1838 1025 +2066 4 0 700 1384 69 403 +2067 4 0 742 636 711 1261 +2068 4 0 440 29 1261 820 +2069 4 0 1594 801 1267 850 +2070 4 0 429 850 1594 1267 +2071 4 0 1268 1371 1427 961 +2072 4 0 1268 1053 1371 961 +2073 4 0 1269 721 1289 424 +2074 4 0 424 721 332 981 +2075 4 0 981 721 1269 424 +2076 4 0 447 253 1329 1331 +2077 4 0 447 253 243 1329 +2078 4 0 916 1180 974 595 +2079 4 0 1180 595 916 1456 +2080 4 0 812 1287 621 970 +2081 4 0 666 1720 1015 1563 +2082 4 0 331 518 1288 691 +2083 4 0 1269 721 423 1289 +2084 4 0 1823 641 1777 1199 +2085 4 0 490 1249 1199 641 +2086 4 0 207 1324 195 203 +2087 4 0 993 203 1326 1397 +2088 4 0 471 287 1290 296 +2089 4 0 471 502 1290 287 +2090 4 0 1290 502 894 1346 +2091 4 0 482 1385 1292 479 +2092 4 0 1059 583 377 160 +2093 4 0 953 1059 1537 1557 +2094 4 0 1059 953 1537 933 +2095 4 0 1293 667 1016 1213 +2096 4 0 1495 518 331 1293 +2097 4 0 518 1495 1016 1293 +2098 4 0 1294 1835 915 1737 +2099 4 0 1250 689 333 1295 +2100 4 0 603 509 894 605 +2101 4 0 1296 1578 375 393 +2102 4 0 549 1041 800 459 +2103 4 0 549 487 1041 459 +2104 4 0 522 1297 1378 336 +2105 4 0 1518 849 572 1298 +2106 4 0 784 1299 885 576 +2107 4 0 646 615 1594 602 +2108 4 0 1170 1449 601 1422 +2109 4 0 1132 1170 601 1422 +2110 4 0 1135 1170 1422 602 +2111 4 0 658 556 1300 523 +2112 4 0 1300 523 556 1355 +2113 4 0 1300 556 1470 1355 +2114 4 0 1053 961 1813 1371 +2115 4 0 1027 1603 1386 386 +2116 4 0 386 483 1386 536 +2117 4 0 386 536 1386 1201 +2118 4 0 1124 1335 1184 322 +2119 4 0 1131 862 845 586 +2120 4 0 1302 989 1392 1694 +2121 4 0 957 1582 1179 1364 +2122 4 0 530 957 1364 1340 +2123 4 0 1745 1798 1026 1305 +2124 4 0 1588 705 774 1306 +2125 4 0 1644 1306 758 774 +2126 4 0 808 1307 381 346 +2127 4 0 1307 381 346 344 +2128 4 0 712 637 1780 1308 +2129 4 0 714 333 1770 1308 +2130 4 0 1415 1149 1310 1174 +2131 4 0 1312 895 1049 1220 +2132 4 0 1312 895 1220 1266 +2133 4 0 761 1128 762 769 +2134 4 0 761 1128 769 697 +2135 4 0 1234 224 1815 216 +2136 4 0 979 1664 1234 224 +2137 4 0 703 1242 1499 1828 +2138 4 0 703 772 1242 935 +2139 4 0 606 1354 1032 1608 +2140 4 0 1666 390 1354 1032 +2141 4 0 934 606 1516 1114 +2142 4 0 1114 172 1354 162 +2143 4 0 617 897 420 1729 +2144 4 0 1172 517 832 861 +2145 4 0 1518 821 746 1485 +2146 4 0 821 1480 1618 747 +2147 4 0 746 1518 1652 821 +2148 4 0 939 887 1052 1656 +2149 4 0 939 1656 1052 1414 +2150 4 0 183 1656 939 1414 +2151 4 0 387 1332 536 761 +2152 4 0 621 1333 1083 1406 +2153 4 0 344 1334 346 347 +2154 4 0 499 347 1334 344 +2155 4 0 505 347 1334 499 +2156 4 0 551 373 1781 388 +2157 4 0 409 608 302 471 +2158 4 0 603 604 893 507 +2159 4 0 603 604 507 1076 +2160 4 0 794 703 914 704 +2161 4 0 935 702 775 1242 +2162 4 0 924 1440 1336 510 +2163 4 0 924 1336 103 982 +2164 4 0 1336 982 959 103 +2165 4 0 703 772 1499 1242 +2166 4 0 935 772 1242 753 +2167 4 0 1361 285 287 296 +2168 4 0 296 1361 285 1786 +2169 4 0 296 285 308 1786 +2170 4 0 1253 1233 382 792 +2171 4 0 42 1660 398 1337 +2172 4 0 1453 955 1244 1751 +2173 4 0 955 1279 1244 1751 +2174 4 0 1822 1453 773 503 +2175 4 0 1453 1244 503 1822 +2176 4 0 1135 1338 646 602 +2177 4 0 1786 917 308 1175 +2178 4 0 1556 1175 1382 898 +2179 4 0 1339 602 615 1598 +2180 4 0 1494 1648 1810 894 +2181 4 0 1062 1248 799 967 +2182 4 0 1124 1335 1341 476 +2183 4 0 651 875 648 1650 +2184 4 0 1509 896 1368 752 +2185 4 0 653 1684 1097 1008 +2186 4 0 1280 127 1262 131 +2187 4 0 1317 1319 353 354 +2188 4 0 1323 1303 198 208 +2189 4 0 1314 115 1265 127 +2190 4 0 935 695 1359 703 +2191 4 0 1206 1517 742 820 +2192 4 0 1676 809 966 1476 +2193 4 0 1406 812 621 970 +2194 4 0 1353 970 812 1406 +2195 4 0 1406 1083 621 812 +2196 4 0 1406 1083 812 1353 +2197 4 0 652 1513 873 632 +2198 4 0 507 408 1195 603 +2199 4 0 542 408 603 1195 +2200 4 0 1072 332 1057 1452 +2201 4 0 170 160 1344 377 +2202 4 0 1804 1042 906 1632 +2203 4 0 1632 1345 1804 1042 +2204 4 0 904 944 450 1345 +2205 4 0 410 1054 726 303 +2206 4 0 726 303 1054 299 +2207 4 0 1316 136 1320 132 +2208 4 0 1320 354 353 1319 +2209 4 0 1318 353 1320 354 +2210 4 0 1318 136 1281 1320 +2211 4 0 358 359 360 1324 +2212 4 0 1324 1435 359 360 +2213 4 0 358 1283 360 359 +2214 4 0 359 361 1283 360 +2215 4 0 458 741 1286 76 +2216 4 0 458 903 348 741 +2217 4 0 730 458 817 903 +2218 4 0 458 1286 64 76 +2219 4 0 1265 127 115 121 +2220 4 0 116 1315 128 120 +2221 4 0 1290 1556 1346 894 +2222 4 0 352 350 353 1265 +2223 4 0 1317 352 353 1265 +2224 4 0 1318 350 353 352 +2225 4 0 1327 204 1303 1323 +2226 4 0 1324 360 364 1435 +2227 4 0 215 993 1397 203 +2228 4 0 1466 1327 1303 361 +2229 4 0 361 1323 1327 1303 +2230 4 0 647 1311 430 1286 +2231 4 0 1132 1056 1052 804 +2232 4 0 264 372 923 1330 +2233 4 0 786 923 785 260 +2234 4 0 1347 628 1772 232 +2235 4 0 1815 1347 1234 216 +2236 4 0 1349 1469 325 89 +2237 4 0 307 1811 1350 295 +2238 4 0 1056 1769 1352 167 +2239 4 0 1353 812 745 905 +2240 4 0 863 827 1255 950 +2241 4 0 1326 360 364 1324 +2242 4 0 1326 645 360 1324 +2243 4 0 807 805 1561 1327 +2244 4 0 360 1327 361 1323 +2245 4 0 1318 1281 354 1320 +2246 4 0 1282 358 360 1324 +2247 4 0 458 741 348 1286 +2248 4 0 458 345 430 348 +2249 4 0 1348 33 15 1261 +2250 4 0 430 647 1286 348 +2251 4 0 523 1151 1355 552 +2252 4 0 1300 523 1355 552 +2253 4 0 1300 1355 555 552 +2254 4 0 1356 677 1014 336 +2255 4 0 125 459 1357 811 +2256 4 0 1037 1145 1358 1575 +2257 4 0 1655 841 843 1358 +2258 4 0 1365 1335 322 1362 +2259 4 0 1365 528 322 530 +2260 4 0 1365 1335 1362 1341 +2261 4 0 415 1454 1093 1100 +2262 4 0 935 702 1242 1359 +2263 4 0 1359 1343 702 477 +2264 4 0 1359 702 1242 477 +2265 4 0 798 961 1813 1053 +2266 4 0 1409 568 671 1360 +2267 4 0 549 459 1357 123 +2268 4 0 1357 125 129 123 +2269 4 0 1357 459 800 811 +2270 4 0 1296 1578 520 1360 +2271 4 0 520 1360 671 1296 +2272 4 0 84 80 1311 64 +2273 4 0 554 372 369 456 +2274 4 0 651 554 366 369 +2275 4 0 1316 1320 136 1318 +2276 4 0 1317 1280 1262 1319 +2277 4 0 353 1317 1262 1319 +2278 4 0 1316 353 1320 1318 +2279 4 0 1365 1362 322 528 +2280 4 0 1365 1362 528 1341 +2281 4 0 322 528 1362 373 +2282 4 0 1264 128 1316 122 +2283 4 0 1316 350 353 1318 +2284 4 0 1264 1315 350 1318 +2285 4 0 1791 620 388 1829 +2286 4 0 1829 684 1160 1791 +2287 4 0 1364 957 1582 1340 +2288 4 0 723 1530 600 1367 +2289 4 0 1367 1729 1530 600 +2290 4 0 107 1248 104 1313 +2291 4 0 38 439 24 1247 +2292 4 0 725 370 368 971 +2293 4 0 370 1329 371 368 +2294 4 0 1023 1329 1063 370 +2295 4 0 1383 1704 1063 370 +2296 4 0 1368 910 896 653 +2297 4 0 1368 1401 1509 752 +2298 4 0 385 347 346 1225 +2299 4 0 379 354 1271 355 +2300 4 0 902 1272 1320 355 +2301 4 0 902 1272 1278 144 +2302 4 0 902 1272 355 1278 +2303 4 0 488 1273 358 357 +2304 4 0 519 358 1274 357 +2305 4 0 1274 661 640 519 +2306 4 0 940 987 1800 1369 +2307 4 0 1276 640 176 1274 +2308 4 0 1275 488 357 1273 +2309 4 0 1276 640 1274 661 +2310 4 0 848 153 1275 1277 +2311 4 0 379 335 1277 848 +2312 4 0 355 379 335 1277 +2313 4 0 1278 664 154 335 +2314 4 0 1278 902 664 355 +2315 4 0 1276 1275 335 356 +2316 4 0 1317 354 1280 1319 +2317 4 0 1621 865 961 1371 +2318 4 0 359 1283 361 1263 +2319 4 0 1323 1283 196 1263 +2320 4 0 1282 1324 360 645 +2321 4 0 361 1283 1323 1263 +2322 4 0 339 1285 634 118 +2323 4 0 455 363 1325 1328 +2324 4 0 927 374 454 362 +2325 4 0 461 1372 866 1525 +2326 4 0 1191 1372 866 461 +2327 4 0 455 1325 202 1328 +2328 4 0 685 619 117 351 +2329 4 0 1285 349 634 351 +2330 4 0 1373 732 433 1468 +2331 4 0 1373 732 406 433 +2332 4 0 455 927 363 1328 +2333 4 0 1317 1314 1265 127 +2334 4 0 352 1314 1265 1317 +2335 4 0 1318 352 1315 350 +2336 4 0 788 1685 395 1374 +2337 4 0 728 1228 854 875 +2338 4 0 385 347 74 1375 +2339 4 0 616 74 347 1375 +2340 4 0 942 594 1456 909 +2341 4 0 909 942 916 1456 +2342 4 0 1439 826 461 678 +2343 4 0 672 1376 453 1147 +2344 4 0 515 686 1147 1376 +2345 4 0 686 1376 672 1147 +2346 4 0 647 430 995 348 +2347 4 0 474 549 459 351 +2348 4 0 348 995 345 430 +2349 4 0 474 113 351 459 +2350 4 0 1285 349 487 114 +2351 4 0 339 349 634 1285 +2352 4 0 1265 521 352 350 +2353 4 0 116 1313 1264 1315 +2354 4 0 362 363 1325 832 +2355 4 0 363 1325 1328 362 +2356 4 0 215 1397 207 203 +2357 4 0 306 1382 292 308 +2358 4 0 1314 521 352 1265 +2359 4 0 1313 350 1264 1315 +2360 4 0 363 206 1325 832 +2361 4 0 206 1325 455 363 +2362 4 0 1265 121 1262 127 +2363 4 0 128 1264 1316 1318 +2364 4 0 1318 352 353 1317 +2365 4 0 353 1265 1262 1317 +2366 4 0 1316 1264 350 1318 +2367 4 0 361 1283 360 1323 +2368 4 0 379 1271 1319 131 +2369 4 0 379 1319 354 1320 +2370 4 0 1272 1281 136 1320 +2371 4 0 187 1282 1324 1322 +2372 4 0 488 1282 187 1322 +2373 4 0 358 359 1324 1322 +2374 4 0 488 359 358 1322 +2375 4 0 188 1283 519 1263 +2376 4 0 519 1283 358 359 +2377 4 0 379 1271 354 1319 +2378 4 0 1272 354 1281 1320 +2379 4 0 1282 358 1324 1322 +2380 4 0 488 358 1282 1322 +2381 4 0 1283 359 519 1263 +2382 4 0 1223 1311 647 1286 +2383 4 0 1311 1286 84 64 +2384 4 0 647 995 430 1311 +2385 4 0 1127 995 647 1311 +2386 4 0 153 848 1321 155 +2387 4 0 488 357 356 1275 +2388 4 0 1276 1275 356 357 +2389 4 0 848 1275 1321 356 +2390 4 0 357 356 1276 661 +2391 4 0 1276 335 664 356 +2392 4 0 1276 156 640 661 +2393 4 0 381 1224 1270 1309 +2394 4 0 505 1309 1270 1168 +2395 4 0 366 651 340 1430 +2396 4 0 366 651 1430 554 +2397 4 0 381 1270 992 1334 +2398 4 0 381 1270 1334 1309 +2399 4 0 505 1334 1270 1309 +2400 4 0 385 347 1375 344 +2401 4 0 616 1375 347 344 +2402 4 0 458 430 1286 348 +2403 4 0 901 427 1187 368 +2404 4 0 426 1329 371 447 +2405 4 0 1063 371 1329 1331 +2406 4 0 1436 674 1747 1568 +2407 4 0 901 739 448 427 +2408 4 0 522 674 1378 1297 +2409 4 0 448 901 427 262 +2410 4 0 369 922 456 372 +2411 4 0 1330 264 372 404 +2412 4 0 372 785 922 923 +2413 4 0 1330 372 369 404 +2414 4 0 372 369 922 785 +2415 4 0 810 395 1379 392 +2416 4 0 825 395 390 1379 +2417 4 0 514 1834 871 1380 +2418 4 0 1768 1227 863 1301 +2419 4 0 797 1027 60 706 +2420 4 0 1327 1466 1303 1834 +2421 4 0 1400 1721 1493 932 +2422 4 0 308 1382 292 296 +2423 4 0 546 899 1346 898 +2424 4 0 296 1175 308 1382 +2425 4 0 725 371 370 1383 +2426 4 0 725 830 1383 370 +2427 4 0 510 521 1314 1455 +2428 4 0 510 521 352 1314 +2429 4 0 103 115 1455 119 +2430 4 0 1455 1336 521 115 +2431 4 0 1455 103 1336 115 +2432 4 0 1332 491 536 1385 +2433 4 0 761 1385 1639 697 +2434 4 0 762 1386 342 536 +2435 4 0 387 536 1201 1386 +2436 4 0 387 536 1386 762 +2437 4 0 715 835 836 1479 +2438 4 0 310 314 1518 316 +2439 4 0 167 1769 1387 804 +2440 4 0 1250 1024 1030 1445 +2441 4 0 968 1252 747 1480 +2442 4 0 557 511 968 670 +2443 4 0 1009 1388 166 1113 +2444 4 0 935 1359 1242 703 +2445 4 0 1012 1009 1388 166 +2446 4 0 1012 1388 847 1580 +2447 4 0 351 349 487 1285 +2448 4 0 1019 425 1245 1707 +2449 4 0 1399 158 164 1113 +2450 4 0 1319 354 1280 1271 +2451 4 0 355 354 1272 1320 +2452 4 0 379 1271 1277 355 +2453 4 0 429 743 1391 1051 +2454 4 0 848 1275 356 335 +2455 4 0 358 1273 488 1282 +2456 4 0 519 358 1283 1274 +2457 4 0 1020 1044 399 1517 +2458 4 0 1109 317 319 1405 +2459 4 0 1405 319 1141 317 +2460 4 0 927 563 374 1328 +2461 4 0 370 1329 1063 371 +2462 4 0 1070 338 321 1392 +2463 4 0 989 1070 321 1392 +2464 4 0 1302 989 321 1392 +2465 4 0 730 32 68 458 +2466 4 0 1393 1245 1113 158 +2467 4 0 1440 103 119 111 +2468 4 0 103 1455 1440 119 +2469 4 0 924 103 1440 111 +2470 4 0 1440 103 1336 1455 +2471 4 0 924 103 1336 1440 +2472 4 0 953 1537 933 1394 +2473 4 0 1342 1040 1157 677 +2474 4 0 1036 1620 1040 1342 +2475 4 0 510 472 1207 350 +2476 4 0 1207 1018 472 510 +2477 4 0 322 1362 1335 373 +2478 4 0 388 322 1184 373 +2479 4 0 1792 1539 620 844 +2480 4 0 620 928 1812 1829 +2481 4 0 936 1077 1073 1460 +2482 4 0 600 1729 976 1177 +2483 4 0 1025 1744 1837 1104 +2484 4 0 1034 1744 1025 1260 +2485 4 0 1837 1691 635 1104 +2486 4 0 635 329 1837 1218 +2487 4 0 688 1031 1296 1081 +2488 4 0 977 1438 378 1490 +2489 4 0 29 1067 692 23 +2490 4 0 687 920 383 1413 +2491 4 0 1250 1295 1204 920 +2492 4 0 729 31 937 962 +2493 4 0 1080 729 937 962 +2494 4 0 1204 920 1832 642 +2495 4 0 904 944 1345 942 +2496 4 0 875 816 1430 554 +2497 4 0 1196 652 873 632 +2498 4 0 1647 632 652 1196 +2499 4 0 1010 1066 1395 1402 +2500 4 0 1733 1010 1402 1066 +2501 4 0 1396 591 951 815 +2502 4 0 1396 685 591 815 +2503 4 0 953 1394 933 584 +2504 4 0 203 1326 1397 1324 +2505 4 0 524 1808 947 1006 +2506 4 0 1398 696 503 758 +2507 4 0 1174 696 1398 758 +2508 4 0 615 1451 613 1594 +2509 4 0 1594 646 613 615 +2510 4 0 613 813 1267 1594 +2511 4 0 429 1594 613 1267 +2512 4 0 425 1399 1245 1707 +2513 4 0 1399 1245 158 1113 +2514 4 0 654 1400 932 975 +2515 4 0 784 1401 748 1825 +2516 4 0 653 748 452 1401 +2517 4 0 748 784 452 1401 +2518 4 0 340 366 650 651 +2519 4 0 404 650 366 651 +2520 4 0 340 648 651 650 +2521 4 0 1733 1402 859 1066 +2522 4 0 1733 859 1402 990 +2523 4 0 1403 1230 1219 746 +2524 4 0 1219 1403 746 780 +2525 4 0 1765 1404 1256 566 +2526 4 0 1514 1256 1607 1404 +2527 4 0 1086 1405 1141 317 +2528 4 0 1163 317 1109 1405 +2529 4 0 1396 591 685 634 +2530 4 0 437 433 432 406 +2531 4 0 781 1816 1799 1805 +2532 4 0 1003 757 767 1408 +2533 4 0 1436 496 674 522 +2534 4 0 1436 496 522 1222 +2535 4 0 1411 496 1222 1390 +2536 4 0 1411 1006 1390 1229 +2537 4 0 568 516 398 1409 +2538 4 0 568 398 1360 1409 +2539 4 0 1331 257 275 261 +2540 4 0 716 915 1820 1410 +2541 4 0 524 947 1747 1411 +2542 4 0 934 1412 1114 168 +2543 4 0 168 1012 1412 529 +2544 4 0 385 1225 66 74 +2545 4 0 515 1413 383 1761 +2546 4 0 38 846 439 1247 +2547 4 0 846 588 1247 38 +2548 4 0 552 654 1722 656 +2549 4 0 552 1722 555 656 +2550 4 0 478 481 955 1279 +2551 4 0 955 481 1244 1279 +2552 4 0 670 1416 1520 1486 +2553 4 0 1366 1585 571 950 +2554 4 0 1508 1112 1366 1585 +2555 4 0 1508 1112 1585 1165 +2556 4 0 950 1585 571 1428 +2557 4 0 1508 1585 950 1428 +2558 4 0 698 321 679 1419 +2559 4 0 679 321 907 1419 +2560 4 0 429 376 861 1205 +2561 4 0 861 376 1173 1205 +2562 4 0 527 1222 496 498 +2563 4 0 1222 496 498 1390 +2564 4 0 1420 252 650 366 +2565 4 0 1420 650 252 228 +2566 4 0 252 228 240 1420 +2567 4 0 699 1750 1421 771 +2568 4 0 691 331 547 1288 +2569 4 0 547 1288 865 1620 +2570 4 0 1014 1297 522 336 +2571 4 0 522 495 1297 1014 +2572 4 0 1449 1594 1339 1422 +2573 4 0 987 1135 1599 1444 +2574 4 0 1170 602 1594 1422 +2575 4 0 1048 1332 761 1385 +2576 4 0 1200 1638 491 1385 +2577 4 0 1048 1200 1332 1385 +2578 4 0 1597 972 1464 1423 +2579 4 0 1597 1008 1423 452 +2580 4 0 1597 972 1423 1008 +2581 4 0 672 453 710 1147 +2582 4 0 1465 1191 461 543 +2583 4 0 771 699 763 28 +2584 4 0 646 1170 602 1594 +2585 4 0 1425 1300 656 1533 +2586 4 0 770 332 424 1426 +2587 4 0 332 1144 424 1426 +2588 4 0 1284 332 770 1426 +2589 4 0 1201 491 1220 1266 +2590 4 0 387 491 1220 1201 +2591 4 0 1730 387 1220 1201 +2592 4 0 676 1583 690 1427 +2593 4 0 676 750 1583 1427 +2594 4 0 1427 690 1268 334 +2595 4 0 1067 17 692 23 +2596 4 0 868 1508 1428 1165 +2597 4 0 868 1165 1428 413 +2598 4 0 1601 719 1429 422 +2599 4 0 1429 719 1488 422 +2600 4 0 1488 422 421 1429 +2601 4 0 875 1430 1228 1650 +2602 4 0 875 1430 1650 651 +2603 4 0 417 476 1123 1148 +2604 4 0 1395 1431 788 1685 +2605 4 0 696 1432 503 1244 +2606 4 0 503 696 1254 1432 +2607 4 0 526 496 495 1152 +2608 4 0 1001 1000 755 1434 +2609 4 0 1434 755 913 1208 +2610 4 0 1000 1434 1208 755 +2611 4 0 1435 361 359 360 +2612 4 0 1435 360 364 361 +2613 4 0 757 704 772 503 +2614 4 0 696 758 1174 1246 +2615 4 0 696 1174 1587 1246 +2616 4 0 1436 1411 674 496 +2617 4 0 1436 1411 496 1222 +2618 4 0 522 674 1436 1378 +2619 4 0 1177 1729 976 596 +2620 4 0 1177 596 420 1729 +2621 4 0 1437 622 627 751 +2622 4 0 627 1437 751 1153 +2623 4 0 1579 1213 1016 1491 +2624 4 0 1213 1579 1438 1491 +2625 4 0 381 1334 346 344 +2626 4 0 381 1334 344 1309 +2627 4 0 499 344 1334 1309 +2628 4 0 712 637 639 34 +2629 4 0 1506 1302 391 1181 +2630 4 0 391 1694 989 1302 +2631 4 0 1302 391 1694 1506 +2632 4 0 1771 298 471 296 +2633 4 0 894 1290 1556 605 +2634 4 0 1088 795 1649 1588 +2635 4 0 1441 530 373 957 +2636 4 0 1423 1008 1463 653 +2637 4 0 33 65 55 1600 +2638 4 0 1600 65 1261 33 +2639 4 0 239 251 649 227 +2640 4 0 816 649 1443 239 +2641 4 0 1029 1433 1158 1445 +2642 4 0 687 1158 1445 1029 +2643 4 0 1151 791 1679 552 +2644 4 0 1679 552 1613 774 +2645 4 0 224 219 216 1749 +2646 4 0 1235 807 1749 216 +2647 4 0 981 776 332 1071 +2648 4 0 721 776 332 981 +2649 4 0 981 721 776 1269 +2650 4 0 1446 1665 958 959 +2651 4 0 959 982 1446 1665 +2652 4 0 324 1553 1824 625 +2653 4 0 1553 1604 1824 625 +2654 4 0 1824 625 1604 1833 +2655 4 0 1752 874 1447 1680 +2656 4 0 1447 1680 835 1344 +2657 4 0 160 1344 1447 1134 +2658 4 0 393 375 1725 1471 +2659 4 0 1826 1287 812 970 +2660 4 0 1598 148 1622 138 +2661 4 0 986 1598 1045 138 +2662 4 0 1605 1284 380 480 +2663 4 0 380 1236 1284 1605 +2664 4 0 1787 1389 570 779 +2665 4 0 779 1389 1627 1787 +2666 4 0 1523 1524 827 678 +2667 4 0 1450 1176 330 1832 +2668 4 0 1709 330 1185 1450 +2669 4 0 1260 689 1838 1034 +2670 4 0 1034 1504 675 1025 +2671 4 0 863 1768 864 1524 +2672 4 0 928 620 1792 684 +2673 4 0 928 1792 1065 684 +2674 4 0 1594 1451 613 813 +2675 4 0 986 813 1451 1594 +2676 4 0 486 813 1451 986 +2677 4 0 1452 1284 770 1236 +2678 4 0 1452 332 770 1284 +2679 4 0 1452 332 1057 770 +2680 4 0 1376 1158 1029 1026 +2681 4 0 1376 1158 672 453 +2682 4 0 1449 1170 850 1594 +2683 4 0 1170 601 1449 850 +2684 4 0 1449 1170 1594 1422 +2685 4 0 257 1329 1529 1023 +2686 4 0 1529 257 275 1331 +2687 4 0 1518 572 316 1298 +2688 4 0 1471 1116 2 4 +2689 4 0 393 1116 1471 1643 +2690 4 0 4 1214 2 1471 +2691 4 0 393 1471 1448 1643 +2692 4 0 1448 1214 4 1471 +2693 4 0 1310 697 761 769 +2694 4 0 1822 1453 1244 1751 +2695 4 0 1453 1212 955 1129 +2696 4 0 1492 636 1158 453 +2697 4 0 1284 1452 1478 1236 +2698 4 0 1159 532 1072 1581 +2699 4 0 422 394 423 698 +2700 4 0 607 1117 1615 1457 +2701 4 0 1140 1117 1457 218 +2702 4 0 1171 607 1615 1457 +2703 4 0 871 412 1380 1633 +2704 4 0 412 1191 1380 1633 +2705 4 0 1593 1442 147 137 +2706 4 0 573 877 1458 778 +2707 4 0 1673 1192 754 765 +2708 4 0 999 1192 1673 765 +2709 4 0 1451 1594 615 986 +2710 4 0 515 1376 383 1413 +2711 4 0 515 727 1147 1566 +2712 4 0 1681 1492 1459 711 +2713 4 0 1657 987 533 887 +2714 4 0 1167 1657 533 887 +2715 4 0 1460 1077 1073 600 +2716 4 0 600 976 1460 1177 +2717 4 0 1212 955 1693 1461 +2718 4 0 552 654 656 1461 +2719 4 0 452 1462 883 576 +2720 4 0 653 1139 831 1684 +2721 4 0 1008 653 1684 1463 +2722 4 0 1509 896 653 1368 +2723 4 0 1368 653 1509 1401 +2724 4 0 695 913 935 1359 +2725 4 0 1359 695 913 1208 +2726 4 0 1796 1795 1464 972 +2727 4 0 1464 972 747 1423 +2728 4 0 1 1482 3 1115 +2729 4 0 1115 1 1482 1183 +2730 4 0 3 1211 1482 1 +2731 4 0 1757 1573 470 893 +2732 4 0 291 295 470 1573 +2733 4 0 652 1196 1757 307 +2734 4 0 968 1239 511 557 +2735 4 0 968 598 1239 1417 +2736 4 0 1395 1066 788 1431 +2737 4 0 1486 1520 320 1416 +2738 4 0 1486 320 1110 318 +2739 4 0 1486 1110 320 1520 +2740 4 0 1416 1520 320 593 +2741 4 0 1600 29 1261 440 +2742 4 0 33 1600 55 29 +2743 4 0 29 1600 1261 33 +2744 4 0 1136 1327 1466 361 +2745 4 0 1327 1136 1466 365 +2746 4 0 569 1017 1087 881 +2747 4 0 1468 607 1457 407 +2748 4 0 732 407 607 1468 +2749 4 0 1373 732 1468 407 +2750 4 0 1231 1469 958 403 +2751 4 0 385 74 62 1375 +2752 4 0 616 62 74 1375 +2753 4 0 1300 1470 555 1355 +2754 4 0 1471 1116 1182 2 +2755 4 0 1472 451 1515 974 +2756 4 0 906 1816 1773 1472 +2757 4 0 1175 777 1741 898 +2758 4 0 1162 700 403 1074 +2759 4 0 700 565 1162 958 +2760 4 0 591 911 634 339 +2761 4 0 954 591 634 339 +2762 4 0 675 637 1560 1308 +2763 4 0 1560 1770 1308 637 +2764 4 0 83 484 97 79 +2765 4 0 484 83 1304 79 +2766 4 0 367 1405 1473 504 +2767 4 0 1050 367 1473 504 +2768 4 0 1091 1474 868 441 +2769 4 0 1098 414 413 1474 +2770 4 0 1098 1474 868 1091 +2771 4 0 687 673 1158 1682 +2772 4 0 471 1290 605 1771 +2773 4 0 1124 1335 1365 1341 +2774 4 0 1765 1256 1475 566 +2775 4 0 567 1497 809 1476 +2776 4 0 931 1576 1477 1022 +2777 4 0 434 931 1477 892 +2778 4 0 1477 434 892 1099 +2779 4 0 451 1180 974 938 +2780 4 0 847 1011 1138 1581 +2781 4 0 534 847 1138 1581 +2782 4 0 1010 1552 532 1696 +2783 4 0 1284 1452 332 1478 +2784 4 0 594 908 909 904 +2785 4 0 920 668 1832 1216 +2786 4 0 642 920 1832 1216 +2787 4 0 1213 1579 1293 1438 +2788 4 0 1479 1338 836 1675 +2789 4 0 1479 836 1077 1675 +2790 4 0 1479 1134 1058 602 +2791 4 0 821 1480 511 670 +2792 4 0 821 1652 746 1618 +2793 4 0 968 511 1480 670 +2794 4 0 16 1690 41 635 +2795 4 0 14 41 16 1690 +2796 4 0 1690 30 14 41 +2797 4 0 30 41 1690 34 +2798 4 0 894 899 830 1810 +2799 4 0 1170 429 850 1594 +2800 4 0 643 973 429 376 +2801 4 0 1194 895 1312 1188 +2802 4 0 1481 631 1513 873 +2803 4 0 3 1370 1482 1211 +2804 4 0 1296 1031 1505 1483 +2805 4 0 798 1288 837 547 +2806 4 0 1288 1484 547 798 +2807 4 0 1734 1343 477 702 +2808 4 0 703 1359 1242 1828 +2809 4 0 15 1261 33 29 +2810 4 0 1403 1485 746 780 +2811 4 0 137 811 1442 141 +2812 4 0 821 746 1485 780 +2813 4 0 668 920 1832 1176 +2814 4 0 964 701 1162 793 +2815 4 0 8 1505 671 12 +2816 4 0 8 1296 671 1505 +2817 4 0 1296 1505 8 1483 +2818 4 0 1008 1684 1532 1463 +2819 4 0 988 945 538 946 +2820 4 0 1164 318 1486 1110 +2821 4 0 923 372 785 1330 +2822 4 0 923 264 256 260 +2823 4 0 860 1173 832 926 +2824 4 0 860 1173 861 832 +2825 4 0 926 194 832 860 +2826 4 0 1012 1009 1528 1388 +2827 4 0 1580 1012 529 847 +2828 4 0 1012 1605 847 1388 +2829 4 0 509 803 507 603 +2830 4 0 603 894 509 803 +2831 4 0 1203 932 1400 1493 +2832 4 0 1303 361 1323 198 +2833 4 0 361 1323 198 1263 +2834 4 0 1752 1059 377 160 +2835 4 0 1037 1501 842 1358 +2836 4 0 968 1103 972 1252 +2837 4 0 703 1499 914 1487 +2838 4 0 794 1499 914 703 +2839 4 0 409 284 304 609 +2840 4 0 300 304 284 609 +2841 4 0 275 257 1757 291 +2842 4 0 1757 257 275 1529 +2843 4 0 1757 1023 257 1529 +2844 4 0 863 1257 1738 1068 +2845 4 0 1524 678 1257 827 +2846 4 0 1257 827 863 1524 +2847 4 0 1068 1257 1496 543 +2848 4 0 1434 766 913 755 +2849 4 0 1002 1434 766 913 +2850 4 0 405 436 406 418 +2851 4 0 436 405 406 432 +2852 4 0 1528 380 1388 1661 +2853 4 0 1528 380 1661 1245 +2854 4 0 480 380 1528 1245 +2855 4 0 1012 1528 1605 1388 +2856 4 0 1468 607 732 438 +2857 4 0 703 1499 1487 1828 +2858 4 0 1066 1402 391 585 +2859 4 0 915 1075 421 1429 +2860 4 0 408 818 1076 303 +2861 4 0 1489 91 1336 959 +2862 4 0 201 205 211 454 +2863 4 0 498 526 527 1548 +2864 4 0 802 712 1735 30 +2865 4 0 639 1735 712 34 +2866 4 0 524 1568 688 1564 +2867 4 0 688 378 1689 1490 +2868 4 0 1490 1438 378 375 +2869 4 0 1073 976 600 1530 +2870 4 0 1492 636 453 711 +2871 4 0 554 372 366 369 +2872 4 0 1757 1196 652 893 +2873 4 0 1493 90 105 655 +2874 4 0 1400 655 90 1493 +2875 4 0 1651 650 1420 228 +2876 4 0 1651 228 1749 807 +2877 4 0 1420 228 240 1651 +2878 4 0 1131 820 1517 586 +2879 4 0 1131 1044 1517 440 +2880 4 0 873 1513 1494 777 +2881 4 0 777 1494 1810 894 +2882 4 0 644 1654 601 1137 +2883 4 0 1593 1654 644 1137 +2884 4 0 842 468 840 405 +2885 4 0 331 1293 667 1495 +2886 4 0 1016 667 1293 1495 +2887 4 0 331 1495 1288 518 +2888 4 0 1620 691 1040 677 +2889 4 0 241 1738 1496 1351 +2890 4 0 1257 1496 241 1738 +2891 4 0 1257 1496 1738 1068 +2892 4 0 1207 472 1497 350 +2893 4 0 983 809 1497 1018 +2894 4 0 1497 1018 472 1207 +2895 4 0 1497 1476 350 472 +2896 4 0 1497 472 809 1476 +2897 4 0 626 631 449 1522 +2898 4 0 626 449 657 1522 +2899 4 0 626 1237 1050 1540 +2900 4 0 1841 1473 610 819 +2901 4 0 1540 1237 1050 504 +2902 4 0 1498 1194 106 1106 +2903 4 0 703 772 794 1499 +2904 4 0 871 1500 1235 1234 +2905 4 0 216 1347 1234 1500 +2906 4 0 1037 1145 415 1501 +2907 4 0 842 1501 1454 444 +2908 4 0 1037 1454 842 1501 +2909 4 0 782 882 1502 451 +2910 4 0 782 575 1502 882 +2911 4 0 752 782 1146 1754 +2912 4 0 1502 1806 1146 782 +2913 4 0 313 315 309 1787 +2914 4 0 309 311 1787 315 +2915 4 0 1787 1389 313 315 +2916 4 0 1261 400 820 29 +2917 4 0 321 776 679 907 +2918 4 0 907 321 776 859 +2919 4 0 241 247 1524 864 +2920 4 0 1523 678 1692 1524 +2921 4 0 1692 678 1257 1524 +2922 4 0 1257 1524 863 864 +2923 4 0 869 442 1507 414 +2924 4 0 1101 1100 1507 414 +2925 4 0 1100 869 1507 414 +2926 4 0 1004 1210 733 1587 +2927 4 0 1290 502 1346 292 +2928 4 0 296 1556 292 1290 +2929 4 0 1290 292 1346 1556 +2930 4 0 950 1508 1428 868 +2931 4 0 1146 1401 752 1509 +2932 4 0 452 1509 1097 653 +2933 4 0 460 138 1045 130 +2934 4 0 801 986 813 800 +2935 4 0 813 801 1594 986 +2936 4 0 896 595 831 910 +2937 4 0 653 896 831 910 +2938 4 0 1097 896 831 653 +2939 4 0 840 1527 468 1166 +2940 4 0 840 405 468 1527 +2941 4 0 1035 690 676 1837 +2942 4 0 1035 676 1038 1837 +2943 4 0 1293 1764 977 1631 +2944 4 0 1631 378 977 1438 +2945 4 0 988 946 538 1510 +2946 4 0 217 931 1802 1022 +2947 4 0 1444 1077 1800 1675 +2948 4 0 1444 1135 1422 602 +2949 4 0 1296 947 1748 1031 +2950 4 0 388 322 373 1441 +2951 4 0 968 1103 1252 1239 +2952 4 0 1175 917 308 1511 +2953 4 0 1175 1511 308 1382 +2954 4 0 1551 6 520 1116 +2955 4 0 1296 6 520 1551 +2956 4 0 1512 321 679 698 +2957 4 0 1512 1089 679 321 +2958 4 0 1090 1512 698 321 +2959 4 0 631 777 1513 873 +2960 4 0 1197 631 777 1513 +2961 4 0 1569 626 1841 819 +2962 4 0 1703 1569 918 1702 +2963 4 0 1607 1256 407 838 +2964 4 0 644 1654 1056 601 +2965 4 0 1132 1056 601 644 +2966 4 0 958 403 325 1665 +2967 4 0 1754 1774 905 1515 +2968 4 0 1472 451 905 1515 +2969 4 0 1516 1354 606 1608 +2970 4 0 1516 1354 162 1114 +2971 4 0 711 400 1261 15 +2972 4 0 1652 1636 670 1520 +2973 4 0 746 1636 1652 1518 +2974 4 0 780 821 1519 493 +2975 4 0 821 1519 747 780 +2976 4 0 1519 1252 821 747 +2977 4 0 1755 1658 367 504 +2978 4 0 779 1521 1627 1389 +2979 4 0 1521 1658 1760 632 +2980 4 0 1521 1627 632 779 +2981 4 0 1237 631 626 1522 +2982 4 0 1237 626 1050 1522 +2983 4 0 1197 1522 449 631 +2984 4 0 1197 449 1522 880 +2985 4 0 1246 705 1306 1644 +2986 4 0 705 1306 1644 774 +2987 4 0 412 1372 866 1191 +2988 4 0 978 347 499 344 +2989 4 0 1527 405 468 416 +2990 4 0 784 1503 1825 783 +2991 4 0 784 1503 1401 1825 +2992 4 0 783 1503 731 991 +2993 4 0 966 1060 1531 472 +2994 4 0 1008 1532 598 1463 +2995 4 0 552 1203 654 1212 +2996 4 0 552 1722 654 1203 +2997 4 0 757 1092 503 1408 +2998 4 0 503 1254 1408 1092 +2999 4 0 1533 523 1300 552 +3000 4 0 791 523 1533 552 +3001 4 0 1425 1300 1533 523 +3002 4 0 257 1331 253 261 +3003 4 0 1329 253 257 1331 +3004 4 0 1529 257 1331 1329 +3005 4 0 1592 750 337 489 +3006 4 0 489 1198 337 1592 +3007 4 0 364 1136 361 360 +3008 4 0 364 854 365 1136 +3009 4 0 364 1136 1466 361 +3010 4 0 1136 364 1466 365 +3011 4 0 439 1534 24 1247 +3012 4 0 24 1534 439 35 +3013 4 0 1473 1405 1540 504 +3014 4 0 1050 1473 1540 504 +3015 4 0 1592 865 1535 961 +3016 4 0 337 677 1356 1535 +3017 4 0 680 1536 1525 1439 +3018 4 0 478 1649 955 481 +3019 4 0 1088 1649 478 481 +3020 4 0 1621 676 1035 690 +3021 4 0 1601 1075 1429 719 +3022 4 0 1429 1075 1488 719 +3023 4 0 1537 1059 583 377 +3024 4 0 1059 1537 583 933 +3025 4 0 1537 583 933 1394 +3026 4 0 1538 667 1495 1015 +3027 4 0 1561 365 854 1327 +3028 4 0 1561 929 365 1834 +3029 4 0 1327 1834 1303 805 +3030 4 0 1561 365 929 854 +3031 4 0 1561 805 1834 1327 +3032 4 0 1539 1705 1184 841 +3033 4 0 843 446 1539 841 +3034 4 0 446 841 1705 1539 +3035 4 0 1166 1541 434 431 +3036 4 0 223 239 806 227 +3037 4 0 1542 876 513 728 +3038 4 0 435 431 1527 405 +3039 4 0 840 405 1527 431 +3040 4 0 1051 190 926 860 +3041 4 0 860 190 178 1051 +3042 4 0 833 706 1642 1386 +3043 4 0 119 115 1314 127 +3044 4 0 119 1455 1314 115 +3045 4 0 625 1543 1577 324 +3046 4 0 725 971 262 276 +3047 4 0 254 971 258 262 +3048 4 0 1676 1476 966 1624 +3049 4 0 966 1624 1476 1062 +3050 4 0 1476 1221 1248 1624 +3051 4 0 1676 1221 1476 1624 +3052 4 0 1476 1062 1624 1248 +3053 4 0 792 1544 1253 553 +3054 4 0 1220 792 553 1544 +3055 4 0 1544 1266 1220 792 +3056 4 0 628 1099 1570 1572 +3057 4 0 1095 1572 628 1570 +3058 4 0 1099 840 1570 467 +3059 4 0 1545 716 915 1186 +3060 4 0 497 930 1126 796 +3061 4 0 844 418 1546 928 +3062 4 0 839 1767 1547 1607 +3063 4 0 839 1547 1404 1607 +3064 4 0 1629 1396 952 978 +3065 4 0 951 591 1396 978 +3066 4 0 1467 431 1166 434 +3067 4 0 1467 1166 1099 434 +3068 4 0 434 1467 892 1099 +3069 4 0 1184 1705 620 1335 +3070 4 0 1539 620 1184 1705 +3071 4 0 1792 1705 620 1539 +3072 4 0 1108 42 398 516 +3073 4 0 398 42 1108 1660 +3074 4 0 1108 52 1660 42 +3075 4 0 1070 539 1549 946 +3076 4 0 1204 1295 1832 920 +3077 4 0 689 1450 333 1295 +3078 4 0 332 1552 1071 1155 +3079 4 0 1552 332 1072 1478 +3080 4 0 710 672 9 1663 +3081 4 0 606 396 1354 1412 +3082 4 0 789 1554 90 1291 +3083 4 0 90 1400 1554 789 +3084 4 0 1554 1493 1400 90 +3085 4 0 409 304 302 579 +3086 4 0 1823 1199 1363 641 +3087 4 0 1082 1251 449 626 +3088 4 0 1556 1290 1771 605 +3089 4 0 1557 717 1059 1752 +3090 4 0 717 1752 1557 1740 +3091 4 0 1557 1059 1537 377 +3092 4 0 697 1005 769 1310 +3093 4 0 1005 1558 769 1310 +3094 4 0 1436 1411 1222 1229 +3095 4 0 1582 290 274 1105 +3096 4 0 1582 274 290 1340 +3097 4 0 1364 1582 290 1340 +3098 4 0 906 942 938 1632 +3099 4 0 909 942 904 938 +3100 4 0 1437 1219 622 1230 +3101 4 0 1031 1614 1747 997 +3102 4 0 1081 1614 688 1031 +3103 4 0 1559 215 1783 993 +3104 4 0 1351 231 1559 215 +3105 4 0 794 704 914 1670 +3106 4 0 1250 689 1560 333 +3107 4 0 1560 673 333 1770 +3108 4 0 701 1611 793 580 +3109 4 0 793 1611 590 580 +3110 4 0 701 1162 793 1611 +3111 4 0 648 340 1561 807 +3112 4 0 758 1246 1306 1644 +3113 4 0 1246 758 1174 1644 +3114 4 0 1557 1752 1059 377 +3115 4 0 584 391 787 1506 +3116 4 0 584 1506 787 933 +3117 4 0 1206 1681 711 742 +3118 4 0 1206 1681 742 1517 +3119 4 0 1562 910 896 1368 +3120 4 0 1562 1687 916 595 +3121 4 0 595 910 896 1562 +3122 4 0 1143 1177 420 1241 +3123 4 0 1143 596 420 1177 +3124 4 0 1836 1740 874 1737 +3125 4 0 1737 1835 874 1836 +3126 4 0 1836 1835 1294 1737 +3127 4 0 1740 1836 874 988 +3128 4 0 874 1836 1835 988 +3129 4 0 688 1689 1296 1564 +3130 4 0 1296 375 1578 1564 +3131 4 0 1564 1490 688 1689 +3132 4 0 257 470 1757 291 +3133 4 0 1757 470 257 1023 +3134 4 0 1018 982 924 969 +3135 4 0 1018 924 982 510 +3136 4 0 998 1424 1565 1596 +3137 4 0 323 1424 1078 1596 +3138 4 0 1596 1118 21 27 +3139 4 0 1596 27 1078 1118 +3140 4 0 241 1523 247 229 +3141 4 0 247 235 229 1523 +3142 4 0 247 1523 241 1524 +3143 4 0 1192 1565 754 694 +3144 4 0 1261 1663 636 711 +3145 4 0 1348 1261 15 1663 +3146 4 0 710 9 15 1663 +3147 4 0 381 992 808 346 +3148 4 0 381 992 346 1334 +3149 4 0 808 992 742 346 +3150 4 0 717 953 1059 1506 +3151 4 0 686 5 1566 708 +3152 4 0 5 1115 1566 708 +3153 4 0 1567 731 760 783 +3154 4 0 337 525 495 497 +3155 4 0 506 1526 1413 500 +3156 4 0 836 1800 940 1073 +3157 4 0 1800 940 531 836 +3158 4 0 940 1800 531 1369 +3159 4 0 1149 1415 1587 1174 +3160 4 0 1149 733 1587 1415 +3161 4 0 872 1636 746 1518 +3162 4 0 872 1110 1636 314 +3163 4 0 1636 314 1110 1520 +3164 4 0 1518 314 1636 1520 +3165 4 0 1601 1079 1090 422 +3166 4 0 1601 422 1429 1079 +3167 4 0 1818 1568 688 1747 +3168 4 0 467 1570 1093 1678 +3169 4 0 1189 953 1557 717 +3170 4 0 1049 895 1830 797 +3171 4 0 1772 232 217 216 +3172 4 0 1772 217 1022 216 +3173 4 0 1347 1772 216 232 +3174 4 0 916 942 938 1180 +3175 4 0 1710 1180 938 942 +3176 4 0 1614 1039 870 674 +3177 4 0 1614 1818 674 870 +3178 4 0 1572 1093 1095 466 +3179 4 0 1572 1099 1570 467 +3180 4 0 1095 1093 1572 1570 +3181 4 0 307 1811 291 1757 +3182 4 0 470 295 604 1573 +3183 4 0 307 295 291 1811 +3184 4 0 1344 160 1447 377 +3185 4 0 1447 377 1680 1344 +3186 4 0 330 1130 1033 1574 +3187 4 0 1033 1709 330 1574 +3188 4 0 689 1450 1709 1185 +3189 4 0 841 1123 1575 1145 +3190 4 0 1575 1145 1655 841 +3191 4 0 1575 1655 1358 841 +3192 4 0 1723 1492 1681 742 +3193 4 0 638 1492 1459 1681 +3194 4 0 1681 638 713 1459 +3195 4 0 931 434 1477 1576 +3196 4 0 1681 1517 1723 742 +3197 4 0 1206 401 1681 1517 +3198 4 0 1296 1551 1578 393 +3199 4 0 1579 518 1293 1631 +3200 4 0 1579 378 1631 1438 +3201 4 0 1743 941 1580 529 +3202 4 0 1012 1388 1580 166 +3203 4 0 166 1012 529 1580 +3204 4 0 1011 1236 1581 847 +3205 4 0 1293 518 331 1764 +3206 4 0 1582 1179 290 1105 +3207 4 0 1582 290 1179 1364 +3208 4 0 676 1583 1837 690 +3209 4 0 1610 289 1125 273 +3210 4 0 1803 289 1227 1610 +3211 4 0 1227 289 1125 1610 +3212 4 0 1366 1585 402 571 +3213 4 0 1508 1585 1366 950 +3214 4 0 758 1244 503 1453 +3215 4 0 408 603 1076 542 +3216 4 0 974 1586 1515 752 +3217 4 0 451 1586 974 1180 +3218 4 0 1754 1146 752 1586 +3219 4 0 438 1171 1615 1731 +3220 4 0 1615 218 1117 210 +3221 4 0 1615 1117 218 1457 +3222 4 0 1171 1615 218 1457 +3223 4 0 1088 482 1588 1742 +3224 4 0 481 1588 774 1306 +3225 4 0 1017 1511 1635 917 +3226 4 0 917 781 1083 1589 +3227 4 0 779 570 1590 829 +3228 4 0 1053 1371 1813 1102 +3229 4 0 1535 1198 337 677 +3230 4 0 337 1198 1535 1592 +3231 4 0 1344 170 1058 1134 +3232 4 0 443 466 444 856 +3233 4 0 444 443 856 1193 +3234 4 0 1623 1188 106 100 +3235 4 0 1194 106 1106 1623 +3236 4 0 106 1623 1194 1188 +3237 4 0 106 100 1106 1623 +3238 4 0 686 1566 515 1147 +3239 4 0 137 811 801 1442 +3240 4 0 801 1442 1593 137 +3241 4 0 137 1357 801 811 +3242 4 0 1595 1651 1749 807 +3243 4 0 1420 1651 240 1595 +3244 4 0 241 1692 1523 229 +3245 4 0 1523 1692 241 1524 +3246 4 0 241 1692 1257 1524 +3247 4 0 778 449 1251 631 +3248 4 0 1130 663 1555 1102 +3249 4 0 1469 956 403 1231 +3250 4 0 697 1415 1005 1310 +3251 4 0 1005 1415 1558 1310 +3252 4 0 697 1415 1310 759 +3253 4 0 784 452 885 1597 +3254 4 0 784 748 452 1597 +3255 4 0 1598 613 1045 1622 +3256 4 0 1736 1598 646 602 +3257 4 0 1134 602 599 1598 +3258 4 0 1736 613 646 1598 +3259 4 0 309 630 1627 632 +3260 4 0 313 1787 309 1627 +3261 4 0 1627 1389 313 1787 +3262 4 0 1627 1521 313 1389 +3263 4 0 1521 630 632 1627 +3264 4 0 742 808 384 992 +3265 4 0 992 808 384 381 +3266 4 0 380 480 1528 1605 +3267 4 0 1605 1528 380 1388 +3268 4 0 1342 1620 1040 677 +3269 4 0 865 1198 1535 1620 +3270 4 0 1592 1198 1535 865 +3271 4 0 987 397 1444 1599 +3272 4 0 1683 73 81 61 +3273 4 0 73 81 1215 1683 +3274 4 0 1377 81 95 77 +3275 4 0 1377 884 95 815 +3276 4 0 884 85 77 95 +3277 4 0 1717 1821 70 1120 +3278 4 0 1717 706 70 1821 +3279 4 0 1717 706 1046 70 +3280 4 0 1046 70 1120 1717 +3281 4 0 630 1109 313 1658 +3282 4 0 1521 630 1658 632 +3283 4 0 338 1601 1646 1079 +3284 4 0 1070 338 1392 1602 +3285 4 0 1070 1602 1836 1294 +3286 4 0 167 165 1656 611 +3287 4 0 1047 1199 611 1656 +3288 4 0 1656 1199 611 165 +3289 4 0 1603 483 1386 386 +3290 4 0 495 1014 525 337 +3291 4 0 1261 1663 711 15 +3292 4 0 966 1531 1476 472 +3293 4 0 1476 809 966 472 +3294 4 0 908 904 918 1702 +3295 4 0 1082 904 1251 626 +3296 4 0 918 904 1082 1702 +3297 4 0 322 373 530 528 +3298 4 0 1441 530 322 373 +3299 4 0 749 341 627 624 +3300 4 0 1553 1604 341 760 +3301 4 0 830 899 1704 1810 +3302 4 0 873 899 1704 1021 +3303 4 0 1256 248 838 1607 +3304 4 0 1469 1349 1619 89 +3305 4 0 1469 403 1794 325 +3306 4 0 325 1469 403 958 +3307 4 0 1728 442 853 463 +3308 4 0 1728 853 442 1064 +3309 4 0 1608 1354 1032 162 +3310 4 0 1516 1354 1608 162 +3311 4 0 1700 1665 326 1162 +3312 4 0 1665 982 1446 326 +3313 4 0 1500 1609 1234 412 +3314 4 0 1706 1609 867 463 +3315 4 0 1234 867 1706 1609 +3316 4 0 906 1799 1635 1773 +3317 4 0 308 917 1333 1589 +3318 4 0 577 885 972 1796 +3319 4 0 885 577 1299 1796 +3320 4 0 1239 1417 1259 557 +3321 4 0 968 1417 1239 557 +3322 4 0 556 658 1233 1612 +3323 4 0 658 556 523 1612 +3324 4 0 552 1613 1461 791 +3325 4 0 1679 552 791 1613 +3326 4 0 795 1679 791 1613 +3327 4 0 980 624 1795 1464 +3328 4 0 1796 1464 1795 624 +3329 4 0 416 405 843 1616 +3330 4 0 1616 406 418 405 +3331 4 0 418 1616 405 416 +3332 4 0 1617 929 871 514 +3333 4 0 780 1618 821 746 +3334 4 0 1618 780 1219 746 +3335 4 0 1832 668 662 1216 +3336 4 0 668 1832 662 1176 +3337 4 0 691 547 677 1620 +3338 4 0 547 1288 1620 691 +3339 4 0 1427 1621 676 961 +3340 4 0 1427 1621 961 1371 +3341 4 0 626 657 1050 1522 +3342 4 0 1736 1598 602 1134 +3343 4 0 148 1134 599 1598 +3344 4 0 138 149 1622 1045 +3345 4 0 1622 148 1736 171 +3346 4 0 614 1622 613 1736 +3347 4 0 1598 1622 1045 138 +3348 4 0 1736 1622 613 1598 +3349 4 0 821 1252 511 1480 +3350 4 0 968 511 1252 1480 +3351 4 0 1188 1133 100 1623 +3352 4 0 1625 946 1510 539 +3353 4 0 1070 539 946 1189 +3354 4 0 539 1625 946 1189 +3355 4 0 503 1254 1092 1432 +3356 4 0 921 1385 491 1638 +3357 4 0 1638 1292 921 1385 +3358 4 0 1360 568 1748 1763 +3359 4 0 1808 1748 524 947 +3360 4 0 1360 524 1748 1296 +3361 4 0 1296 524 1748 947 +3362 4 0 438 1171 433 1468 +3363 4 0 433 1468 732 438 +3364 4 0 1626 1242 790 753 +3365 4 0 790 1626 753 327 +3366 4 0 1757 1573 1811 291 +3367 4 0 309 632 1627 652 +3368 4 0 660 625 1287 1577 +3369 4 0 625 1287 1577 1543 +3370 4 0 292 1346 276 502 +3371 4 0 1747 688 1818 1614 +3372 4 0 1628 777 1810 894 +3373 4 0 631 1628 777 873 +3374 4 0 894 899 1810 1628 +3375 4 0 1629 347 505 499 +3376 4 0 951 1396 1629 978 +3377 4 0 867 1630 1347 1699 +3378 4 0 1630 1094 1699 867 +3379 4 0 1630 465 1094 464 +3380 4 0 378 1631 977 870 +3381 4 0 1293 1631 977 1438 +3382 4 0 1579 1631 1293 1438 +3383 4 0 1066 585 391 787 +3384 4 0 1066 787 391 1181 +3385 4 0 1345 942 1632 904 +3386 4 0 450 633 904 1632 +3387 4 0 450 1345 1632 904 +3388 4 0 1632 942 938 904 +3389 4 0 1633 1834 871 805 +3390 4 0 871 1633 1380 1834 +3391 4 0 1633 1191 1380 365 +3392 4 0 1747 1614 674 997 +3393 4 0 441 866 868 1091 +3394 4 0 167 804 1656 1052 +3395 4 0 1656 167 1052 1414 +3396 4 0 980 622 1795 624 +3397 4 0 660 745 991 1577 +3398 4 0 497 1126 489 337 +3399 4 0 930 497 489 960 +3400 4 0 497 930 489 1126 +3401 4 0 1147 1376 453 383 +3402 4 0 515 1147 383 1376 +3403 4 0 1150 760 731 1553 +3404 4 0 323 754 694 1634 +3405 4 0 1231 323 693 1634 +3406 4 0 1837 1218 750 489 +3407 4 0 1104 1691 334 1837 +3408 4 0 1837 329 1583 750 +3409 4 0 1837 1691 334 1583 +3410 4 0 917 1511 1635 308 +3411 4 0 1635 917 308 1589 +3412 4 0 535 166 1743 182 +3413 4 0 166 529 535 1743 +3414 4 0 166 1743 1580 529 +3415 4 0 1250 1295 333 1204 +3416 4 0 333 1295 1450 1204 +3417 4 0 1636 1486 670 1520 +3418 4 0 1637 323 693 1231 +3419 4 0 323 1078 1637 693 +3420 4 0 1142 540 948 907 +3421 4 0 230 1256 1765 248 +3422 4 0 230 242 1256 248 +3423 4 0 1200 479 1638 1385 +3424 4 0 921 1292 1638 1801 +3425 4 0 479 1292 1638 1385 +3426 4 0 606 1412 1354 1114 +3427 4 0 639 385 1307 346 +3428 4 0 1411 1390 1222 1229 +3429 4 0 761 536 1128 1639 +3430 4 0 761 1385 536 1639 +3431 4 0 1393 1528 1113 1245 +3432 4 0 478 1279 955 1670 +3433 4 0 513 1640 1783 993 +3434 4 0 606 396 1169 1641 +3435 4 0 1642 342 1096 763 +3436 4 0 1046 833 1830 706 +3437 4 0 1046 1830 72 706 +3438 4 0 1055 1046 1830 72 +3439 4 0 1643 1116 1471 4 +3440 4 0 1643 1471 1448 4 +3441 4 0 41 635 1690 34 +3442 4 0 675 637 1308 328 +3443 4 0 328 635 1690 16 +3444 4 0 1246 705 1644 759 +3445 4 0 162 1354 1666 172 +3446 4 0 162 1666 1354 1032 +3447 4 0 943 531 835 537 +3448 4 0 936 531 835 943 +3449 4 0 1645 1039 1157 691 +3450 4 0 1294 338 1646 1079 +3451 4 0 507 269 1076 604 +3452 4 0 269 470 604 507 +3453 4 0 1522 822 779 829 +3454 4 0 1350 1647 309 652 +3455 4 0 629 1647 309 1350 +3456 4 0 1647 1196 652 307 +3457 4 0 644 1797 1654 1593 +3458 4 0 1593 145 1654 1137 +3459 4 0 742 384 1261 992 +3460 4 0 1505 1296 671 1748 +3461 4 0 1010 810 1696 392 +3462 4 0 1010 532 392 1696 +3463 4 0 893 1494 1704 873 +3464 4 0 893 803 1704 1648 +3465 4 0 893 1648 603 803 +3466 4 0 1494 893 1704 1648 +3467 4 0 1243 382 1133 1266 +3468 4 0 795 1588 774 1649 +3469 4 0 795 774 1613 1649 +3470 4 0 854 340 648 1650 +3471 4 0 1228 340 854 1650 +3472 4 0 651 1650 648 340 +3473 4 0 1650 1430 1228 340 +3474 4 0 1650 1430 340 651 +3475 4 0 1413 920 383 500 +3476 4 0 1526 920 1413 500 +3477 4 0 920 1526 1216 500 +3478 4 0 1652 1518 1520 821 +3479 4 0 821 670 1652 1480 +3480 4 0 1652 1636 1520 1518 +3481 4 0 1179 1364 1441 957 +3482 4 0 497 1126 525 796 +3483 4 0 446 1686 1065 684 +3484 4 0 1424 27 1078 1596 +3485 4 0 876 543 1255 1068 +3486 4 0 876 543 1465 1255 +3487 4 0 1653 792 553 1669 +3488 4 0 1669 553 1653 1151 +3489 4 0 792 1253 1653 553 +3490 4 0 1503 1217 783 784 +3491 4 0 1217 660 991 783 +3492 4 0 1503 991 783 1217 +3493 4 0 1661 1245 1399 1113 +3494 4 0 1528 1661 1388 1113 +3495 4 0 1528 1661 1113 1245 +3496 4 0 1056 1769 804 1654 +3497 4 0 644 1797 1056 1654 +3498 4 0 1484 666 1720 1495 +3499 4 0 841 417 1655 446 +3500 4 0 841 417 1145 1655 +3501 4 0 799 1248 104 967 +3502 4 0 1235 1500 805 216 +3503 4 0 979 1234 871 1235 +3504 4 0 1235 1500 216 1234 +3505 4 0 1207 1497 567 350 +3506 4 0 1315 567 350 1207 +3507 4 0 567 1476 350 1497 +3508 4 0 1795 780 1519 493 +3509 4 0 1178 577 1795 493 +3510 4 0 1599 1132 601 1422 +3511 4 0 1599 804 601 1132 +3512 4 0 887 1657 987 397 +3513 4 0 1657 1530 397 887 +3514 4 0 792 382 1253 1544 +3515 4 0 1266 792 1544 382 +3516 4 0 1815 1699 1234 1347 +3517 4 0 1699 1630 1347 232 +3518 4 0 780 1795 1659 493 +3519 4 0 556 1612 1653 523 +3520 4 0 556 1233 1253 1653 +3521 4 0 1612 1233 556 1653 +3522 4 0 1090 394 422 698 +3523 4 0 1079 422 698 1090 +3524 4 0 807 209 1303 204 +3525 4 0 1303 204 208 1323 +3526 4 0 491 1220 1332 387 +3527 4 0 700 1714 565 1634 +3528 4 0 754 694 1634 565 +3529 4 0 1231 700 565 1634 +3530 4 0 1664 234 232 224 +3531 4 0 1664 1815 1234 224 +3532 4 0 285 1361 621 1333 +3533 4 0 285 1333 1406 308 +3534 4 0 1406 1333 1083 1589 +3535 4 0 308 1333 1406 1589 +3536 4 0 1227 1610 402 1366 +3537 4 0 701 1202 1611 580 +3538 4 0 701 1162 1611 1202 +3539 4 0 1447 1662 715 835 +3540 4 0 1662 1069 715 835 +3541 4 0 1525 1372 852 1439 +3542 4 0 1525 441 852 1372 +3543 4 0 1525 1536 826 1439 +3544 4 0 248 236 1765 230 +3545 4 0 248 1404 1256 1765 +3546 4 0 1736 171 178 614 +3547 4 0 1112 888 889 1165 +3548 4 0 992 1600 65 1261 +3549 4 0 982 969 1127 484 +3550 4 0 1127 983 969 982 +3551 4 0 1211 506 1761 500 +3552 4 0 1761 1413 383 500 +3553 4 0 506 1413 1761 500 +3554 4 0 323 764 1565 754 +3555 4 0 754 764 1565 1192 +3556 4 0 1757 1704 1021 893 +3557 4 0 1196 893 1021 873 +3558 4 0 1312 1266 1133 895 +3559 4 0 1312 1133 1188 895 +3560 4 0 442 465 1094 1667 +3561 4 0 442 681 465 1667 +3562 4 0 869 442 1667 1507 +3563 4 0 869 1094 1667 442 +3564 4 0 682 467 1668 468 +3565 4 0 467 468 842 1668 +3566 4 0 842 1668 1501 444 +3567 4 0 1829 740 388 462 +3568 4 0 1829 462 1546 740 +3569 4 0 387 1386 1201 833 +3570 4 0 1049 1730 1201 833 +3571 4 0 387 1386 833 762 +3572 4 0 573 829 1197 1590 +3573 4 0 1612 1669 1653 523 +3574 4 0 1186 1075 915 1429 +3575 4 0 1601 1186 1429 1075 +3576 4 0 148 149 171 1622 +3577 4 0 1736 148 1134 170 +3578 4 0 148 1598 1736 1134 +3579 4 0 614 1622 1736 171 +3580 4 0 148 1622 1736 1598 +3581 4 0 1671 907 989 540 +3582 4 0 391 859 989 1671 +3583 4 0 989 907 1671 859 +3584 4 0 754 694 565 1672 +3585 4 0 1268 690 1778 334 +3586 4 0 1778 1102 690 1268 +3587 4 0 346 1044 440 742 +3588 4 0 346 440 992 742 +3589 4 0 812 1577 745 660 +3590 4 0 660 1287 812 1577 +3591 4 0 535 529 1766 941 +3592 4 0 941 1766 847 529 +3593 4 0 1766 847 1839 1138 +3594 4 0 764 1192 754 1673 +3595 4 0 999 1192 764 1673 +3596 4 0 331 1484 547 1288 +3597 4 0 1711 700 1231 693 +3598 4 0 1711 1637 693 1231 +3599 4 0 1637 1078 1711 693 +3600 4 0 612 147 1593 151 +3601 4 0 644 1797 1593 612 +3602 4 0 1593 147 1442 151 +3603 4 0 940 531 936 1674 +3604 4 0 1624 1676 1677 966 +3605 4 0 327 1221 1676 1624 +3606 4 0 552 1212 1461 1613 +3607 4 0 774 552 1613 1212 +3608 4 0 552 1212 654 1461 +3609 4 0 773 1203 1129 1554 +3610 4 0 966 326 1677 964 +3611 4 0 1677 1676 326 966 +3612 4 0 752 1217 1503 1401 +3613 4 0 452 576 883 1217 +3614 4 0 1544 1266 1312 1220 +3615 4 0 755 754 756 1000 +3616 4 0 1000 765 755 754 +3617 4 0 968 1239 1252 511 +3618 4 0 552 1461 656 1533 +3619 4 0 522 495 526 496 +3620 4 0 1014 522 495 526 +3621 4 0 608 302 471 298 +3622 4 0 1235 929 871 1617 +3623 4 0 1678 467 840 842 +3624 4 0 467 1570 1678 840 +3625 4 0 1644 705 774 1679 +3626 4 0 774 1613 1679 795 +3627 4 0 1679 795 705 774 +3628 4 0 1069 537 835 1680 +3629 4 0 1151 1669 1156 523 +3630 4 0 523 1669 1653 1151 +3631 4 0 1707 1399 158 164 +3632 4 0 1019 1707 1245 158 +3633 4 0 1709 330 1450 1176 +3634 4 0 689 1450 1295 1176 +3635 4 0 452 1423 748 653 +3636 4 0 748 1597 1423 452 +3637 4 0 748 1464 1423 1597 +3638 4 0 1459 1492 1682 453 +3639 4 0 1587 696 1004 1398 +3640 4 0 1004 1254 768 1398 +3641 4 0 768 1254 1408 503 +3642 4 0 1683 61 81 77 +3643 4 0 1683 1215 1270 1168 +3644 4 0 884 95 77 1377 +3645 4 0 1284 722 380 480 +3646 4 0 653 831 1097 1684 +3647 4 0 1684 653 1139 1463 +3648 4 0 1685 392 395 810 +3649 4 0 1685 810 395 1374 +3650 4 0 1685 1395 392 810 +3651 4 0 809 966 1446 326 +3652 4 0 809 472 1446 966 +3653 4 0 1446 982 809 326 +3654 4 0 809 982 1446 472 +3655 4 0 14 1690 802 30 +3656 4 0 1438 1213 1491 501 +3657 4 0 1562 910 1687 595 +3658 4 0 663 1555 734 1130 +3659 4 0 527 1222 498 1688 +3660 4 0 1222 1390 498 1688 +3661 4 0 614 1622 171 152 +3662 4 0 1622 1045 149 152 +3663 4 0 1415 1174 1310 759 +3664 4 0 1689 1296 375 393 +3665 4 0 393 378 375 1689 +3666 4 0 1713 780 622 1219 +3667 4 0 747 780 1713 1219 +3668 4 0 1713 622 780 1795 +3669 4 0 1713 780 747 1795 +3670 4 0 1837 329 1691 1583 +3671 4 0 773 1203 1212 1129 +3672 4 0 1212 1693 654 1461 +3673 4 0 1694 953 1189 717 +3674 4 0 1694 1506 953 717 +3675 4 0 1694 391 953 1506 +3676 4 0 1059 583 161 1695 +3677 4 0 1552 1072 532 1478 +3678 4 0 392 810 1696 1240 +3679 4 0 392 532 1240 1696 +3680 4 0 1697 1756 976 716 +3681 4 0 1697 976 1410 716 +3682 4 0 715 1077 936 1460 +3683 4 0 1171 218 1615 210 +3684 4 0 1020 399 1247 586 +3685 4 0 1020 1517 399 586 +3686 4 0 575 882 1698 1502 +3687 4 0 698 321 1419 1079 +3688 4 0 1090 321 698 1079 +3689 4 0 1446 1700 958 1665 +3690 4 0 147 1797 145 159 +3691 4 0 1797 147 145 1593 +3692 4 0 145 1797 1654 159 +3693 4 0 1797 145 1654 1593 +3694 4 0 1660 1006 398 1701 +3695 4 0 398 1006 1229 1701 +3696 4 0 1337 1660 398 1701 +3697 4 0 1703 657 1841 626 +3698 4 0 1841 1569 1703 626 +3699 4 0 1688 1390 498 1418 +3700 4 0 781 574 1407 1085 +3701 4 0 574 882 451 1407 +3702 4 0 781 1085 1407 569 +3703 4 0 1424 27 1596 21 +3704 4 0 1567 731 1150 760 +3705 4 0 1567 748 1150 1825 +3706 4 0 520 1409 1785 10 +3707 4 0 671 1409 520 10 +3708 4 0 520 1409 671 1360 +3709 4 0 841 1705 417 446 +3710 4 0 1169 1240 1379 396 +3711 4 0 1641 396 1169 1379 +3712 4 0 412 463 1706 866 +3713 4 0 871 866 412 1706 +3714 4 0 1091 463 866 1706 +3715 4 0 840 468 467 1099 +3716 4 0 840 468 1099 1166 +3717 4 0 462 551 1514 388 +3718 4 0 964 1162 326 793 +3719 4 0 964 326 1677 793 +3720 4 0 399 1517 1044 639 +3721 4 0 639 1517 401 399 +3722 4 0 1707 1399 1245 158 +3723 4 0 248 1105 564 1547 +3724 4 0 1607 1256 248 1404 +3725 4 0 1607 564 1547 248 +3726 4 0 1607 1547 1404 248 +3727 4 0 1708 1034 1744 1025 +3728 4 0 1176 689 1450 1709 +3729 4 0 1709 689 1185 1260 +3730 4 0 1709 1185 330 1574 +3731 4 0 830 370 803 1704 +3732 4 0 1383 830 1704 370 +3733 4 0 906 1710 1816 938 +3734 4 0 1805 1710 906 1042 +3735 4 0 451 1180 938 1710 +3736 4 0 1569 1841 610 819 +3737 4 0 610 1569 1703 1841 +3738 4 0 553 792 491 1712 +3739 4 0 1048 1200 1712 1332 +3740 4 0 1105 1179 564 1547 +3741 4 0 1547 1179 564 1767 +3742 4 0 1767 564 1547 1607 +3743 4 0 1713 1795 747 1464 +3744 4 0 1714 694 1634 693 +3745 4 0 1714 694 1202 565 +3746 4 0 1714 694 565 1634 +3747 4 0 1828 1242 1499 477 +3748 4 0 1828 1343 1359 477 +3749 4 0 1828 1359 1242 477 +3750 4 0 1828 1499 1487 477 +3751 4 0 1343 1828 1487 477 +3752 4 0 639 401 1517 713 +3753 4 0 1681 401 713 1517 +3754 4 0 1716 732 418 406 +3755 4 0 844 1716 418 406 +3756 4 0 1716 732 406 1373 +3757 4 0 866 1525 950 1255 +3758 4 0 866 461 1255 1465 +3759 4 0 1255 461 866 1525 +3760 4 0 951 499 978 1629 +3761 4 0 445 468 842 843 +3762 4 0 445 1358 843 842 +3763 4 0 1717 1120 1209 763 +3764 4 0 965 566 551 1160 +3765 4 0 392 532 1010 990 +3766 4 0 1010 392 990 1402 +3767 4 0 1733 1402 1010 990 +3768 4 0 1043 34 1735 639 +3769 4 0 34 1735 712 30 +3770 4 0 161 160 146 1134 +3771 4 0 328 1746 675 1718 +3772 4 0 1718 1690 328 635 +3773 4 0 1690 34 635 1718 +3774 4 0 1284 1236 1478 1011 +3775 4 0 1478 1236 1072 1581 +3776 4 0 1605 1236 1284 1011 +3777 4 0 728 806 854 993 +3778 4 0 1326 806 993 854 +3779 4 0 728 854 806 875 +3780 4 0 669 1176 330 1033 +3781 4 0 1563 857 665 1813 +3782 4 0 854 728 1719 1228 +3783 4 0 749 624 980 1150 +3784 4 0 749 627 980 624 +3785 4 0 749 980 627 1153 +3786 4 0 798 837 1720 1813 +3787 4 0 1484 1288 1720 798 +3788 4 0 1720 857 1563 1813 +3789 4 0 1721 1493 105 655 +3790 4 0 1436 674 1568 1378 +3791 4 0 638 639 1723 713 +3792 4 0 639 1517 1723 713 +3793 4 0 808 1044 639 346 +3794 4 0 1517 1723 1044 639 +3795 4 0 639 1044 808 1723 +3796 4 0 1232 1127 1221 567 +3797 4 0 485 1232 1127 1221 +3798 4 0 614 1724 1622 152 +3799 4 0 1724 1045 1622 152 +3800 4 0 1438 1725 378 375 +3801 4 0 1332 536 761 1385 +3802 4 0 1332 1200 491 1385 +3803 4 0 1332 1712 553 491 +3804 4 0 1332 1200 1712 491 +3805 4 0 632 1481 779 1513 +3806 4 0 652 779 1513 632 +3807 4 0 1775 789 90 1753 +3808 4 0 1775 1753 790 789 +3809 4 0 1758 790 1753 753 +3810 4 0 967 753 1758 1753 +3811 4 0 1175 633 1511 1726 +3812 4 0 1726 1175 633 778 +3813 4 0 1726 633 1251 778 +3814 4 0 1836 1625 946 988 +3815 4 0 946 988 1835 1836 +3816 4 0 1625 988 1836 1189 +3817 4 0 1740 1557 1189 988 +3818 4 0 612 177 644 169 +3819 4 0 148 1134 146 1727 +3820 4 0 1708 1744 1837 1025 +3821 4 0 441 463 1091 1728 +3822 4 0 1091 1728 1474 441 +3823 4 0 1400 1784 1721 975 +3824 4 0 1400 655 1493 1721 +3825 4 0 976 1729 600 1530 +3826 4 0 614 1051 743 178 +3827 4 0 1051 1736 178 614 +3828 4 0 1051 743 178 860 +3829 4 0 1730 387 1201 833 +3830 4 0 1731 1171 1615 210 +3831 4 0 468 682 1732 858 +3832 4 0 1155 1733 1071 859 +3833 4 0 990 1733 859 1071 +3834 4 0 1515 1586 1754 752 +3835 4 0 94 107 99 1221 +3836 4 0 1221 485 99 94 +3837 4 0 1221 1248 104 107 +3838 4 0 1068 231 1640 1351 +3839 4 0 1640 1559 1783 993 +3840 4 0 1068 1640 1496 1351 +3841 4 0 1351 231 1640 1559 +3842 4 0 1534 1043 439 35 +3843 4 0 1534 1043 30 1735 +3844 4 0 1043 34 30 1735 +3845 4 0 170 1736 1058 1134 +3846 4 0 1737 1186 915 1646 +3847 4 0 1294 1737 915 1646 +3848 4 0 1602 1737 1294 338 +3849 4 0 1836 1602 1737 1294 +3850 4 0 603 409 509 608 +3851 4 0 603 1195 509 409 +3852 4 0 759 705 1385 697 +3853 4 0 392 1431 1395 1685 +3854 4 0 1486 1416 320 318 +3855 4 0 1177 1729 420 897 +3856 4 0 1703 1082 657 626 +3857 4 0 998 1424 1596 21 +3858 4 0 1525 461 1372 1439 +3859 4 0 680 463 1739 852 +3860 4 0 1752 1740 988 1557 +3861 4 0 1836 1189 1740 1602 +3862 4 0 1189 1836 1740 988 +3863 4 0 159 147 1797 169 +3864 4 0 1797 159 169 1056 +3865 4 0 1797 159 1056 1654 +3866 4 0 756 701 702 1788 +3867 4 0 702 1208 913 756 +3868 4 0 756 702 1208 1788 +3869 4 0 631 1741 777 1628 +3870 4 0 1741 631 777 778 +3871 4 0 1741 1251 631 778 +3872 4 0 482 795 1088 1588 +3873 4 0 794 704 1670 1751 +3874 4 0 1751 704 773 794 +3875 4 0 1670 1279 1751 704 +3876 4 0 773 1751 1453 1822 +3877 4 0 1751 1279 1244 1822 +3878 4 0 1745 11 7 9 +3879 4 0 720 1488 421 1075 +3880 4 0 104 1753 92 799 +3881 4 0 104 92 1753 90 +3882 4 0 1468 607 1171 1457 +3883 4 0 230 1256 1475 1765 +3884 4 0 467 468 840 842 +3885 4 0 397 1530 600 723 +3886 4 0 723 1530 1249 397 +3887 4 0 1530 1249 397 887 +3888 4 0 217 1802 1772 1022 +3889 4 0 1772 892 1802 232 +3890 4 0 635 1104 328 1746 +3891 4 0 328 635 1746 1718 +3892 4 0 1052 1047 887 397 +3893 4 0 1599 1132 1052 804 +3894 4 0 1749 228 240 219 +3895 4 0 224 219 1749 240 +3896 4 0 1749 1595 224 240 +3897 4 0 1651 228 240 1749 +3898 4 0 1595 1651 240 1749 +3899 4 0 838 1606 242 1256 +3900 4 0 838 242 1606 1117 +3901 4 0 1606 838 1117 407 +3902 4 0 1606 1256 838 407 +3903 4 0 1096 342 1750 763 +3904 4 0 1750 342 1421 771 +3905 4 0 367 1141 1473 1405 +3906 4 0 1473 1141 1086 1405 +3907 4 0 873 652 1494 1513 +3908 4 0 429 1051 646 1205 +3909 4 0 646 429 1391 1051 +3910 4 0 1391 429 646 613 +3911 4 0 429 1594 646 613 +3912 4 0 1170 429 1594 646 +3913 4 0 429 646 1170 1205 +3914 4 0 1347 464 867 1609 +3915 4 0 1630 464 867 1347 +3916 4 0 1751 773 1129 794 +3917 4 0 1227 1125 402 1610 +3918 4 0 1752 160 377 1447 +3919 4 0 377 1752 1447 1680 +3920 4 0 1546 732 418 1716 +3921 4 0 844 1546 418 1716 +3922 4 0 94 90 104 1753 +3923 4 0 1681 713 638 1723 +3924 4 0 638 1492 1681 1723 +3925 4 0 905 782 1754 451 +3926 4 0 1754 782 1146 1806 +3927 4 0 1502 451 1806 782 +3928 4 0 451 1754 905 1515 +3929 4 0 1806 1146 1754 1586 +3930 4 0 451 1754 1515 1586 +3931 4 0 822 1521 1755 1760 +3932 4 0 1755 367 1050 504 +3933 4 0 367 1109 319 1405 +3934 4 0 367 319 1141 1405 +3935 4 0 1565 694 693 323 +3936 4 0 323 694 693 1634 +3937 4 0 1684 1139 831 1532 +3938 4 0 1684 1463 1139 1532 +3939 4 0 367 313 1109 1658 +3940 4 0 1521 313 367 1658 +3941 4 0 690 1260 1837 1744 +3942 4 0 1744 1260 1837 1104 +3943 4 0 1708 690 1837 1744 +3944 4 0 416 1616 843 469 +3945 4 0 418 469 1616 416 +3946 4 0 1327 1466 1834 365 +3947 4 0 1561 1834 365 1327 +3948 4 0 1069 715 1697 1756 +3949 4 0 1069 715 1756 1662 +3950 4 0 976 1460 1697 936 +3951 4 0 1758 104 1221 967 +3952 4 0 967 1758 104 1753 +3953 4 0 1093 1454 415 444 +3954 4 0 1454 1501 415 444 +3955 4 0 1037 415 1454 1501 +3956 4 0 784 1597 885 1796 +3957 4 0 784 748 1597 1796 +3958 4 0 885 1299 784 1796 +3959 4 0 702 913 775 756 +3960 4 0 553 1156 1048 1151 +3961 4 0 1048 1156 553 1712 +3962 4 0 1048 1712 553 1332 +3963 4 0 615 1598 613 1451 +3964 4 0 986 1451 1598 615 +3965 4 0 1759 703 581 1487 +3966 4 0 450 778 877 449 +3967 4 0 1447 1344 1058 1134 +3968 4 0 822 1760 1755 504 +3969 4 0 1237 822 504 1760 +3970 4 0 1521 1658 1755 1760 +3971 4 0 1525 1372 866 441 +3972 4 0 1837 329 750 1218 +3973 4 0 1100 1094 1093 443 +3974 4 0 1094 443 1095 1093 +3975 4 0 1401 784 452 1217 +3976 4 0 452 784 576 1217 +3977 4 0 452 1462 576 784 +3978 4 0 1073 1077 1800 397 +3979 4 0 987 1073 1800 397 +3980 4 0 1077 1800 397 1444 +3981 4 0 987 397 1800 1444 +3982 4 0 844 418 928 469 +3983 4 0 680 1728 1739 463 +3984 4 0 680 1739 1728 1064 +3985 4 0 1370 506 1761 1211 +3986 4 0 416 469 843 468 +3987 4 0 689 328 675 1762 +3988 4 0 689 1185 328 1762 +3989 4 0 1308 1762 675 328 +3990 4 0 637 1690 1780 1718 +3991 4 0 1702 1082 1703 626 +3992 4 0 1703 1569 1702 626 +3993 4 0 1702 904 1082 626 +3994 4 0 65 61 1270 43 +3995 4 0 1270 65 73 61 +3996 4 0 1168 1224 1270 61 +3997 4 0 1270 73 1683 61 +3998 4 0 1270 43 61 1224 +3999 4 0 1683 1270 61 1168 +4000 4 0 1763 398 568 1006 +4001 4 0 568 398 1763 1360 +4002 4 0 398 1006 1763 1229 +4003 4 0 43 65 1261 1270 +4004 4 0 992 65 1270 1261 +4005 4 0 1706 1609 412 1234 +4006 4 0 1086 1405 1540 1473 +4007 4 0 897 600 1729 1367 +4008 4 0 1017 1804 633 450 +4009 4 0 450 633 1632 1804 +4010 4 0 450 1345 1804 1632 +4011 4 0 1568 1490 688 1564 +4012 4 0 870 1039 1297 674 +4013 4 0 1297 1378 336 870 +4014 4 0 1039 1157 1297 1789 +4015 4 0 1135 1132 1422 1170 +4016 4 0 1599 1132 1422 1135 +4017 4 0 1297 1378 870 674 +4018 4 0 336 1764 518 870 +4019 4 0 1378 870 1764 336 +4020 4 0 1776 706 1717 1821 +4021 4 0 1776 706 1821 1096 +4022 4 0 706 1642 1096 1776 +4023 4 0 706 1642 1776 833 +4024 4 0 833 1642 1776 762 +4025 4 0 1717 706 1776 833 +4026 4 0 1203 654 1129 1400 +4027 4 0 1129 654 1212 1693 +4028 4 0 1203 654 1212 1129 +4029 4 0 711 1492 1459 453 +4030 4 0 1055 1830 1571 72 +4031 4 0 1055 1571 1106 72 +4032 4 0 1830 1194 1571 895 +4033 4 0 1194 1106 1571 895 +4034 4 0 1055 1830 1194 1571 +4035 4 0 772 773 794 1291 +4036 4 0 794 773 1554 1291 +4037 4 0 1129 773 1554 794 +4038 4 0 1203 1400 1129 1554 +4039 4 0 728 854 365 993 +4040 4 0 993 854 364 1326 +4041 4 0 854 993 364 365 +4042 4 0 522 496 526 527 +4043 4 0 527 522 496 1222 +4044 4 0 1018 809 1497 472 +4045 4 0 306 546 292 1382 +4046 4 0 763 1750 699 771 +4047 4 0 763 762 342 771 +4048 4 0 763 342 1750 771 +4049 4 0 331 1495 667 1484 +4050 4 0 331 1484 1288 1495 +4051 4 0 1700 565 958 1162 +4052 4 0 1446 326 1700 1665 +4053 4 0 1069 538 537 1680 +4054 4 0 1088 1588 1649 481 +4055 4 0 1588 481 774 1649 +4056 4 0 1742 1588 1088 481 +4057 4 0 1496 1640 1559 1351 +4058 4 0 751 1061 623 286 +4059 4 0 1061 623 286 1107 +4060 4 0 1107 288 623 286 +4061 4 0 286 288 623 1238 +4062 4 0 751 623 1238 286 +4063 4 0 41 329 1218 930 +4064 4 0 329 750 1218 930 +4065 4 0 863 402 1768 1524 +4066 4 0 1682 1492 1158 453 +4067 4 0 687 1682 1158 453 +4068 4 0 1621 1035 676 1028 +4069 4 0 1621 676 1198 1028 +4070 4 0 1255 461 1257 543 +4071 4 0 1255 1257 1068 543 +4072 4 0 1465 461 1255 543 +4073 4 0 940 987 533 1657 +4074 4 0 940 987 1369 533 +4075 4 0 1167 940 533 1657 +4076 4 0 1315 350 1248 1313 +4077 4 0 1248 350 1315 567 +4078 4 0 567 1248 350 1476 +4079 4 0 1191 543 876 365 +4080 4 0 1191 876 1380 365 +4081 4 0 514 365 876 1719 +4082 4 0 514 876 1542 1719 +4083 4 0 1769 1352 167 1387 +4084 4 0 1056 159 1769 1654 +4085 4 0 1158 1024 673 1445 +4086 4 0 687 673 1445 1158 +4087 4 0 714 637 1770 638 +4088 4 0 1560 1770 333 1308 +4089 4 0 1308 1560 675 1762 +4090 4 0 1793 746 1061 1779 +4091 4 0 544 1061 1107 1779 +4092 4 0 1061 623 1107 1779 +4093 4 0 623 1230 622 1403 +4094 4 0 1268 1102 690 1371 +4095 4 0 1268 1053 1102 1371 +4096 4 0 1708 1837 1038 1025 +4097 4 0 1033 669 734 330 +4098 4 0 1555 669 734 1033 +4099 4 0 1356 677 336 547 +4100 4 0 547 677 336 691 +4101 4 0 1290 296 1771 471 +4102 4 0 1556 1290 296 1771 +4103 4 0 653 1401 452 1509 +4104 4 0 1017 1511 906 1635 +4105 4 0 810 1169 1696 1240 +4106 4 0 905 1773 781 451 +4107 4 0 1773 781 1589 905 +4108 4 0 1773 451 905 1472 +4109 4 0 1774 782 752 1754 +4110 4 0 1754 752 1774 1515 +4111 4 0 1018 982 809 472 +4112 4 0 1127 983 982 809 +4113 4 0 1019 425 480 1245 +4114 4 0 722 425 480 1019 +4115 4 0 757 695 935 703 +4116 4 0 757 695 703 1092 +4117 4 0 94 90 1775 655 +4118 4 0 94 1775 90 1753 +4119 4 0 1758 1753 790 1775 +4120 4 0 1830 797 72 706 +4121 4 0 1830 1571 72 797 +4122 4 0 1776 1642 763 762 +4123 4 0 524 1411 1747 1436 +4124 4 0 1436 1747 524 1568 +4125 4 0 1747 1568 688 524 +4126 4 0 807 1561 805 1235 +4127 4 0 807 1561 1235 340 +4128 4 0 419 718 617 1777 +4129 4 0 419 1809 1777 1823 +4130 4 0 1492 636 711 742 +4131 4 0 1778 1260 334 690 +4132 4 0 606 1354 1516 1114 +4133 4 0 396 1240 1138 1011 +4134 4 0 1011 1240 1169 396 +4135 4 0 606 396 1011 1169 +4136 4 0 393 1551 1578 1116 +4137 4 0 1384 59 69 71 +4138 4 0 1384 69 59 53 +4139 4 0 1249 490 1530 723 +4140 4 0 723 490 1530 1367 +4141 4 0 1367 1729 490 1530 +4142 4 0 1757 291 470 1573 +4143 4 0 209 1303 208 216 +4144 4 0 209 208 1303 204 +4145 4 0 749 760 341 624 +4146 4 0 1780 1690 328 1718 +4147 4 0 1780 637 1718 328 +4148 4 0 1220 1266 895 1201 +4149 4 0 839 957 1441 1781 +4150 4 0 839 1781 551 1404 +4151 4 0 1447 1680 1662 835 +4152 4 0 1680 1069 1662 835 +4153 4 0 378 375 1725 393 +4154 4 0 1508 1165 1585 1428 +4155 4 0 1058 1338 1479 602 +4156 4 0 1135 1444 1338 602 +4157 4 0 1479 1338 1675 602 +4158 4 0 1444 1675 1338 602 +4159 4 0 686 1376 1305 672 +4160 4 0 672 1305 1026 1376 +4161 4 0 589 505 1168 499 +4162 4 0 499 1309 505 1168 +4163 4 0 499 1334 505 1309 +4164 4 0 1151 791 1156 795 +4165 4 0 1679 791 1151 795 +4166 4 0 1347 1609 1234 1500 +4167 4 0 1382 1556 292 296 +4168 4 0 296 1175 1382 1556 +4169 4 0 167 1387 611 804 +4170 4 0 1656 1047 804 611 +4171 4 0 167 1656 804 611 +4172 4 0 1174 1587 1246 1415 +4173 4 0 1741 1175 1726 778 +4174 4 0 1741 1726 1251 778 +4175 4 0 1175 777 778 1741 +4176 4 0 1782 740 388 1829 +4177 4 0 1782 740 1546 1716 +4178 4 0 1782 1829 1546 740 +4179 4 0 1783 215 231 223 +4180 4 0 223 1783 513 231 +4181 4 0 1559 215 231 1783 +4182 4 0 513 1640 231 1783 +4183 4 0 1640 1559 231 1783 +4184 4 0 1028 1620 1036 1342 +4185 4 0 1444 1135 1599 1422 +4186 4 0 1178 1795 972 1519 +4187 4 0 1795 577 972 1796 +4188 4 0 1178 1795 1519 493 +4189 4 0 1795 577 1659 493 +4190 4 0 1704 1648 830 1810 +4191 4 0 1704 803 830 1648 +4192 4 0 1400 655 1721 1784 +4193 4 0 1785 1409 516 10 +4194 4 0 107 1248 1315 1221 +4195 4 0 112 107 1221 99 +4196 4 0 1315 112 107 1221 +4197 4 0 1407 1042 1799 569 +4198 4 0 781 1407 1799 569 +4199 4 0 1786 1333 308 917 +4200 4 0 1786 1361 285 1333 +4201 4 0 446 843 445 1655 +4202 4 0 445 1655 843 1358 +4203 4 0 1358 1145 445 1655 +4204 4 0 1575 1145 1358 1655 +4205 4 0 759 705 1644 1048 +4206 4 0 759 705 1048 1385 +4207 4 0 798 1813 665 1053 +4208 4 0 1563 1813 665 798 +4209 4 0 469 1616 843 844 +4210 4 0 843 446 469 1539 +4211 4 0 843 469 844 1539 +4212 4 0 1060 1336 472 982 +4213 4 0 472 982 1446 1060 +4214 4 0 1377 1683 81 77 +4215 4 0 1683 81 1215 1377 +4216 4 0 338 1186 1646 1601 +4217 4 0 1737 1186 1646 338 +4218 4 0 1294 1737 1646 338 +4219 4 0 444 1193 856 682 +4220 4 0 467 682 856 912 +4221 4 0 856 467 444 682 +4222 4 0 684 1065 446 1792 +4223 4 0 446 469 1539 1792 +4224 4 0 754 1788 1672 756 +4225 4 0 1056 159 1352 1769 +4226 4 0 1769 1352 1387 159 +4227 4 0 1349 1794 325 1469 +4228 4 0 307 1647 1350 652 +4229 4 0 629 1647 1350 1831 +4230 4 0 1738 231 1068 1351 +4231 4 0 1068 1496 1738 1351 +4232 4 0 1554 1203 1400 1493 +4233 4 0 997 1039 674 1789 +4234 4 0 1163 1405 1109 367 +4235 4 0 1658 1163 1109 367 +4236 4 0 759 1385 761 697 +4237 4 0 759 697 761 1310 +4238 4 0 759 1385 1048 761 +4239 4 0 1471 393 1578 1116 +4240 4 0 1471 1116 1578 1182 +4241 4 0 682 444 1668 467 +4242 4 0 444 467 842 1668 +4243 4 0 950 1428 441 868 +4244 4 0 868 441 413 1428 +4245 4 0 950 441 1428 1525 +4246 4 0 866 441 950 1525 +4247 4 0 866 950 441 868 +4248 4 0 1163 1405 367 504 +4249 4 0 1658 1163 367 504 +4250 4 0 388 551 373 1791 +4251 4 0 551 1791 388 462 +4252 4 0 462 1829 851 1160 +4253 4 0 469 1539 1792 844 +4254 4 0 446 1705 1792 1539 +4255 4 0 1197 631 1513 1481 +4256 4 0 1260 1838 1185 334 +4257 4 0 1260 1185 1574 334 +4258 4 0 1709 1185 1574 1260 +4259 4 0 544 1061 286 1107 +4260 4 0 1566 727 1183 1482 +4261 4 0 1115 1482 1566 1183 +4262 4 0 1566 727 1147 1183 +4263 4 0 1469 403 71 1794 +4264 4 0 1349 71 1469 1619 +4265 4 0 1469 1794 71 1349 +4266 4 0 1479 1447 1058 1134 +4267 4 0 874 1545 1835 1186 +4268 4 0 1545 1069 874 1835 +4269 4 0 874 1186 1835 1737 +4270 4 0 502 279 292 287 +4271 4 0 287 292 1290 296 +4272 4 0 287 502 1290 292 +4273 4 0 806 215 1783 223 +4274 4 0 728 1783 806 993 +4275 4 0 806 223 728 239 +4276 4 0 772 794 1499 1291 +4277 4 0 794 1554 789 1291 +4278 4 0 772 1291 1499 753 +4279 4 0 524 1763 1808 1006 +4280 4 0 1360 1763 1748 524 +4281 4 0 1763 1748 524 1808 +4282 4 0 1384 700 69 53 +4283 4 0 53 700 1226 1384 +4284 4 0 1296 1578 1360 1564 +4285 4 0 843 858 468 469 +4286 4 0 1796 784 748 1567 +4287 4 0 147 169 612 1797 +4288 4 0 1797 147 1593 612 +4289 4 0 393 1725 1448 1471 +4290 4 0 1448 1214 1471 1725 +4291 4 0 1798 11 7 1745 +4292 4 0 686 672 1305 1745 +4293 4 0 686 7 1798 1305 +4294 4 0 1560 1030 1024 996 +4295 4 0 633 450 778 1017 +4296 4 0 1017 450 1087 881 +4297 4 0 1175 778 1017 633 +4298 4 0 1407 1805 1799 1042 +4299 4 0 1799 781 917 1635 +4300 4 0 338 1079 1090 1601 +4301 4 0 338 321 1090 1079 +4302 4 0 94 1753 1758 1775 +4303 4 0 810 392 1379 1240 +4304 4 0 1191 543 1465 876 +4305 4 0 1191 876 1465 1380 +4306 4 0 1105 290 564 1179 +4307 4 0 248 564 838 1607 +4308 4 0 1681 1517 713 1723 +4309 4 0 1382 546 292 1556 +4310 4 0 546 1346 292 1556 +4311 4 0 1819 477 702 590 +4312 4 0 1242 702 1819 477 +4313 4 0 1460 976 1756 1177 +4314 4 0 1256 551 1514 462 +4315 4 0 1802 931 1477 1022 +4316 4 0 931 1802 1477 892 +4317 4 0 1802 1477 1772 1022 +4318 4 0 1477 1802 1772 892 +4319 4 0 728 365 876 993 +4320 4 0 543 993 876 365 +4321 4 0 1834 514 929 365 +4322 4 0 514 365 1834 1380 +4323 4 0 1834 1633 1380 365 +4324 4 0 606 396 390 1354 +4325 4 0 1354 390 606 1032 +4326 4 0 606 396 1641 390 +4327 4 0 1641 606 390 1032 +4328 4 0 1641 390 396 1379 +4329 4 0 1757 1021 1196 893 +4330 4 0 1689 378 375 1490 +4331 4 0 1689 375 1296 1564 +4332 4 0 1564 1490 1689 375 +4333 4 0 1801 1292 1638 479 +4334 4 0 378 1438 508 1725 +4335 4 0 1438 501 508 1725 +4336 4 0 378 1438 1491 508 +4337 4 0 508 501 1438 1491 +4338 4 0 1579 378 1438 1491 +4339 4 0 1696 1552 532 1478 +4340 4 0 1017 906 633 1804 +4341 4 0 1804 633 1632 906 +4342 4 0 1565 1596 323 693 +4343 4 0 1587 1398 1210 1174 +4344 4 0 1004 1210 1587 1398 +4345 4 0 1587 696 1398 1174 +4346 4 0 1722 654 1790 656 +4347 4 0 1519 1795 747 780 +4348 4 0 1772 1802 217 232 +4349 4 0 821 1652 1618 1480 +4350 4 0 706 1027 60 54 +4351 4 0 60 1027 797 1381 +4352 4 0 988 1752 377 1680 +4353 4 0 605 1771 608 471 +4354 4 0 471 1771 608 298 +4355 4 0 421 1075 1820 720 +4356 4 0 421 1075 1488 1429 +4357 4 0 1189 717 1740 1602 +4358 4 0 1070 1602 1392 1189 +4359 4 0 1302 1694 1392 717 +4360 4 0 1302 1506 1694 717 +4361 4 0 1514 462 740 407 +4362 4 0 740 462 732 407 +4363 4 0 1256 462 1514 407 +4364 4 0 1066 1395 1402 1431 +4365 4 0 1066 1402 585 1431 +4366 4 0 592 1803 1366 1610 +4367 4 0 392 1402 1395 1431 +4368 4 0 471 282 298 302 +4369 4 0 409 471 302 282 +4370 4 0 589 1215 1168 505 +4371 4 0 589 1215 1683 1168 +4372 4 0 1624 1677 963 964 +4373 4 0 327 1676 1677 1624 +4374 4 0 1130 1555 1033 1102 +4375 4 0 1567 1825 1150 731 +4376 4 0 783 731 760 1824 +4377 4 0 783 991 731 1824 +4378 4 0 1553 760 731 1824 +4379 4 0 716 1820 596 1410 +4380 4 0 701 1672 756 775 +4381 4 0 881 1804 1017 450 +4382 4 0 1816 1710 906 1805 +4383 4 0 1799 781 1635 1773 +4384 4 0 1407 451 781 1805 +4385 4 0 752 1217 1401 1146 +4386 4 0 1146 452 1401 1509 +4387 4 0 1754 782 1806 451 +4388 4 0 451 1806 1754 1586 +4389 4 0 1268 1778 1807 334 +4390 4 0 1574 1807 1033 1260 +4391 4 0 1807 1033 1260 1778 +4392 4 0 1237 631 1522 1481 +4393 4 0 1197 1481 1522 631 +4394 4 0 1761 500 727 1211 +4395 4 0 1761 500 383 727 +4396 4 0 1763 568 1808 1006 +4397 4 0 568 1748 1763 1808 +4398 4 0 720 716 596 1177 +4399 4 0 720 1177 1143 1241 +4400 4 0 720 596 1143 1177 +4401 4 0 1736 646 1058 602 +4402 4 0 1058 646 1338 602 +4403 4 0 1736 602 1058 1134 +4404 4 0 526 498 496 1152 +4405 4 0 1548 498 526 1152 +4406 4 0 1550 641 1823 1363 +4407 4 0 1823 1809 1777 641 +4408 4 0 490 723 641 1809 +4409 4 0 1550 1809 1823 641 +4410 4 0 296 1786 308 1175 +4411 4 0 1366 1803 1227 1610 +4412 4 0 1494 1810 1704 873 +4413 4 0 1494 1648 1704 1810 +4414 4 0 1810 899 1704 873 +4415 4 0 777 1494 873 1810 +4416 4 0 1628 777 873 1810 +4417 4 0 1810 899 873 1628 +4418 4 0 1175 1017 1511 633 +4419 4 0 917 1175 1017 1511 +4420 4 0 1017 633 906 1511 +4421 4 0 1773 1816 906 1799 +4422 4 0 496 522 495 1297 +4423 4 0 544 1793 1779 310 +4424 4 0 544 1793 1061 1779 +4425 4 0 15 29 400 1261 +4426 4 0 782 812 745 660 +4427 4 0 307 652 1350 1811 +4428 4 0 307 1757 652 1811 +4429 4 0 1757 1573 652 1811 +4430 4 0 1812 1782 388 1829 +4431 4 0 1812 620 388 1184 +4432 4 0 1812 1829 388 620 +4433 4 0 1202 578 1611 580 +4434 4 0 336 518 331 691 +4435 4 0 518 1764 336 331 +4436 4 0 691 331 336 547 +4437 4 0 1083 1333 917 1589 +4438 4 0 702 477 1734 590 +4439 4 0 1814 11 1798 1745 +4440 4 0 451 574 1407 781 +4441 4 0 710 1663 711 636 +4442 4 0 712 34 1690 637 +4443 4 0 1690 34 1718 637 +4444 4 0 28 699 1120 22 +4445 4 0 1815 224 232 216 +4446 4 0 232 1347 1815 216 +4447 4 0 232 1699 1815 1347 +4448 4 0 1664 232 1815 224 +4449 4 0 1816 451 1472 938 +4450 4 0 1773 1816 781 451 +4451 4 0 1816 451 1773 1472 +4452 4 0 1816 1710 451 938 +4453 4 0 451 1710 1816 1805 +4454 4 0 781 451 1816 1805 +4455 4 0 450 778 1087 877 +4456 4 0 1017 450 778 1087 +4457 4 0 1370 1761 1482 1211 +4458 4 0 1376 1158 1026 672 +4459 4 0 1142 990 541 540 +4460 4 0 1142 990 1071 541 +4461 4 0 1636 1164 1486 1110 +4462 4 0 1034 1504 689 675 +4463 4 0 689 1838 328 1185 +4464 4 0 1025 1838 675 1034 +4465 4 0 1260 1838 689 1185 +4466 4 0 689 1838 675 328 +4467 4 0 1175 1511 1382 1726 +4468 4 0 1817 842 1454 444 +4469 4 0 444 467 1817 842 +4470 4 0 1817 467 1678 842 +4471 4 0 1568 378 977 1818 +4472 4 0 1818 674 870 1568 +4473 4 0 723 490 1367 1809 +4474 4 0 1199 1047 641 1249 +4475 4 0 1039 1789 1297 674 +4476 4 0 951 1215 589 505 +4477 4 0 1204 673 1250 687 +4478 4 0 687 673 1250 1445 +4479 4 0 1482 1761 727 1211 +4480 4 0 775 702 793 1819 +4481 4 0 793 1819 1626 775 +4482 4 0 1143 720 1820 596 +4483 4 0 165 183 167 1656 +4484 4 0 183 167 1656 1414 +4485 4 0 1096 1821 1717 1120 +4486 4 0 1776 1821 1717 1096 +4487 4 0 1636 1110 1486 1520 +4488 4 0 1484 1720 1563 798 +4489 4 0 798 1813 1720 1563 +4490 4 0 1432 704 503 1822 +4491 4 0 704 1822 773 503 +4492 4 0 773 1751 1822 704 +4493 4 0 1751 1279 1822 704 +4494 4 0 1482 727 1183 1 +4495 4 0 1482 1211 727 1 +4496 4 0 1621 1198 676 961 +4497 4 0 1796 748 1464 624 +4498 4 0 1150 624 1464 748 +4499 4 0 1567 748 624 1150 +4500 4 0 1796 1567 748 624 +4501 4 0 383 920 642 500 +4502 4 0 642 920 1216 500 +4503 4 0 1823 1363 1199 1111 +4504 4 0 329 16 41 635 +4505 4 0 41 635 492 1218 +4506 4 0 41 930 1218 492 +4507 4 0 713 638 712 714 +4508 4 0 712 637 714 638 +4509 4 0 712 637 1308 714 +4510 4 0 565 1672 1162 964 +4511 4 0 1202 694 1672 565 +4512 4 0 1202 565 1672 1162 +4513 4 0 1627 632 779 652 +4514 4 0 1484 1720 1288 1495 +4515 4 0 758 696 1306 1246 +4516 4 0 9 1348 15 1663 +4517 4 0 930 960 1218 492 +4518 4 0 688 378 1490 1568 +4519 4 0 688 378 1568 1818 +4520 4 0 1135 1800 1338 1444 +4521 4 0 1444 1800 1338 1675 +4522 4 0 963 793 1626 775 +4523 4 0 793 963 327 1677 +4524 4 0 1624 327 963 1677 +4525 4 0 772 753 1499 1242 +4526 4 0 617 1729 490 1367 +4527 4 0 617 897 1729 1367 +4528 4 0 1204 333 673 1682 +4529 4 0 333 673 1250 1204 +4530 4 0 1069 1410 915 716 +4531 4 0 716 1069 1545 915 +4532 4 0 660 745 752 991 +4533 4 0 782 745 752 660 +4534 4 0 812 1826 745 1577 +4535 4 0 1826 812 745 1353 +4536 4 0 309 313 1627 630 +4537 4 0 1521 313 630 1627 +4538 4 0 1521 313 1658 630 +4539 4 0 1431 392 395 1685 +4540 4 0 998 1192 764 1827 +4541 4 0 1752 377 1557 988 +4542 4 0 1102 1013 1053 663 +4543 4 0 663 1013 1555 1102 +4544 4 0 1828 703 1759 1487 +4545 4 0 539 948 989 1549 +4546 4 0 907 989 948 1549 +4547 4 0 1589 1083 1406 1353 +4548 4 0 1792 469 844 928 +4549 4 0 928 469 1065 1792 +4550 4 0 1560 1024 1030 1250 +4551 4 0 333 673 1560 1250 +4552 4 0 675 1560 996 1504 +4553 4 0 689 1560 675 1504 +4554 4 0 1504 1030 1560 996 +4555 4 0 1567 1150 624 760 +4556 4 0 783 1824 760 1833 +4557 4 0 1553 760 1824 1604 +4558 4 0 1824 1833 1604 760 +4559 4 0 386 483 536 921 +4560 4 0 386 536 1201 491 +4561 4 0 1215 73 1683 1270 +4562 4 0 1635 781 917 1589 +4563 4 0 1773 781 1635 1589 +4564 4 0 1831 1647 1350 307 +4565 4 0 1260 1837 1104 334 +4566 4 0 1583 334 690 1427 +4567 4 0 1837 1583 334 690 +4568 4 0 1450 1295 1832 1204 +4569 4 0 783 991 1824 1833 +4570 4 0 991 660 1833 783 +4571 4 0 1012 1839 529 847 +4572 4 0 847 1011 1012 1839 +4573 4 0 396 1839 1012 1011 +4574 4 0 1012 529 1839 396 +4575 4 0 798 837 1813 961 +4576 4 0 961 798 837 547 +4577 4 0 1791 1829 388 462 +4578 4 0 462 1829 1160 1791 +4579 4 0 628 1094 1095 232 +4580 4 0 628 1094 232 1630 +4581 4 0 1630 1094 232 1699 +4582 4 0 1514 1256 407 1607 +4583 4 0 802 712 401 1735 +4584 4 0 1069 1662 1756 1545 +4585 4 0 1825 731 1567 783 +4586 4 0 1825 1503 731 783 +4587 4 0 1169 810 1379 1240 +4588 4 0 1656 183 181 165 +4589 4 0 957 1179 1582 1105 +4590 4 0 1547 1179 957 1105 +4591 4 0 1767 1179 957 1547 +4592 4 0 1561 929 1834 1235 +4593 4 0 872 314 1518 310 +4594 4 0 872 1636 1518 314 +4595 4 0 1027 1386 1201 386 +4596 4 0 1381 1027 1201 386 +4597 4 0 1407 574 1715 1085 +4598 4 0 1701 1660 1006 494 +4599 4 0 1701 1337 1660 494 +4600 4 0 1069 1545 915 1835 +4601 4 0 988 1069 945 1835 +4602 4 0 874 1835 1069 988 +4603 4 0 1374 810 395 825 +4604 4 0 674 1568 1818 1747 +4605 4 0 1747 1818 674 1614 +4606 4 0 1719 854 365 728 +4607 4 0 1719 365 876 728 +4608 4 0 1514 551 839 388 +4609 4 0 1441 957 373 1781 +4610 4 0 388 1441 1781 839 +4611 4 0 763 699 1120 28 +4612 4 0 763 1096 1120 699 +4613 4 0 1049 1201 895 797 +4614 4 0 1830 895 1571 797 +4615 4 0 1012 396 1011 606 +4616 4 0 1012 396 606 1412 +4617 4 0 936 836 940 1073 +4618 4 0 1745 7 5 9 +4619 4 0 686 1745 7 5 +4620 4 0 686 1745 1798 7 +4621 4 0 328 1691 635 16 +4622 4 0 635 1691 328 1104 +4623 4 0 709 9 15 710 +4624 4 0 710 1663 15 711 +4625 4 0 1746 1838 328 675 +4626 4 0 1159 534 532 1581 +4627 4 0 1584 534 532 1159 +4628 4 0 789 753 790 1499 +4629 4 0 1753 789 90 753 +4630 4 0 1753 753 790 789 +4631 4 0 1499 1291 789 753 +4632 4 0 789 1291 90 753 +4633 4 0 956 403 700 69 +4634 4 0 956 700 1231 1711 +4635 4 0 956 69 700 1711 +4636 4 0 700 403 956 1231 +4637 4 0 69 1384 71 403 +4638 4 0 956 403 69 71 +4639 4 0 1339 1594 615 602 +4640 4 0 1339 1594 602 1422 +4641 4 0 1779 623 1403 746 +4642 4 0 285 1333 621 1406 +4643 4 0 285 621 1591 1406 +4644 4 0 839 1547 1781 1404 +4645 4 0 1644 705 1679 1048 +4646 4 0 1836 1740 1737 1602 +4647 4 0 1766 847 529 1839 +4648 4 0 1240 1138 1011 532 +4649 4 0 1581 1011 1138 532 +4650 4 0 534 1581 1138 532 +4651 4 0 675 1504 996 1025 +4652 4 0 1809 490 1367 1777 +4653 4 0 1777 617 490 1367 +4654 4 0 641 1777 490 1809 +4655 4 0 716 1820 720 596 +4656 4 0 1820 716 720 1075 +4657 4 0 279 287 502 266 +4658 4 0 1774 905 745 782 +4659 4 0 812 782 745 905 +4660 4 0 1774 745 752 782 +4661 4 0 1837 329 635 1691 +4662 4 0 1799 1017 1635 917 +4663 4 0 1169 810 825 1379 +4664 4 0 810 395 825 1379 +4665 4 0 1412 1012 396 529 +4666 4 0 1072 532 949 1071 +4667 4 0 1071 1010 1552 532 +4668 4 0 532 1552 1071 1072 +4669 4 0 981 332 1072 1071 +4670 4 0 1071 1552 332 1072 +4671 4 0 1287 1826 1577 1543 +4672 4 0 752 660 991 1217 +4673 4 0 752 991 1503 1217 +4674 4 0 752 782 660 1217 +4675 4 0 1768 1227 1125 402 +4676 4 0 247 1125 1768 1301 +4677 4 0 1125 1227 1768 1301 +4678 4 0 1646 1601 1429 1079 +4679 4 0 660 1577 991 1840 +4680 4 0 1833 991 1824 1840 +4681 4 0 991 660 1840 1833 +4682 4 0 1012 1009 168 934 +4683 4 0 1012 606 934 1412 +4684 4 0 1012 1412 934 168 +4685 4 0 1339 602 1598 599 +4686 4 0 1479 835 1058 1447 +4687 4 0 1479 835 836 1058 +4688 4 0 1104 328 334 1691 +4689 4 0 1185 1838 328 334 +4690 4 0 1030 689 1504 1560 +4691 4 0 672 1147 710 686 +4692 4 0 710 636 453 672 +4693 4 0 711 636 453 710 +4694 4 0 1433 1024 1158 1445 +4695 4 0 462 551 1160 965 +4696 4 0 462 1791 1160 551 +4697 4 0 1251 450 449 778 +4698 4 0 1251 1082 449 450 +4699 4 0 450 778 1251 633 +4700 4 0 1390 824 1006 494 +4701 4 0 1418 824 1390 494 +4702 4 0 1268 1371 690 1427 +4703 4 0 690 1621 676 1427 +4704 4 0 690 1621 1427 1371 +4705 4 0 999 1000 1192 765 +4706 4 0 999 765 1001 1000 +4707 4 0 887 490 1249 1199 +4708 4 0 1530 490 1249 887 +4709 4 0 446 1686 858 1065 +4710 4 0 1065 469 446 1792 +4711 4 0 1711 1078 956 69 +4712 4 0 1711 1118 1078 69 +4713 4 0 880 573 1197 449 +4714 4 0 573 449 778 1197 +4715 4 0 778 1197 449 631 +4716 4 0 778 631 777 1197 +4717 4 0 779 1522 1197 1481 +4718 4 0 1590 829 1197 779 +4719 4 0 1197 1481 1513 779 +4720 4 0 829 1522 1197 779 +4721 4 0 397 1249 1047 887 +4722 4 0 1052 397 1599 1047 +4723 4 0 1050 1473 1841 1540 +4724 4 0 1605 380 1236 847 +4725 4 0 1605 380 847 1388 +4726 4 0 1069 1756 1697 716 +4727 4 0 1069 1697 1410 716 +4728 4 0 1069 1756 716 1545 +$EndElements +$ElementData +1 +"color" +1 +0.0 +3 +0 +1 +4728 +1 3.77865 +2 3.54013 +3 6.26068 +4 7.15214 +5 4.82503 +6 5.4864 +7 4.86834 +8 6.17593 +9 7.19991 +10 4.15423 +11 3.70338 +12 5.75319 +13 4.72767 +14 3.40316 +15 7.0923 +16 5.05101 +17 4.76941 +18 5.25049 +19 4.63396 +20 6.66794 +21 3.55347 +22 5.54393 +23 4.37148 +24 5.11922 +25 3.91513 +26 5.24666 +27 3.18203 +28 3.53556 +29 4.65693 +30 4.61507 +31 3.88484 +32 3.92825 +33 4.70988 +34 4.57068 +35 5.76576 +36 3.80352 +37 7.01147 +38 4.36329 +39 4.50768 +40 3.58088 +41 5.29605 +42 3.88738 +43 4.02045 +44 4.31119 +45 5.46207 +46 4.40823 +47 3.95418 +48 3.18936 +49 4.31376 +50 3.61285 +51 4.01243 +52 3.68681 +53 4.14414 +54 4.46974 +55 7.80039 +56 5.98469 +57 3.49046 +58 3.56356 +59 3.46208 +60 5.67145 +61 5.79393 +62 3.14186 +63 7.14002 +64 5.29911 +65 5.39027 +66 7.34304 +67 3.74313 +68 3.66352 +69 5.7641 +70 5.24095 +71 3.95335 +72 3.26162 +73 5.34015 +74 4.49984 +75 5.75293 +76 5.55313 +77 3.70858 +78 5.37354 +79 3.89655 +80 4.51949 +81 4.55018 +82 3.82979 +83 3.83353 +84 5.3719 +85 3.88505 +86 3.5859 +87 4.73468 +88 6.38699 +89 5.69786 +90 4.02554 +91 4.45966 +92 5.33077 +93 7.70209 +94 3.86954 +95 5.09518 +96 3.44986 +97 4.73341 +98 5.09586 +99 3.46036 +100 3.57529 +101 3.789 +102 5.27163 +103 4.1246 +104 5.05687 +105 6.03687 +106 4.33606 +107 4.54177 +108 4.18184 +109 4.61903 +110 4.95587 +111 4.68612 +112 4.58574 +113 3.46481 +114 3.68805 +115 3.56264 +116 3.73399 +117 4.81895 +118 3.23402 +119 4.25299 +120 4.83155 +121 4.484 +122 4.82239 +123 3.70064 +124 4.73044 +125 4.83522 +126 9.85082 +127 9.90449 +128 3.42795 +129 4.23419 +130 6.39119 +131 9.90434 +132 4.59535 +133 4.4014 +134 7.18864 +135 3.62868 +136 4.20519 +137 3.9366 +138 4.80061 +139 4.65341 +140 4.38177 +141 3.89386 +142 4.74025 +143 3.28182 +144 3.70202 +145 4.40918 +146 4.7942 +147 3.85891 +148 4.6884 +149 4.32756 +150 5.17378 +151 4.64131 +152 4.4253 +153 4.40877 +154 4.27841 +155 3.64527 +156 3.75188 +157 4.0099 +158 4.75102 +159 3.38264 +160 3.99113 +161 4.84958 +162 4.18622 +163 3.76773 +164 5.39235 +165 4.61694 +166 3.74671 +167 5.11596 +168 4.45634 +169 3.95722 +170 3.12179 +171 4.18231 +172 3.91969 +173 4.683 +174 4.58822 +175 3.5541 +176 4.26262 +177 4.18822 +178 3.71707 +179 6.1492 +180 3.44907 +181 3.78533 +182 5.60486 +183 3.45306 +184 4.09392 +185 4.44357 +186 4.48519 +187 4.94063 +188 3.96958 +189 4.30008 +190 3.38705 +191 8.03485 +192 4.52307 +193 3.7741 +194 3.86956 +195 4.42076 +196 4.33108 +197 6.5686 +198 5.11485 +199 5.05969 +200 3.84924 +201 7.19327 +202 7.66094 +203 3.59362 +204 4.39286 +205 4.44854 +206 4.74804 +207 4.38215 +208 3.8201 +209 3.63892 +210 5.31348 +211 4.4778 +212 4.12549 +213 5.93585 +214 3.81499 +215 4.84248 +216 4.99704 +217 5.57119 +218 5.40025 +219 3.5622 +220 3.88879 +221 4.15788 +222 4.5683 +223 3.45074 +224 4.36985 +225 4.24558 +226 6.88567 +227 4.27225 +228 4.14481 +229 3.99689 +230 4.58933 +231 4.79537 +232 4.24314 +233 3.51109 +234 3.92666 +235 4.23422 +236 5.15183 +237 4.73669 +238 4.29441 +239 4.55154 +240 4.97773 +241 4.29085 +242 4.86125 +243 3.47939 +244 3.92875 +245 4.27858 +246 4.45156 +247 3.66447 +248 5.12378 +249 4.02996 +250 3.27351 +251 4.68186 +252 4.59498 +253 4.23567 +254 5.45647 +255 4.65827 +256 4.27156 +257 3.47258 +258 5.68174 +259 3.76396 +260 5.72065 +261 4.33021 +262 4.32183 +263 3.42672 +264 3.96632 +265 4.58738 +266 5.74587 +267 4.72531 +268 5.43621 +269 4.84489 +270 4.37184 +271 4.87026 +272 4.98735 +273 4.6853 +274 4.12484 +275 4.14112 +276 4.58072 +277 4.364 +278 5.50168 +279 9.90446 +280 4.71716 +281 7.15217 +282 4.24757 +283 5.37066 +284 3.53652 +285 4.33412 +286 7.84796 +287 4.33093 +288 5.41296 +289 4.5293 +290 4.97197 +291 4.3169 +292 4.52573 +293 3.73633 +294 7.66096 +295 9.9043 +296 7.1933 +297 3.86959 +298 3.4951 +299 4.87001 +300 5.44191 +301 4.70039 +302 4.55507 +303 6.27826 +304 4.52935 +305 5.17435 +306 7.0204 +307 4.74944 +308 4.00157 +309 3.87687 +310 4.1804 +311 4.41119 +312 4.87077 +313 4.84543 +314 4.45712 +315 3.95388 +316 5.0443 +317 4.24014 +318 4.60003 +319 3.53628 +320 4.84908 +321 4.98434 +322 5.0165 +323 3.99543 +324 4.84789 +325 7.65184 +326 4.23569 +327 4.63823 +328 6.98419 +329 4.18439 +330 4.00138 +331 5.54529 +332 5.02958 +333 6.09279 +334 5.57081 +335 4.07167 +336 3.57728 +337 5.35392 +338 4.67001 +339 3.71376 +340 4.24364 +341 4.39153 +342 5.61847 +343 5.38189 +344 7.01806 +345 5.34187 +346 4.45387 +347 4.69253 +348 5.55485 +349 4.37617 +350 4.30891 +351 4.3035 +352 4.43419 +353 5.46698 +354 4.6717 +355 5.60167 +356 3.68017 +357 5.18482 +358 3.99138 +359 4.74922 +360 3.84889 +361 5.4801 +362 4.87 +363 4.7171 +364 4.5852 +365 5.68669 +366 3.95176 +367 4.59083 +368 4.38758 +369 4.06014 +370 4.28622 +371 4.56543 +372 4.18617 +373 5.7403 +374 4.5449 +375 4.7374 +376 3.91849 +377 3.5555 +378 3.72474 +379 4.4258 +380 3.13986 +381 4.05172 +382 4.38807 +383 4.16831 +384 3.83384 +385 4.14276 +386 5.86972 +387 3.9753 +388 4.26802 +389 5.03217 +390 7.77116 +391 4.41211 +392 4.27887 +393 4.11859 +394 4.94146 +395 7.05102 +396 5.06233 +397 5.88006 +398 5.33482 +399 4.97454 +400 4.64606 +401 4.05489 +402 4.03895 +403 3.73753 +404 3.56375 +405 3.88179 +406 5.06386 +407 5.95023 +408 4.13595 +409 4.91736 +410 3.94806 +411 5.58978 +412 3.70499 +413 4.10608 +414 4.20842 +415 5.25359 +416 4.33434 +417 4.43349 +418 3.72806 +419 3.9697 +420 4.17328 +421 3.98554 +422 4.58693 +423 7.14961 +424 3.62171 +425 5.02561 +426 4.17901 +427 4.10645 +428 4.36903 +429 3.86938 +430 5.313 +431 5.12219 +432 4.4709 +433 5.29139 +434 5.17495 +435 4.31556 +436 4.58162 +437 4.63089 +438 5.55835 +439 5.21321 +440 3.74825 +441 4.34484 +442 4.6822 +443 4.32577 +444 3.64091 +445 4.89784 +446 4.20636 +447 4.68196 +448 3.67769 +449 4.64429 +450 3.80347 +451 3.53105 +452 3.99099 +453 5.18411 +454 4.4501 +455 3.64302 +456 5.1265 +457 4.87119 +458 3.80107 +459 4.57406 +460 5.61258 +461 5.30496 +462 4.52125 +463 7.00431 +464 6.73013 +465 6.36645 +466 6.10191 +467 7.55227 +468 3.64437 +469 5.08508 +470 3.71357 +471 5.04663 +472 4.97808 +473 5.32344 +474 4.50457 +475 4.18663 +476 4.67051 +477 5.51068 +478 5.13194 +479 4.8191 +480 3.95502 +481 5.10254 +482 4.9401 +483 5.05744 +484 4.21396 +485 4.91812 +486 3.379 +487 5.62234 +488 6.65363 +489 5.37447 +490 3.29055 +491 5.18847 +492 6.50381 +493 3.9735 +494 4.17802 +495 5.43269 +496 4.1841 +497 3.75149 +498 3.69809 +499 5.20176 +500 4.32512 +501 4.54878 +502 4.88057 +503 4.66964 +504 4.6313 +505 4.32675 +506 4.17189 +507 4.62471 +508 4.73594 +509 4.78193 +510 4.27641 +511 3.19793 +512 4.40807 +513 4.5109 +514 3.87816 +515 4.44411 +516 3.99442 +517 4.63239 +518 4.24041 +519 6.4954 +520 4.06066 +521 4.03395 +522 5.13832 +523 4.61796 +524 3.4539 +525 5.40136 +526 5.28583 +527 4.05422 +528 6.23526 +529 3.99194 +530 3.64775 +531 3.93772 +532 4.57449 +533 4.98925 +534 4.7717 +535 5.73803 +536 6.06271 +537 4.64812 +538 5.70737 +539 4.41295 +540 4.18225 +541 3.96871 +542 4.78132 +543 5.37687 +544 4.58326 +545 6.73159 +546 6.55816 +547 4.839 +548 6.03973 +549 4.51609 +550 4.20809 +551 4.66135 +552 5.04864 +553 4.91106 +554 5.94795 +555 5.54519 +556 5.67255 +557 4.91642 +558 4.31004 +559 5.27597 +560 6.56924 +561 4.69432 +562 4.97441 +563 3.34999 +564 3.96188 +565 5.31738 +566 4.71714 +567 4.46595 +568 4.9769 +569 4.03228 +570 3.53012 +571 3.96727 +572 3.93265 +573 4.77494 +574 3.7397 +575 4.64142 +576 4.05804 +577 4.28743 +578 4.39392 +579 3.90128 +580 5.04424 +581 4.06793 +582 3.57389 +583 5.00299 +584 3.47382 +585 4.62352 +586 4.89974 +587 4.84094 +588 4.59542 +589 3.78275 +590 3.85861 +591 3.78952 +592 4.1534 +593 3.67726 +594 4.83341 +595 3.76921 +596 4.24417 +597 4.84465 +598 3.99309 +599 5.01661 +600 4.67816 +601 4.62065 +602 4.53702 +603 4.35463 +604 3.94709 +605 3.81076 +606 3.70951 +607 4.74658 +608 3.72967 +609 4.35691 +610 5.18647 +611 4.08809 +612 3.94509 +613 3.74369 +614 5.65021 +615 4.43118 +616 4.56932 +617 3.6833 +618 3.30144 +619 4.22251 +620 4.11938 +621 4.05565 +622 4.33647 +623 4.05292 +624 4.10685 +625 3.70722 +626 4.50053 +627 4.45571 +628 5.98064 +629 4.59144 +630 5.64985 +631 5.14445 +632 4.68905 +633 5.25138 +634 4.51159 +635 3.94002 +636 6.19384 +637 4.51602 +638 6.04241 +639 3.47698 +640 3.57265 +641 4.87007 +642 4.65455 +643 4.77133 +644 3.80665 +645 4.20733 +646 3.86309 +647 5.8594 +648 5.93416 +649 4.49086 +650 3.7203 +651 4.60085 +652 4.13119 +653 3.67048 +654 4.67867 +655 5.45896 +656 3.33077 +657 3.80587 +658 4.41734 +659 4.01896 +660 4.56784 +661 4.64038 +662 5.2238 +663 4.16349 +664 4.52042 +665 4.74771 +666 3.5043 +667 4.32132 +668 4.84782 +669 4.46059 +670 4.67991 +671 4.16201 +672 4.26608 +673 5.07389 +674 3.86576 +675 5.62613 +676 5.16217 +677 5.05732 +678 4.23213 +679 5.0715 +680 5.03411 +681 3.4512 +682 4.99011 +683 5.29328 +684 4.45782 +685 4.61543 +686 5.38083 +687 4.13942 +688 5.29852 +689 4.71571 +690 4.52555 +691 5.57847 +692 5.06164 +693 5.65171 +694 4.27864 +695 5.14895 +696 5.06897 +697 4.97083 +698 7.81613 +699 6.4938 +700 5.03947 +701 5.6077 +702 4.53189 +703 3.87033 +704 3.86636 +705 5.57982 +706 4.85663 +707 6.35149 +708 4.07747 +709 5.46035 +710 4.07115 +711 3.9329 +712 3.6621 +713 4.31353 +714 4.87033 +715 3.68332 +716 4.27396 +717 4.01351 +718 3.7862 +719 4.00691 +720 5.10241 +721 4.34182 +722 3.92748 +723 3.58985 +724 6.55541 +725 3.48906 +726 5.03508 +727 5.16945 +728 5.08685 +729 5.46805 +730 4.78968 +731 4.47313 +732 3.96774 +733 4.13844 +734 6.04033 +735 3.88713 +736 4.93773 +737 4.11735 +738 4.67416 +739 4.27193 +740 3.66734 +741 3.98892 +742 3.54691 +743 4.23949 +744 3.99093 +745 4.70143 +746 4.41728 +747 4.18649 +748 3.92379 +749 3.89721 +750 3.71605 +751 3.3715 +752 3.43246 +753 3.2394 +754 3.64395 +755 3.56931 +756 3.72894 +757 4.44833 +758 4.63581 +759 4.38983 +760 5.69139 +761 4.74491 +762 4.97013 +763 4.29127 +764 4.71563 +765 4.49365 +766 3.98252 +767 5.07494 +768 4.5133 +769 4.57235 +770 5.71054 +771 4.91441 +772 3.45486 +773 5.92421 +774 4.86683 +775 4.11429 +776 4.75237 +777 4.62124 +778 4.03439 +779 4.32161 +780 5.90284 +781 4.59501 +782 4.52866 +783 6.19341 +784 4.27126 +785 4.45575 +786 4.79263 +787 4.45372 +788 5.37812 +789 4.0769 +790 5.02584 +791 3.69469 +792 4.70374 +793 4.68274 +794 4.85617 +795 5.81775 +796 3.91095 +797 3.48513 +798 5.3519 +799 5.11405 +800 4.8096 +801 4.95889 +802 5.5368 +803 4.28773 +804 4.96251 +805 4.19178 +806 4.66719 +807 5.42774 +808 4.40015 +809 4.56143 +810 4.03642 +811 4.14149 +812 4.95414 +813 4.72813 +814 6.25607 +815 5.62805 +816 5.49213 +817 4.87155 +818 5.05894 +819 4.16185 +820 5.04931 +821 5.83442 +822 4.31237 +823 4.53827 +824 3.98531 +825 4.09384 +826 5.50349 +827 3.999 +828 3.04729 +829 6.20589 +830 5.70095 +831 3.49725 +832 4.74327 +833 3.54467 +834 4.27238 +835 5.55282 +836 5.39723 +837 4.40625 +838 5.53306 +839 6.51516 +840 5.14071 +841 4.49483 +842 4.59867 +843 7.53915 +844 4.08173 +845 3.92767 +846 4.0616 +847 3.87856 +848 4.54185 +849 6.05469 +850 4.93892 +851 4.60687 +852 4.90812 +853 4.07747 +854 4.02754 +855 3.99271 +856 3.27818 +857 3.15535 +858 6.41206 +859 7.00323 +860 7.23337 +861 5.35571 +862 4.09604 +863 4.40277 +864 5.03174 +865 4.39769 +866 3.71426 +867 4.29898 +868 4.91049 +869 5.02781 +870 7.8117 +871 5.35046 +872 3.85876 +873 3.7358 +874 3.69786 +875 4.53763 +876 6.69047 +877 4.90653 +878 3.56384 +879 6.29837 +880 4.85028 +881 4.00676 +882 4.89159 +883 5.12632 +884 4.69161 +885 4.72135 +886 4.1194 +887 3.62963 +888 3.9027 +889 4.34155 +890 3.78318 +891 4.10569 +892 5.37465 +893 3.68274 +894 3.89669 +895 4.77165 +896 4.39213 +897 3.70177 +898 4.36226 +899 4.17708 +900 4.82622 +901 4.41749 +902 4.68451 +903 4.86438 +904 5.11764 +905 3.9915 +906 4.57947 +907 4.20758 +908 5.37106 +909 4.65159 +910 4.05714 +911 4.31023 +912 4.14518 +913 4.17771 +914 4.09998 +915 5.23274 +916 3.4456 +917 6.49105 +918 5.15504 +919 4.45664 +920 3.70446 +921 4.02334 +922 4.38348 +923 4.1359 +924 4.40411 +925 4.95204 +926 5.08277 +927 4.41089 +928 4.89411 +929 4.72592 +930 3.76711 +931 3.38759 +932 3.66066 +933 3.79417 +934 4.85396 +935 4.37006 +936 4.27213 +937 3.81978 +938 4.43035 +939 4.15541 +940 3.67361 +941 4.12058 +942 3.1723 +943 3.68967 +944 3.64546 +945 4.39145 +946 6.12615 +947 4.06168 +948 3.29359 +949 3.85146 +950 3.82193 +951 4.0927 +952 3.90526 +953 4.78843 +954 5.14596 +955 5.03473 +956 3.66452 +957 4.67171 +958 5.75876 +959 4.52938 +960 4.97978 +961 4.03332 +962 3.7852 +963 4.50758 +964 4.29972 +965 3.4909 +966 3.89522 +967 4.53401 +968 3.33032 +969 3.88784 +970 3.7969 +971 3.93468 +972 4.08434 +973 3.27241 +974 3.2116 +975 4.99694 +976 5.86844 +977 3.58562 +978 3.56289 +979 5.05524 +980 3.7785 +981 4.58033 +982 4.52755 +983 4.70664 +984 4.71792 +985 4.33378 +986 5.28589 +987 4.7425 +988 3.17376 +989 6.07362 +990 5.00177 +991 6.61653 +992 6.00189 +993 4.25412 +994 4.59348 +995 4.85033 +996 4.29069 +997 4.26445 +998 5.95417 +999 5.91484 +1000 4.85965 +1001 4.4071 +1002 5.5819 +1003 4.17767 +1004 5.2679 +1005 4.91622 +1006 4.65315 +1007 4.42473 +1008 5.50312 +1009 4.60764 +1010 5.40208 +1011 4.71534 +1012 4.69327 +1013 5.29293 +1014 5.04506 +1015 4.26913 +1016 5.02611 +1017 5.32743 +1018 5.53152 +1019 5.33024 +1020 4.6706 +1021 4.63871 +1022 3.96202 +1023 5.3118 +1024 4.46382 +1025 5.05419 +1026 4.31751 +1027 4.66168 +1028 4.06235 +1029 4.1196 +1030 3.93289 +1031 4.85592 +1032 3.32247 +1033 4.30145 +1034 5.35652 +1035 5.8161 +1036 5.22425 +1037 4.23586 +1038 4.05965 +1039 5.54899 +1040 3.37428 +1041 6.34267 +1042 4.02679 +1043 5.52545 +1044 5.65526 +1045 4.9056 +1046 4.08838 +1047 4.56176 +1048 4.62 +1049 4.92725 +1050 3.62209 +1051 3.99669 +1052 5.45887 +1053 5.7856 +1054 5.84341 +1055 4.07764 +1056 5.72842 +1057 3.95615 +1058 4.27363 +1059 4.984 +1060 6.06304 +1061 4.90737 +1062 5.18877 +1063 4.71022 +1064 6.6135 +1065 4.22113 +1066 5.21984 +1067 6.50899 +1068 3.8097 +1069 5.82073 +1070 4.70251 +1071 5.66847 +1072 4.49522 +1073 3.63788 +1074 5.82712 +1075 5.89838 +1076 3.83015 +1077 3.12575 +1078 5.31442 +1079 7.73048 +1080 4.28452 +1081 3.92754 +1082 5.7821 +1083 4.03109 +1084 5.39711 +1085 3.82736 +1086 3.81435 +1087 3.75174 +1088 3.61011 +1089 3.98975 +1090 5.18329 +1091 4.05702 +1092 5.0409 +1093 4.64782 +1094 5.02673 +1095 5.0432 +1096 4.07804 +1097 5.34429 +1098 4.31511 +1099 3.96714 +1100 4.50446 +1101 4.98608 +1102 4.45327 +1103 4.35982 +1104 3.64745 +1105 6.12321 +1106 4.38788 +1107 3.20131 +1108 5.31931 +1109 4.97105 +1110 5.04437 +1111 5.0519 +1112 3.91033 +1113 4.54885 +1114 4.5487 +1115 5.03786 +1116 4.4876 +1117 3.95672 +1118 3.64174 +1119 5.03742 +1120 5.4965 +1121 5.71041 +1122 4.52383 +1123 3.59999 +1124 3.20137 +1125 5.37296 +1126 5.00421 +1127 5.54416 +1128 5.37922 +1129 6.91384 +1130 4.74617 +1131 4.15786 +1132 4.45818 +1133 5.68582 +1134 4.4292 +1135 5.2902 +1136 4.24713 +1137 4.40079 +1138 3.75546 +1139 4.21392 +1140 4.22477 +1141 4.56901 +1142 3.44069 +1143 4.02273 +1144 4.61227 +1145 4.2338 +1146 4.10992 +1147 5.17035 +1148 4.20019 +1149 5.16837 +1150 4.02914 +1151 6.03062 +1152 3.29372 +1153 4.39202 +1154 3.64331 +1155 3.70132 +1156 3.93083 +1157 6.05189 +1158 4.15793 +1159 5.32127 +1160 4.73868 +1161 4.74891 +1162 4.14609 +1163 6.09567 +1164 4.53987 +1165 4.13183 +1166 3.65649 +1167 5.34601 +1168 3.53665 +1169 3.93343 +1170 4.08432 +1171 4.16459 +1172 3.70411 +1173 3.70266 +1174 4.65486 +1175 5.47793 +1176 5.34733 +1177 5.69455 +1178 4.18636 +1179 3.88821 +1180 4.18698 +1181 4.40755 +1182 4.17708 +1183 4.93589 +1184 4.15368 +1185 3.29115 +1186 3.52831 +1187 3.15746 +1188 4.12385 +1189 4.44704 +1190 4.82815 +1191 5.37425 +1192 4.19914 +1193 4.10339 +1194 4.60026 +1195 4.33423 +1196 4.49458 +1197 4.8419 +1198 3.25698 +1199 3.97848 +1200 4.36818 +1201 5.94957 +1202 3.6213 +1203 4.37282 +1204 3.78198 +1205 4.2403 +1206 4.19296 +1207 4.95387 +1208 3.74541 +1209 3.58307 +1210 3.59312 +1211 5.31844 +1212 4.63316 +1213 3.50591 +1214 3.23874 +1215 5.73017 +1216 6.47311 +1217 4.3339 +1218 4.08071 +1219 4.29792 +1220 3.86154 +1221 5.77715 +1222 3.84073 +1223 4.44897 +1224 4.13842 +1225 4.04432 +1226 3.83911 +1227 4.359 +1228 4.33229 +1229 4.33791 +1230 3.97392 +1231 4.20125 +1232 3.75036 +1233 4.01624 +1234 4.08675 +1235 3.6803 +1236 4.82825 +1237 4.7207 +1238 4.53826 +1239 3.46105 +1240 5.20924 +1241 3.85676 +1242 5.5301 +1243 4.11195 +1244 5.60313 +1245 4.42309 +1246 4.35024 +1247 5.38171 +1248 4.78416 +1249 3.63172 +1250 3.66248 +1251 6.03001 +1252 6.25691 +1253 4.58713 +1254 5.50993 +1255 4.8758 +1256 4.75628 +1257 4.54942 +1258 4.5659 +1259 5.2278 +1260 4.45753 +1261 5.6877 +1262 5.84861 +1263 5.21343 +1264 5.04623 +1265 5.28783 +1266 5.59773 +1267 3.57424 +1268 4.52198 +1269 4.33634 +1270 7.9574 +1271 4.51217 +1272 5.32548 +1273 3.74829 +1274 3.90854 +1275 5.1879 +1276 4.05916 +1277 5.32214 +1278 4.32519 +1279 4.70019 +1280 4.00465 +1281 3.8852 +1282 4.36203 +1283 4.01536 +1284 4.63508 +1285 4.54278 +1286 4.14762 +1287 4.64239 +1288 6.59895 +1289 6.06182 +1290 6.70526 +1291 4.59244 +1292 5.50207 +1293 4.16991 +1294 4.70964 +1295 4.17163 +1296 4.51686 +1297 4.20975 +1298 4.76183 +1299 4.63166 +1300 5.47519 +1301 4.79606 +1302 3.97849 +1303 4.45836 +1304 3.99583 +1305 4.61739 +1306 4.36825 +1307 3.88484 +1308 4.20009 +1309 4.87411 +1310 7.11026 +1311 3.98037 +1312 6.1306 +1313 4.7825 +1314 5.14103 +1315 5.22843 +1316 4.7704 +1317 3.89508 +1318 6.58134 +1319 4.01757 +1320 4.20952 +1321 4.18421 +1322 4.94786 +1323 4.63102 +1324 4.06301 +1325 4.01016 +1326 4.9211 +1327 4.07434 +1328 5.06956 +1329 3.37221 +1330 5.5108 +1331 4.15704 +1332 4.0481 +1333 5.39233 +1334 5.05735 +1335 3.90444 +1336 6.06392 +1337 7.63544 +1338 5.12307 +1339 4.9018 +1340 4.20751 +1341 4.507 +1342 4.44462 +1343 5.08724 +1344 5.13527 +1345 6.22646 +1346 4.4914 +1347 4.94253 +1348 3.57463 +1349 4.46127 +1350 4.3874 +1351 3.83218 +1352 4.27273 +1353 7.03457 +1354 5.51001 +1355 5.03459 +1356 4.46289 +1357 4.89779 +1358 6.97563 +1359 6.13786 +1360 5.29552 +1361 3.47767 +1362 5.33174 +1363 6.28241 +1364 4.16557 +1365 4.80967 +1366 4.40079 +1367 4.92742 +1368 5.02674 +1369 4.62458 +1370 4.61538 +1371 4.76538 +1372 5.44503 +1373 4.40484 +1374 4.36381 +1375 4.58404 +1376 4.21824 +1377 4.88611 +1378 5.80119 +1379 4.18343 +1380 4.65448 +1381 4.20999 +1382 6.1918 +1383 4.51829 +1384 6.56249 +1385 5.62383 +1386 5.62829 +1387 4.36782 +1388 3.67566 +1389 4.50532 +1390 4.67372 +1391 4.98904 +1392 6.07569 +1393 4.32107 +1394 5.25998 +1395 4.21059 +1396 3.11746 +1397 4.37626 +1398 5.55913 +1399 5.21284 +1400 4.3537 +1401 3.21274 +1402 7.36024 +1403 4.01457 +1404 4.63377 +1405 5.21005 +1406 5.99069 +1407 5.10055 +1408 3.83065 +1409 4.14773 +1410 4.53823 +1411 4.16306 +1412 4.34736 +1413 4.81098 +1414 3.75219 +1415 4.93177 +1416 4.55317 +1417 4.25923 +1418 5.02535 +1419 6.34664 +1420 5.73303 +1421 4.49689 +1422 4.66644 +1423 4.5314 +1424 5.21178 +1425 4.94592 +1426 4.42966 +1427 4.70268 +1428 5.37638 +1429 5.09404 +1430 5.6753 +1431 4.87885 +1432 4.27747 +1433 5.04594 +1434 5.48364 +1435 5.6432 +1436 7.38233 +1437 6.03869 +1438 3.71275 +1439 3.74288 +1440 3.72623 +1441 3.40497 +1442 3.27292 +1443 4.92571 +1444 4.46448 +1445 3.94088 +1446 5.00363 +1447 5.88261 +1448 6.18848 +1449 5.155 +1450 4.37962 +1451 4.54223 +1452 4.87031 +1453 4.6637 +1454 5.86805 +1455 5.79958 +1456 4.74017 +1457 5.02366 +1458 4.29592 +1459 4.56129 +1460 5.4299 +1461 4.8217 +1462 5.13981 +1463 5.04427 +1464 5.21072 +1465 5.26489 +1466 5.004 +1467 5.30415 +1468 5.6699 +1469 4.9603 +1470 3.82973 +1471 4.55844 +1472 4.33429 +1473 5.08124 +1474 4.61415 +1475 4.43903 +1476 6.94511 +1477 4.00476 +1478 3.70964 +1479 3.64207 +1480 3.60391 +1481 3.52694 +1482 3.46227 +1483 4.73675 +1484 3.28148 +1485 4.28827 +1486 5.05506 +1487 5.92295 +1488 4.12474 +1489 5.71084 +1490 5.62558 +1491 4.73895 +1492 4.07114 +1493 4.26431 +1494 3.96819 +1495 4.58863 +1496 5.54905 +1497 4.91869 +1498 5.2584 +1499 5.99435 +1500 5.05815 +1501 4.93068 +1502 3.82049 +1503 3.83299 +1504 4.15596 +1505 4.00432 +1506 6.05248 +1507 5.35164 +1508 6.58958 +1509 5.70921 +1510 3.91563 +1511 4.34311 +1512 5.47563 +1513 3.77785 +1514 3.77935 +1515 4.70252 +1516 4.7477 +1517 4.39885 +1518 4.78907 +1519 4.44914 +1520 3.83973 +1521 4.8267 +1522 3.44333 +1523 4.02512 +1524 4.90781 +1525 4.60189 +1526 4.99304 +1527 4.5813 +1528 3.75489 +1529 3.63887 +1530 4.7207 +1531 7.73668 +1532 5.09135 +1533 4.77139 +1534 4.78622 +1535 4.58279 +1536 3.83499 +1537 4.38683 +1538 4.25047 +1539 4.57457 +1540 4.66789 +1541 4.6611 +1542 4.41975 +1543 4.9747 +1544 4.36354 +1545 3.63336 +1546 6.4533 +1547 4.37101 +1548 6.36707 +1549 4.59758 +1550 6.83731 +1551 4.83644 +1552 4.93001 +1553 4.97421 +1554 4.34647 +1555 3.86748 +1556 4.15766 +1557 4.22043 +1558 3.4188 +1559 4.79086 +1560 5.40028 +1561 5.05969 +1562 4.73922 +1563 4.18696 +1564 4.5176 +1565 4.92185 +1566 4.32282 +1567 4.36212 +1568 5.11122 +1569 4.72858 +1570 5.85136 +1571 4.70607 +1572 5.41501 +1573 5.26494 +1574 5.11878 +1575 5.10035 +1576 5.57097 +1577 5.2493 +1578 4.45335 +1579 4.92781 +1580 5.25087 +1581 5.037 +1582 6.15005 +1583 5.1711 +1584 3.79271 +1585 4.49357 +1586 4.2832 +1587 4.76654 +1588 5.54714 +1589 4.03988 +1590 4.52272 +1591 4.01517 +1592 3.94028 +1593 4.99918 +1594 6.17218 +1595 5.81582 +1596 4.70966 +1597 6.07653 +1598 5.21824 +1599 3.73177 +1600 4.14941 +1601 3.74955 +1602 4.33845 +1603 4.9636 +1604 3.62354 +1605 3.76211 +1606 4.33171 +1607 4.48943 +1608 6.36713 +1609 4.05806 +1610 5.80895 +1611 4.78223 +1612 5.46527 +1613 4.52674 +1614 4.9094 +1615 4.61672 +1616 4.6024 +1617 7.01249 +1618 4.22281 +1619 4.15111 +1620 3.95065 +1621 4.52072 +1622 5.06322 +1623 4.48011 +1624 6.24986 +1625 5.00288 +1626 4.5402 +1627 5.04884 +1628 5.24981 +1629 5.51102 +1630 5.29077 +1631 4.60428 +1632 5.60667 +1633 3.60261 +1634 4.53853 +1635 6.25723 +1636 5.01491 +1637 6.07072 +1638 5.05895 +1639 4.96482 +1640 4.53953 +1641 5.76832 +1642 4.77928 +1643 5.81719 +1644 6.19872 +1645 6.23807 +1646 4.70461 +1647 5.13926 +1648 6.50011 +1649 5.54897 +1650 4.42584 +1651 4.83535 +1652 3.53976 +1653 4.10119 +1654 3.73365 +1655 3.75813 +1656 4.86102 +1657 4.59688 +1658 3.3401 +1659 3.45214 +1660 7.78167 +1661 4.31343 +1662 5.01221 +1663 5.61493 +1664 5.23385 +1665 4.53106 +1666 5.24489 +1667 6.47163 +1668 5.1841 +1669 8.45138 +1670 5.13422 +1671 5.81824 +1672 5.96492 +1673 3.52303 +1674 3.89191 +1675 5.51578 +1676 5.38182 +1677 4.97735 +1678 4.16861 +1679 3.28752 +1680 4.42494 +1681 3.50849 +1682 4.44942 +1683 3.54463 +1684 3.307 +1685 3.46877 +1686 5.68312 +1687 4.50313 +1688 4.03232 +1689 4.59439 +1690 3.91119 +1691 3.87691 +1692 5.36334 +1693 3.2145 +1694 3.70483 +1695 3.85688 +1696 3.97067 +1697 4.09532 +1698 3.18072 +1699 6.07871 +1700 4.39133 +1701 4.60542 +1702 5.67764 +1703 5.36157 +1704 5.86675 +1705 4.37319 +1706 5.47283 +1707 4.37575 +1708 5.08637 +1709 6.20911 +1710 4.49933 +1711 5.91764 +1712 3.65979 +1713 4.22921 +1714 4.54398 +1715 5.68061 +1716 5.50014 +1717 4.67328 +1718 5.86393 +1719 3.97639 +1720 3.65355 +1721 4.02314 +1722 3.92544 +1723 4.72592 +1724 3.66603 +1725 3.41435 +1726 4.99516 +1727 3.86779 +1728 3.66238 +1729 4.03226 +1730 5.51763 +1731 4.70177 +1732 4.28052 +1733 4.78513 +1734 5.8824 +1735 4.35148 +1736 5.75858 +1737 5.57837 +1738 6.07039 +1739 4.91878 +1740 5.9107 +1741 4.02769 +1742 7.61359 +1743 3.93991 +1744 5.37855 +1745 4.59411 +1746 4.69834 +1747 4.86111 +1748 3.16681 +1749 3.95114 +1750 5.38852 +1751 4.57194 +1752 4.44111 +1753 4.34368 +1754 3.66325 +1755 4.64706 +1756 4.08444 +1757 4.74061 +1758 5.21446 +1759 3.90889 +1760 4.53212 +1761 4.20461 +1762 4.24202 +1763 3.79313 +1764 3.6023 +1765 4.83941 +1766 4.51461 +1767 3.82163 +1768 4.05017 +1769 3.77841 +1770 5.25091 +1771 4.63991 +1772 3.82795 +1773 4.56745 +1774 3.59879 +1775 4.70732 +1776 4.21113 +1777 3.51878 +1778 4.79255 +1779 4.19546 +1780 4.54742 +1781 4.38076 +1782 3.7713 +1783 3.6665 +1784 4.17889 +1785 3.89271 +1786 5.48992 +1787 4.95159 +1788 4.01588 +1789 5.24095 +1790 4.37859 +1791 5.69578 +1792 4.70975 +1793 6.29199 +1794 3.76626 +1795 4.67319 +1796 4.38099 +1797 4.04841 +1798 4.85827 +1799 4.05262 +1800 5.50099 +1801 4.00223 +1802 4.85273 +1803 3.81315 +1804 4.73407 +1805 4.51655 +1806 5.18206 +1807 4.99838 +1808 4.67082 +1809 5.71798 +1810 5.73075 +1811 4.4581 +1812 5.10174 +1813 5.2364 +1814 7.51938 +1815 4.97822 +1816 4.36761 +1817 5.29126 +1818 4.91328 +1819 4.97184 +1820 4.86265 +1821 3.1414 +1822 4.13541 +1823 4.185 +1824 6.15703 +1825 8.02665 +1826 4.29595 +1827 4.41603 +1828 4.23551 +1829 3.49705 +1830 4.18787 +1831 4.97422 +1832 4.90935 +1833 4.28336 +1834 4.63616 +1835 4.29448 +1836 4.32321 +1837 4.0163 +1838 4.12615 +1839 5.66314 +1840 3.96435 +1841 6.50674 +1842 4.69475 +1843 5.41732 +1844 3.78072 +1845 6.12386 +1846 4.06011 +1847 4.59591 +1848 3.75961 +1849 4.45535 +1850 3.94351 +1851 4.69592 +1852 3.2662 +1853 3.58255 +1854 4.54811 +1855 5.24591 +1856 3.97838 +1857 3.37328 +1858 5.22858 +1859 3.86032 +1860 4.33644 +1861 4.6748 +1862 4.96766 +1863 3.22282 +1864 3.33192 +1865 4.23327 +1866 4.9688 +1867 3.13722 +1868 4.26333 +1869 4.95665 +1870 4.61062 +1871 4.98592 +1872 5.56746 +1873 3.83397 +1874 4.90959 +1875 5.56414 +1876 4.90648 +1877 4.25379 +1878 5.30093 +1879 4.53867 +1880 4.68458 +1881 4.35995 +1882 4.34793 +1883 5.83927 +1884 4.122 +1885 5.9195 +1886 5.29993 +1887 4.55622 +1888 4.42165 +1889 5.74263 +1890 4.95265 +1891 6.0918 +1892 4.55732 +1893 4.61422 +1894 3.1119 +1895 4.53519 +1896 4.55199 +1897 4.00809 +1898 5.84517 +1899 4.30423 +1900 4.71492 +1901 5.9335 +1902 5.54674 +1903 5.06769 +1904 4.39607 +1905 4.75602 +1906 5.06251 +1907 6.34941 +1908 5.61221 +1909 3.33357 +1910 4.18131 +1911 4.78574 +1912 4.56547 +1913 6.424 +1914 4.10807 +1915 5.16734 +1916 7.07285 +1917 3.32026 +1918 6.04854 +1919 4.48684 +1920 4.13658 +1921 4.73123 +1922 4.01502 +1923 5.37815 +1924 3.67202 +1925 3.69164 +1926 4.34832 +1927 4.87956 +1928 4.44101 +1929 4.04388 +1930 4.54142 +1931 4.91443 +1932 7.50939 +1933 3.51947 +1934 3.88295 +1935 6.87255 +1936 5.77214 +1937 6.12817 +1938 4.13801 +1939 5.5891 +1940 5.27477 +1941 3.70852 +1942 5.33133 +1943 6.27508 +1944 4.93585 +1945 6.04448 +1946 5.9632 +1947 3.73714 +1948 4.16727 +1949 3.70628 +1950 4.3583 +1951 5.26468 +1952 4.68425 +1953 4.1272 +1954 4.49252 +1955 4.81683 +1956 5.58106 +1957 5.34824 +1958 4.86974 +1959 5.21099 +1960 5.01064 +1961 4.65357 +1962 4.75524 +1963 5.1942 +1964 4.48375 +1965 4.83778 +1966 4.92641 +1967 5.39505 +1968 5.23923 +1969 5.18977 +1970 4.33591 +1971 5.48083 +1972 4.54635 +1973 4.99956 +1974 4.22799 +1975 5.65489 +1976 4.53975 +1977 3.71617 +1978 4.78709 +1979 4.40471 +1980 7.62908 +1981 4.96746 +1982 5.50251 +1983 5.30298 +1984 4.38744 +1985 4.2019 +1986 5.50994 +1987 4.17679 +1988 4.25217 +1989 5.45005 +1990 5.28529 +1991 4.78811 +1992 4.82517 +1993 5.3667 +1994 3.78843 +1995 4.063 +1996 4.72141 +1997 5.29061 +1998 3.85471 +1999 4.53602 +2000 4.54376 +2001 4.02294 +2002 5.66506 +2003 5.10584 +2004 6.08941 +2005 3.51935 +2006 4.3537 +2007 4.16271 +2008 5.27225 +2009 6.1841 +2010 4.18943 +2011 3.64849 +2012 3.29654 +2013 5.10119 +2014 4.82899 +2015 5.40843 +2016 6.99617 +2017 9.17585 +2018 4.37779 +2019 4.58037 +2020 5.458 +2021 5.02295 +2022 4.66431 +2023 4.81396 +2024 3.94603 +2025 4.87118 +2026 4.66115 +2027 4.86696 +2028 4.83802 +2029 4.25388 +2030 3.46161 +2031 3.63304 +2032 5.14304 +2033 4.69454 +2034 3.81897 +2035 5.35263 +2036 5.2366 +2037 5.83835 +2038 4.06293 +2039 4.50398 +2040 4.18473 +2041 5.20392 +2042 4.56673 +2043 4.60038 +2044 4.57864 +2045 4.81888 +2046 6.14499 +2047 5.3528 +2048 6.03932 +2049 5.16214 +2050 5.10457 +2051 5.20902 +2052 4.77455 +2053 4.44509 +2054 4.94873 +2055 4.35368 +2056 4.56764 +2057 4.38083 +2058 6.07935 +2059 4.24347 +2060 3.76663 +2061 5.68448 +2062 3.97106 +2063 3.75124 +2064 4.32218 +2065 4.25075 +2066 4.98058 +2067 4.80506 +2068 5.52636 +2069 3.61876 +2070 3.39977 +2071 5.42908 +2072 4.733 +2073 4.56039 +2074 5.37088 +2075 5.95482 +2076 3.86546 +2077 4.72621 +2078 6.31322 +2079 5.4251 +2080 4.42754 +2081 4.26828 +2082 4.63764 +2083 5.61727 +2084 4.75941 +2085 4.01438 +2086 4.54509 +2087 4.23888 +2088 6.35566 +2089 4.69503 +2090 3.82559 +2091 4.99168 +2092 4.92295 +2093 4.82015 +2094 4.68209 +2095 4.24926 +2096 4.01813 +2097 5.29586 +2098 4.56691 +2099 4.85762 +2100 3.84375 +2101 4.82119 +2102 3.68647 +2103 4.97241 +2104 4.85537 +2105 4.54593 +2106 5.58123 +2107 4.26002 +2108 7.08812 +2109 4.30092 +2110 4.75247 +2111 4.57582 +2112 4.43734 +2113 7.59622 +2114 5.35093 +2115 4.33656 +2116 5.96884 +2117 4.95896 +2118 5.09965 +2119 4.08379 +2120 3.43739 +2121 4.00822 +2122 4.99384 +2123 4.97261 +2124 7.56578 +2125 4.20608 +2126 3.81686 +2127 3.48794 +2128 3.63877 +2129 3.96251 +2130 5.32133 +2131 5.21631 +2132 4.7924 +2133 5.59123 +2134 4.95268 +2135 3.78812 +2136 6.34594 +2137 7.0595 +2138 6.3677 +2139 4.20246 +2140 4.22562 +2141 5.23173 +2142 5.22274 +2143 4.84208 +2144 4.16797 +2145 5.4399 +2146 4.27437 +2147 3.67037 +2148 3.75759 +2149 4.33597 +2150 5.09412 +2151 4.3829 +2152 5.03983 +2153 3.58786 +2154 4.07465 +2155 4.59449 +2156 5.24718 +2157 3.47718 +2158 3.42763 +2159 4.17704 +2160 4.14094 +2161 4.916 +2162 3.13519 +2163 5.69556 +2164 5.0688 +2165 7.68017 +2166 4.83654 +2167 7.25713 +2168 4.59173 +2169 5.33654 +2170 5.15356 +2171 5.02302 +2172 3.89618 +2173 4.5322 +2174 4.3419 +2175 4.56995 +2176 4.45276 +2177 5.38869 +2178 4.03441 +2179 7.92744 +2180 5.03114 +2181 7.03781 +2182 4.91778 +2183 4.67736 +2184 5.11745 +2185 4.37386 +2186 3.628 +2187 3.01964 +2188 4.32176 +2189 3.45236 +2190 4.88577 +2191 3.28774 +2192 3.31647 +2193 4.14606 +2194 5.23051 +2195 5.22308 +2196 4.69826 +2197 5.20219 +2198 4.08291 +2199 3.82224 +2200 5.46044 +2201 5.00874 +2202 4.59046 +2203 4.20898 +2204 5.05104 +2205 4.54488 +2206 4.99432 +2207 4.7336 +2208 4.46195 +2209 3.34664 +2210 5.39047 +2211 4.04758 +2212 4.66337 +2213 3.73603 +2214 3.37828 +2215 6.00659 +2216 4.80835 +2217 5.52114 +2218 5.23768 +2219 3.80548 +2220 4.23373 +2221 4.22348 +2222 4.33069 +2223 3.6209 +2224 3.21123 +2225 3.81536 +2226 4.04106 +2227 4.81031 +2228 3.58305 +2229 3.13051 +2230 3.51503 +2231 4.61508 +2232 3.68553 +2233 3.86134 +2234 4.51287 +2235 4.18035 +2236 3.84488 +2237 4.40356 +2238 4.93619 +2239 5.16419 +2240 4.92134 +2241 3.39501 +2242 4.4593 +2243 3.43614 +2244 3.95471 +2245 3.98855 +2246 4.99449 +2247 4.98161 +2248 4.83217 +2249 5.35801 +2250 4.02327 +2251 5.70888 +2252 6.11206 +2253 8.09416 +2254 5.73841 +2255 3.79859 +2256 4.97453 +2257 4.02758 +2258 4.63148 +2259 5.2609 +2260 5.45575 +2261 6.37053 +2262 6.09028 +2263 5.00166 +2264 4.44056 +2265 5.20536 +2266 3.85225 +2267 4.17667 +2268 4.13076 +2269 3.54788 +2270 4.66958 +2271 4.88024 +2272 4.0136 +2273 4.7093 +2274 3.56343 +2275 4.22424 +2276 3.54574 +2277 4.11458 +2278 4.35402 +2279 4.82736 +2280 4.68385 +2281 5.60729 +2282 3.9838 +2283 3.75581 +2284 3.24532 +2285 5.91944 +2286 5.50874 +2287 4.90004 +2288 5.6416 +2289 4.35275 +2290 5.72013 +2291 3.76745 +2292 3.8608 +2293 4.66347 +2294 3.79962 +2295 3.60034 +2296 6.53013 +2297 5.12436 +2298 4.23029 +2299 4.06947 +2300 3.43497 +2301 3.96655 +2302 3.66641 +2303 4.28896 +2304 4.2023 +2305 3.42199 +2306 5.02897 +2307 4.07444 +2308 3.69281 +2309 3.46317 +2310 4.27648 +2311 4.62917 +2312 4.62232 +2313 6.69988 +2314 4.16477 +2315 4.74644 +2316 4.02233 +2317 3.97832 +2318 3.86611 +2319 4.5597 +2320 4.39204 +2321 3.92987 +2322 5.00247 +2323 3.26491 +2324 3.59176 +2325 6.68354 +2326 4.52974 +2327 5.22785 +2328 4.78095 +2329 4.41571 +2330 4.96443 +2331 5.29506 +2332 3.69044 +2333 4.01572 +2334 3.82799 +2335 4.28219 +2336 5.96251 +2337 3.29927 +2338 3.98012 +2339 3.82168 +2340 5.20138 +2341 5.33332 +2342 4.17676 +2343 4.21084 +2344 4.44411 +2345 6.33252 +2346 3.58342 +2347 3.68773 +2348 4.15701 +2349 5.23408 +2350 4.43107 +2351 3.9902 +2352 5.33891 +2353 3.85743 +2354 4.19247 +2355 3.70248 +2356 3.79792 +2357 8.33215 +2358 3.69285 +2359 4.07909 +2360 4.54237 +2361 4.25783 +2362 4.26088 +2363 3.89932 +2364 4.6605 +2365 4.16269 +2366 4.45457 +2367 3.85811 +2368 5.33436 +2369 4.57121 +2370 4.58127 +2371 4.09353 +2372 4.34854 +2373 4.81724 +2374 4.24397 +2375 4.81994 +2376 4.09236 +2377 3.2541 +2378 4.42465 +2379 4.46007 +2380 3.89371 +2381 3.9279 +2382 3.38019 +2383 3.50795 +2384 4.24863 +2385 3.80106 +2386 4.91943 +2387 3.3794 +2388 5.0408 +2389 4.26248 +2390 3.34713 +2391 3.7292 +2392 5.36449 +2393 4.18446 +2394 3.81225 +2395 3.67906 +2396 3.55507 +2397 3.45943 +2398 4.14835 +2399 3.58136 +2400 4.24711 +2401 3.7263 +2402 4.05401 +2403 3.44658 +2404 3.47989 +2405 4.03576 +2406 3.65877 +2407 3.4051 +2408 4.57445 +2409 5.38561 +2410 3.91266 +2411 4.35982 +2412 4.45856 +2413 4.51826 +2414 3.5761 +2415 5.13603 +2416 5.29367 +2417 7.68402 +2418 4.29467 +2419 5.75819 +2420 3.23416 +2421 4.35685 +2422 3.94557 +2423 7.71239 +2424 5.27773 +2425 4.25485 +2426 3.53371 +2427 3.70085 +2428 3.30002 +2429 3.7619 +2430 3.44325 +2431 4.16892 +2432 5.52761 +2433 4.82921 +2434 5.85077 +2435 5.96755 +2436 4.46479 +2437 4.62873 +2438 4.69643 +2439 6.55744 +2440 5.00338 +2441 4.90401 +2442 5.18628 +2443 4.51173 +2444 7.147 +2445 4.42355 +2446 5.07727 +2447 4.20934 +2448 4.3718 +2449 5.25451 +2450 4.10777 +2451 4.61331 +2452 4.12561 +2453 4.55159 +2454 4.00933 +2455 4.14977 +2456 3.87475 +2457 3.25599 +2458 5.57162 +2459 5.41256 +2460 4.65117 +2461 3.46752 +2462 4.79388 +2463 4.14773 +2464 4.96307 +2465 4.00569 +2466 5.25545 +2467 3.34306 +2468 5.38209 +2469 5.0911 +2470 4.8425 +2471 4.90826 +2472 5.07619 +2473 4.57908 +2474 4.68584 +2475 4.14696 +2476 3.62745 +2477 4.37146 +2478 5.06409 +2479 4.48639 +2480 3.91988 +2481 5.15936 +2482 4.03038 +2483 5.58367 +2484 4.30145 +2485 6.14275 +2486 5.18151 +2487 4.82321 +2488 3.81946 +2489 4.09964 +2490 5.59706 +2491 6.55039 +2492 3.65128 +2493 3.51474 +2494 4.66894 +2495 6.37559 +2496 3.55783 +2497 6.09294 +2498 4.5187 +2499 5.11918 +2500 5.73473 +2501 4.40769 +2502 4.20348 +2503 4.96712 +2504 3.81959 +2505 5.65176 +2506 4.4839 +2507 4.33706 +2508 4.47337 +2509 4.29373 +2510 3.99236 +2511 3.70123 +2512 5.18701 +2513 4.75655 +2514 4.67395 +2515 3.89826 +2516 5.36816 +2517 5.3742 +2518 3.94304 +2519 4.95427 +2520 4.48958 +2521 6.069 +2522 4.96866 +2523 4.31585 +2524 4.59348 +2525 4.43778 +2526 4.76168 +2527 5.17829 +2528 5.17665 +2529 3.91265 +2530 5.83708 +2531 4.87494 +2532 5.35906 +2533 4.39685 +2534 4.69301 +2535 4.5949 +2536 4.17502 +2537 4.27233 +2538 5.40926 +2539 4.01081 +2540 4.22462 +2541 4.74815 +2542 4.29996 +2543 5.0495 +2544 4.01628 +2545 5.14046 +2546 4.54036 +2547 5.0197 +2548 4.55931 +2549 5.03285 +2550 4.23671 +2551 4.59119 +2552 5.56575 +2553 4.55968 +2554 5.54722 +2555 4.79471 +2556 4.61888 +2557 3.98565 +2558 4.61725 +2559 4.73742 +2560 3.68905 +2561 3.60497 +2562 5.27137 +2563 4.52788 +2564 4.89066 +2565 3.42001 +2566 3.62958 +2567 5.18987 +2568 4.10663 +2569 5.12966 +2570 4.94139 +2571 5.78719 +2572 5.79499 +2573 4.4056 +2574 4.46584 +2575 5.03359 +2576 5.52263 +2577 5.75691 +2578 3.7829 +2579 5.96775 +2580 4.81622 +2581 4.37189 +2582 4.52596 +2583 5.80846 +2584 4.50879 +2585 7.54971 +2586 5.22379 +2587 6.60006 +2588 4.60671 +2589 5.06523 +2590 4.09768 +2591 4.48232 +2592 3.66195 +2593 5.26159 +2594 5.04407 +2595 4.00806 +2596 3.89554 +2597 4.54496 +2598 4.35657 +2599 5.73478 +2600 5.51887 +2601 3.5823 +2602 3.8619 +2603 5.1263 +2604 4.97496 +2605 5.3009 +2606 4.90465 +2607 5.35443 +2608 4.39254 +2609 5.1614 +2610 4.1622 +2611 3.32754 +2612 4.03893 +2613 5.63015 +2614 4.13157 +2615 4.36072 +2616 4.53139 +2617 4.53023 +2618 4.49086 +2619 4.76157 +2620 5.20136 +2621 5.39045 +2622 5.46444 +2623 3.8615 +2624 3.74717 +2625 3.36781 +2626 3.76881 +2627 3.69652 +2628 4.842 +2629 5.32927 +2630 4.93308 +2631 4.40991 +2632 3.74351 +2633 4.30762 +2634 3.57211 +2635 5.38746 +2636 4.80993 +2637 3.57824 +2638 3.62799 +2639 4.19039 +2640 3.9952 +2641 4.61402 +2642 5.52348 +2643 5.02738 +2644 5.46786 +2645 4.82891 +2646 3.754 +2647 4.75141 +2648 5.29231 +2649 6.26837 +2650 4.20542 +2651 4.0031 +2652 5.36217 +2653 5.4803 +2654 4.29827 +2655 4.84962 +2656 4.5703 +2657 4.2214 +2658 4.44475 +2659 4.64887 +2660 4.91112 +2661 3.51145 +2662 4.82986 +2663 4.21122 +2664 5.16139 +2665 5.23178 +2666 5.36485 +2667 4.22456 +2668 5.01791 +2669 4.15868 +2670 5.59579 +2671 4.08693 +2672 4.0059 +2673 3.74254 +2674 4.61637 +2675 3.96734 +2676 4.01994 +2677 3.94341 +2678 4.34375 +2679 5.32372 +2680 4.0713 +2681 5.73524 +2682 3.5306 +2683 3.89098 +2684 4.70729 +2685 3.74272 +2686 4.09346 +2687 4.43013 +2688 5.42056 +2689 4.56638 +2690 5.30856 +2691 4.74251 +2692 5.19434 +2693 5.98047 +2694 4.40914 +2695 4.30384 +2696 4.84434 +2697 3.56772 +2698 5.79511 +2699 5.58163 +2700 4.48619 +2701 5.10366 +2702 4.59496 +2703 4.7349 +2704 4.93283 +2705 4.0447 +2706 5.35372 +2707 5.95508 +2708 5.21478 +2709 4.44921 +2710 4.62817 +2711 4.79789 +2712 4.63727 +2713 4.43432 +2714 4.40353 +2715 5.3127 +2716 4.63948 +2717 4.97615 +2718 5.8264 +2719 4.6975 +2720 5.58051 +2721 3.74997 +2722 6.21254 +2723 4.97491 +2724 5.26162 +2725 4.92288 +2726 6.07205 +2727 5.11858 +2728 5.35648 +2729 5.34773 +2730 5.37513 +2731 3.99081 +2732 4.59576 +2733 6.39663 +2734 4.78314 +2735 4.47921 +2736 5.78908 +2737 5.37655 +2738 5.50985 +2739 5.04703 +2740 5.05452 +2741 7.39188 +2742 4.24034 +2743 4.60513 +2744 4.00748 +2745 3.28952 +2746 4.03102 +2747 3.85992 +2748 4.39474 +2749 5.21911 +2750 4.17921 +2751 4.02636 +2752 4.3399 +2753 7.30486 +2754 5.21641 +2755 4.85007 +2756 6.40889 +2757 4.87309 +2758 5.78079 +2759 4.27619 +2760 4.4825 +2761 3.5305 +2762 4.06585 +2763 4.20321 +2764 4.50024 +2765 4.58507 +2766 3.90057 +2767 4.45098 +2768 4.41143 +2769 5.88997 +2770 4.83207 +2771 5.41764 +2772 3.28018 +2773 5.09297 +2774 3.96889 +2775 4.38444 +2776 5.37899 +2777 4.87029 +2778 4.93899 +2779 4.95204 +2780 4.52583 +2781 4.35606 +2782 3.76566 +2783 4.02538 +2784 5.37589 +2785 4.25557 +2786 5.35832 +2787 4.03623 +2788 3.84437 +2789 4.61947 +2790 4.4583 +2791 5.04044 +2792 4.234 +2793 5.44434 +2794 5.46857 +2795 7.58095 +2796 6.10785 +2797 4.17165 +2798 3.78843 +2799 4.62466 +2800 3.46771 +2801 4.86821 +2802 4.90452 +2803 5.0774 +2804 4.83231 +2805 4.76268 +2806 4.73054 +2807 5.20846 +2808 6.6875 +2809 4.33073 +2810 5.87242 +2811 4.32207 +2812 7.33338 +2813 4.63108 +2814 7.67739 +2815 4.43644 +2816 3.98779 +2817 5.15902 +2818 5.06992 +2819 4.74116 +2820 5.24792 +2821 3.37139 +2822 4.54065 +2823 3.75852 +2824 3.58576 +2825 3.85405 +2826 4.50404 +2827 4.31422 +2828 4.41014 +2829 4.30253 +2830 3.31919 +2831 4.27932 +2832 3.8085 +2833 4.34628 +2834 4.60959 +2835 4.73621 +2836 5.48168 +2837 4.69824 +2838 4.43183 +2839 4.71087 +2840 3.99431 +2841 4.11985 +2842 4.05399 +2843 3.89365 +2844 6.19302 +2845 4.45312 +2846 5.83183 +2847 4.59242 +2848 4.71969 +2849 5.20708 +2850 5.23146 +2851 5.79734 +2852 4.5809 +2853 4.2413 +2854 4.89115 +2855 5.05277 +2856 4.45004 +2857 3.93742 +2858 4.70233 +2859 4.43793 +2860 4.18542 +2861 7.43051 +2862 4.48281 +2863 6.05663 +2864 6.77633 +2865 3.96688 +2866 3.89382 +2867 4.51995 +2868 4.87664 +2869 6.11322 +2870 4.3787 +2871 4.45446 +2872 5.11064 +2873 4.86283 +2874 5.56664 +2875 3.25583 +2876 4.35008 +2877 3.71177 +2878 3.87787 +2879 3.75281 +2880 4.59085 +2881 5.25934 +2882 6.34303 +2883 4.33931 +2884 6.94172 +2885 5.03156 +2886 4.11273 +2887 4.21218 +2888 3.98345 +2889 4.03204 +2890 5.96636 +2891 5.71881 +2892 4.2539 +2893 4.12617 +2894 4.14803 +2895 4.39481 +2896 4.16401 +2897 5.04337 +2898 5.85059 +2899 4.91826 +2900 4.32596 +2901 4.55958 +2902 5.31765 +2903 4.51612 +2904 4.17685 +2905 4.12488 +2906 5.19253 +2907 3.73483 +2908 4.529 +2909 4.70607 +2910 4.10329 +2911 4.8611 +2912 4.04642 +2913 5.02933 +2914 4.27112 +2915 5.07286 +2916 4.71064 +2917 4.39305 +2918 4.92583 +2919 5.54931 +2920 4.18032 +2921 4.48906 +2922 6.32981 +2923 4.60243 +2924 5.45564 +2925 4.74137 +2926 5.14545 +2927 3.82007 +2928 5.49293 +2929 4.69908 +2930 4.1275 +2931 6.65454 +2932 5.03875 +2933 4.14591 +2934 4.01235 +2935 4.00815 +2936 5.76857 +2937 5.02638 +2938 6.26153 +2939 6.02439 +2940 5.20834 +2941 4.16112 +2942 4.53505 +2943 4.08111 +2944 3.9617 +2945 5.08082 +2946 5.55714 +2947 4.75187 +2948 3.82661 +2949 5.36028 +2950 4.74018 +2951 4.18221 +2952 4.83789 +2953 5.65275 +2954 5.14825 +2955 4.90946 +2956 4.1876 +2957 4.91593 +2958 4.55763 +2959 4.20184 +2960 4.29938 +2961 5.58426 +2962 4.44108 +2963 5.48019 +2964 4.36606 +2965 4.39391 +2966 4.91632 +2967 6.57166 +2968 3.75715 +2969 5.11107 +2970 5.45936 +2971 9.1623 +2972 5.07451 +2973 5.18354 +2974 3.85127 +2975 5.27576 +2976 5.12478 +2977 3.45139 +2978 4.29123 +2979 4.2038 +2980 4.88112 +2981 5.29667 +2982 4.5317 +2983 5.28126 +2984 4.16377 +2985 4.07502 +2986 4.972 +2987 4.04944 +2988 4.35891 +2989 5.94877 +2990 4.17971 +2991 4.89597 +2992 3.92026 +2993 7.2209 +2994 5.55316 +2995 6.30375 +2996 5.36476 +2997 4.41603 +2998 3.94482 +2999 6.34761 +3000 5.96764 +3001 6.60846 +3002 3.99943 +3003 4.45434 +3004 4.27931 +3005 6.5149 +3006 5.80377 +3007 4.0361 +3008 4.39034 +3009 4.50682 +3010 3.04456 +3011 3.67719 +3012 3.24655 +3013 5.22202 +3014 3.71897 +3015 4.38586 +3016 4.63258 +3017 4.98972 +3018 4.85413 +3019 4.63765 +3020 3.73696 +3021 4.32544 +3022 5.31079 +3023 4.67075 +3024 4.16219 +3025 4.73169 +3026 5.02142 +3027 4.00258 +3028 3.76652 +3029 4.32413 +3030 3.66908 +3031 3.30182 +3032 4.1033 +3033 4.17231 +3034 3.77511 +3035 5.86218 +3036 4.36458 +3037 5.97449 +3038 4.96634 +3039 5.19446 +3040 4.97421 +3041 5.05263 +3042 3.89528 +3043 3.73793 +3044 5.01285 +3045 3.99854 +3046 4.08765 +3047 3.88657 +3048 3.81293 +3049 7.05708 +3050 4.12321 +3051 4.12222 +3052 6.59517 +3053 5.55242 +3054 4.5764 +3055 4.21464 +3056 4.94361 +3057 4.91047 +3058 4.12025 +3059 4.72533 +3060 6.84819 +3061 4.71956 +3062 3.99404 +3063 3.60673 +3064 3.40841 +3065 4.70994 +3066 5.92741 +3067 5.72016 +3068 5.01993 +3069 4.54938 +3070 3.96912 +3071 4.98385 +3072 5.26633 +3073 4.51956 +3074 5.47986 +3075 4.34144 +3076 4.09484 +3077 3.81917 +3078 5.59464 +3079 4.6161 +3080 4.16258 +3081 4.30858 +3082 3.73985 +3083 4.26578 +3084 5.38462 +3085 4.76787 +3086 4.2537 +3087 4.76099 +3088 3.88437 +3089 4.98018 +3090 6.58424 +3091 4.54496 +3092 4.64093 +3093 4.33846 +3094 4.70428 +3095 5.33932 +3096 5.11619 +3097 4.97938 +3098 5.9777 +3099 5.72224 +3100 3.98442 +3101 4.4267 +3102 4.23615 +3103 4.84152 +3104 4.09898 +3105 4.62116 +3106 5.51302 +3107 4.66559 +3108 4.41598 +3109 4.15333 +3110 5.33699 +3111 4.5255 +3112 3.89244 +3113 4.57836 +3114 4.08925 +3115 4.89501 +3116 4.96982 +3117 6.52573 +3118 4.03892 +3119 5.65899 +3120 4.49969 +3121 4.99122 +3122 4.56258 +3123 5.20837 +3124 4.16394 +3125 5.1438 +3126 4.69963 +3127 4.45956 +3128 5.23182 +3129 3.99329 +3130 5.32909 +3131 3.48595 +3132 4.27952 +3133 3.60652 +3134 3.52773 +3135 3.98241 +3136 4.79265 +3137 4.83533 +3138 5.2556 +3139 5.31114 +3140 5.35217 +3141 4.69732 +3142 5.60826 +3143 4.5277 +3144 5.67926 +3145 5.8988 +3146 4.64429 +3147 3.93759 +3148 3.33487 +3149 4.90517 +3150 4.89013 +3151 4.82001 +3152 4.94777 +3153 3.92058 +3154 5.01992 +3155 5.14395 +3156 4.06196 +3157 5.3374 +3158 4.06663 +3159 4.58797 +3160 4.81997 +3161 4.83424 +3162 5.36911 +3163 5.32515 +3164 5.21427 +3165 4.27678 +3166 4.50348 +3167 3.81759 +3168 3.95272 +3169 4.61585 +3170 4.87294 +3171 4.39749 +3172 4.49378 +3173 4.72939 +3174 5.62576 +3175 4.78582 +3176 4.64316 +3177 4.80185 +3178 3.48222 +3179 4.43794 +3180 3.65747 +3181 4.34425 +3182 4.27806 +3183 3.97622 +3184 5.15817 +3185 4.57739 +3186 4.56057 +3187 3.76418 +3188 3.63788 +3189 5.84234 +3190 4.87528 +3191 4.47609 +3192 4.6244 +3193 4.05154 +3194 4.94902 +3195 4.15818 +3196 3.30669 +3197 6.62678 +3198 4.85431 +3199 5.01645 +3200 4.36938 +3201 4.63077 +3202 5.70135 +3203 7.1752 +3204 5.0384 +3205 3.92301 +3206 4.40737 +3207 4.29588 +3208 4.40008 +3209 5.47727 +3210 5.24996 +3211 4.69241 +3212 4.52463 +3213 5.05512 +3214 4.53468 +3215 4.32046 +3216 5.67438 +3217 5.05735 +3218 6.36188 +3219 4.80659 +3220 5.44359 +3221 4.62601 +3222 4.47163 +3223 4.61385 +3224 6.70816 +3225 3.70569 +3226 4.47522 +3227 4.09937 +3228 4.28806 +3229 4.20945 +3230 4.61336 +3231 4.49496 +3232 4.74171 +3233 4.70504 +3234 5.44926 +3235 4.36925 +3236 4.28762 +3237 5.39806 +3238 5.1816 +3239 3.77413 +3240 3.65312 +3241 3.80591 +3242 4.48799 +3243 3.73615 +3244 5.68598 +3245 5.66694 +3246 4.45083 +3247 5.10943 +3248 4.65412 +3249 4.48831 +3250 4.16788 +3251 4.65925 +3252 3.79497 +3253 4.92871 +3254 5.21194 +3255 4.30617 +3256 4.08191 +3257 7.07526 +3258 4.28074 +3259 6.39558 +3260 4.90606 +3261 4.50895 +3262 4.87761 +3263 5.96041 +3264 3.8735 +3265 4.08252 +3266 4.78665 +3267 5.18232 +3268 4.65352 +3269 5.72281 +3270 4.64299 +3271 4.2336 +3272 4.21137 +3273 3.31769 +3274 3.48872 +3275 4.34797 +3276 3.76265 +3277 4.60212 +3278 4.57199 +3279 5.63692 +3280 5.33428 +3281 5.14769 +3282 4.43174 +3283 3.44091 +3284 4.80778 +3285 4.51759 +3286 6.17082 +3287 4.58348 +3288 5.40614 +3289 4.92644 +3290 5.25415 +3291 4.66349 +3292 6.71093 +3293 3.48031 +3294 5.80478 +3295 5.48128 +3296 5.06454 +3297 7.52914 +3298 5.82188 +3299 5.95016 +3300 3.97995 +3301 4.47739 +3302 6.81176 +3303 4.56904 +3304 4.15714 +3305 4.71527 +3306 4.01364 +3307 5.95173 +3308 4.77139 +3309 5.13732 +3310 5.04196 +3311 4.4352 +3312 5.25671 +3313 4.69958 +3314 3.51812 +3315 3.8017 +3316 3.53676 +3317 3.64636 +3318 3.77583 +3319 4.45 +3320 4.16181 +3321 5.05047 +3322 4.77709 +3323 4.28632 +3324 4.16893 +3325 4.85874 +3326 5.24599 +3327 5.00196 +3328 5.01073 +3329 5.29392 +3330 6.37584 +3331 5.94236 +3332 7.44719 +3333 5.82913 +3334 5.31718 +3335 4.45919 +3336 4.55549 +3337 5.88911 +3338 4.52495 +3339 6.87761 +3340 3.81636 +3341 5.59626 +3342 4.00925 +3343 7.18254 +3344 4.5519 +3345 3.47671 +3346 3.90883 +3347 4.51101 +3348 4.76378 +3349 4.36593 +3350 4.19741 +3351 5.26804 +3352 5.11181 +3353 3.84313 +3354 5.20458 +3355 4.63328 +3356 5.48146 +3357 4.89831 +3358 4.49755 +3359 4.78468 +3360 5.69493 +3361 6.84019 +3362 4.56605 +3363 4.30775 +3364 4.25339 +3365 5.45232 +3366 4.1672 +3367 5.26874 +3368 4.38324 +3369 4.11986 +3370 4.16698 +3371 3.86899 +3372 5.08552 +3373 5.1256 +3374 7.43266 +3375 4.09347 +3376 3.30858 +3377 4.22945 +3378 4.80085 +3379 4.43846 +3380 4.87238 +3381 4.37105 +3382 4.0367 +3383 4.66363 +3384 5.64337 +3385 5.16952 +3386 5.67159 +3387 4.75444 +3388 7.17448 +3389 5.31021 +3390 4.35733 +3391 4.5092 +3392 4.62889 +3393 5.45095 +3394 7.26681 +3395 4.68213 +3396 5.88848 +3397 3.51023 +3398 5.35967 +3399 6.41818 +3400 5.55495 +3401 4.61909 +3402 4.05684 +3403 4.46396 +3404 5.77165 +3405 5.20544 +3406 5.2488 +3407 3.86043 +3408 5.68272 +3409 4.17125 +3410 4.00784 +3411 4.03968 +3412 6.49563 +3413 6.37526 +3414 5.21722 +3415 4.43843 +3416 4.99751 +3417 4.00996 +3418 5.14566 +3419 5.15248 +3420 4.68288 +3421 4.12513 +3422 5.2174 +3423 4.44518 +3424 4.42107 +3425 3.86467 +3426 5.35767 +3427 4.46596 +3428 4.32243 +3429 4.81155 +3430 4.29788 +3431 4.58294 +3432 4.82469 +3433 6.60945 +3434 5.46404 +3435 5.84913 +3436 4.77034 +3437 3.98354 +3438 4.20001 +3439 4.90918 +3440 4.73337 +3441 4.24255 +3442 4.39617 +3443 4.5707 +3444 3.93297 +3445 5.34139 +3446 4.65757 +3447 5.24366 +3448 4.30156 +3449 6.08589 +3450 4.03032 +3451 4.0605 +3452 3.97215 +3453 4.80418 +3454 4.65976 +3455 5.89478 +3456 4.61612 +3457 3.67107 +3458 6.74365 +3459 3.37157 +3460 4.07715 +3461 4.85257 +3462 4.07155 +3463 4.09848 +3464 3.36649 +3465 3.87754 +3466 3.52205 +3467 5.32255 +3468 5.40059 +3469 4.59749 +3470 5.13824 +3471 4.87748 +3472 3.8129 +3473 4.68942 +3474 4.16422 +3475 5.76176 +3476 6.52084 +3477 5.39938 +3478 5.02696 +3479 4.9598 +3480 4.60251 +3481 4.46484 +3482 6.54378 +3483 5.0181 +3484 5.3976 +3485 4.99223 +3486 5.49406 +3487 4.58075 +3488 4.58374 +3489 5.64893 +3490 4.41822 +3491 4.84565 +3492 4.73345 +3493 4.63807 +3494 4.14956 +3495 4.01507 +3496 4.04199 +3497 4.52028 +3498 3.81201 +3499 4.79439 +3500 4.62535 +3501 7.31373 +3502 4.22211 +3503 6.31387 +3504 4.17674 +3505 4.70643 +3506 4.28341 +3507 5.29065 +3508 4.91499 +3509 6.00431 +3510 3.96711 +3511 4.488 +3512 4.91397 +3513 4.80883 +3514 4.9748 +3515 4.85305 +3516 4.32768 +3517 3.86943 +3518 5.18021 +3519 4.46024 +3520 4.54296 +3521 4.19801 +3522 4.53342 +3523 4.73691 +3524 4.23833 +3525 3.9616 +3526 5.00881 +3527 4.26458 +3528 5.007 +3529 4.67679 +3530 8.13596 +3531 5.66229 +3532 5.06939 +3533 4.14785 +3534 4.36292 +3535 3.8412 +3536 4.25304 +3537 5.8026 +3538 5.27337 +3539 3.92313 +3540 4.87407 +3541 4.90936 +3542 4.3244 +3543 4.50653 +3544 4.33229 +3545 4.86803 +3546 3.45726 +3547 5.70553 +3548 3.65006 +3549 4.6476 +3550 4.58644 +3551 4.79426 +3552 5.24317 +3553 5.72819 +3554 4.80508 +3555 4.29488 +3556 4.28784 +3557 6.9248 +3558 5.09896 +3559 5.73881 +3560 7.77552 +3561 6.54035 +3562 4.93546 +3563 4.13104 +3564 4.76834 +3565 5.98575 +3566 5.18398 +3567 3.6776 +3568 4.64289 +3569 5.93095 +3570 4.67508 +3571 4.81171 +3572 5.74164 +3573 4.97033 +3574 4.34824 +3575 4.57906 +3576 3.81043 +3577 3.58059 +3578 3.58607 +3579 3.23195 +3580 3.88831 +3581 4.5938 +3582 5.13952 +3583 5.73356 +3584 5.29631 +3585 4.09706 +3586 4.98605 +3587 4.07949 +3588 3.74211 +3589 4.58896 +3590 5.02265 +3591 4.19412 +3592 3.9192 +3593 4.05613 +3594 4.72953 +3595 4.65569 +3596 4.47555 +3597 4.98342 +3598 4.52087 +3599 4.71954 +3600 4.9532 +3601 3.82348 +3602 4.24404 +3603 5.49112 +3604 3.65177 +3605 4.15418 +3606 3.95548 +3607 4.66175 +3608 5.47656 +3609 4.35578 +3610 3.82036 +3611 4.64479 +3612 4.19936 +3613 3.91406 +3614 4.0822 +3615 5.04588 +3616 5.45478 +3617 5.01285 +3618 4.7234 +3619 6.02137 +3620 5.97758 +3621 4.32485 +3622 6.91314 +3623 5.4577 +3624 5.43344 +3625 5.2449 +3626 5.10337 +3627 6.48734 +3628 4.04627 +3629 4.37624 +3630 4.22662 +3631 4.93142 +3632 4.60825 +3633 3.74537 +3634 4.76087 +3635 6.16932 +3636 5.28749 +3637 4.30175 +3638 5.29788 +3639 4.54364 +3640 3.76276 +3641 5.46007 +3642 3.67068 +3643 4.96661 +3644 3.4967 +3645 5.95877 +3646 6.38629 +3647 4.57909 +3648 4.88679 +3649 6.23759 +3650 4.26274 +3651 4.42891 +3652 4.72568 +3653 5.15445 +3654 4.04179 +3655 6.91854 +3656 3.99854 +3657 4.84631 +3658 4.60424 +3659 4.80709 +3660 4.35488 +3661 3.6623 +3662 5.31503 +3663 5.49182 +3664 5.31312 +3665 5.13218 +3666 4.31632 +3667 5.13794 +3668 5.73567 +3669 3.49619 +3670 5.94202 +3671 4.58334 +3672 4.34667 +3673 4.84016 +3674 3.77392 +3675 6.04794 +3676 4.64381 +3677 4.99099 +3678 4.13046 +3679 4.99048 +3680 5.19433 +3681 5.7815 +3682 4.39478 +3683 5.4437 +3684 3.47175 +3685 4.09937 +3686 4.791 +3687 5.09605 +3688 4.22954 +3689 4.51934 +3690 6.62669 +3691 4.82477 +3692 6.76409 +3693 4.63308 +3694 4.75213 +3695 4.55185 +3696 5.67884 +3697 5.8835 +3698 5.65476 +3699 4.43732 +3700 3.9878 +3701 4.28232 +3702 4.82091 +3703 5.289 +3704 3.55772 +3705 4.24679 +3706 4.18999 +3707 4.59276 +3708 4.01876 +3709 4.78459 +3710 4.87164 +3711 3.98868 +3712 4.15371 +3713 4.02674 +3714 4.88791 +3715 6.01321 +3716 6.47803 +3717 4.84187 +3718 4.92701 +3719 5.89023 +3720 3.90788 +3721 3.90386 +3722 4.80272 +3723 4.78912 +3724 6.09719 +3725 3.97605 +3726 3.96223 +3727 5.64758 +3728 5.31508 +3729 4.29132 +3730 4.49312 +3731 3.63091 +3732 3.84124 +3733 6.36528 +3734 5.53119 +3735 5.98563 +3736 4.54993 +3737 4.99849 +3738 5.26637 +3739 4.49482 +3740 3.96309 +3741 4.4634 +3742 4.74273 +3743 4.02046 +3744 5.07712 +3745 4.60478 +3746 4.27826 +3747 5.03232 +3748 4.8204 +3749 5.04702 +3750 4.68242 +3751 5.30037 +3752 6.28124 +3753 7.50868 +3754 4.75577 +3755 4.89947 +3756 5.33214 +3757 5.06082 +3758 5.33469 +3759 5.70165 +3760 3.45843 +3761 7.06091 +3762 5.34472 +3763 4.54159 +3764 4.10042 +3765 4.95604 +3766 5.67517 +3767 4.68118 +3768 3.92157 +3769 4.07997 +3770 8.02019 +3771 4.83268 +3772 4.01553 +3773 4.61982 +3774 5.05916 +3775 4.66407 +3776 4.90557 +3777 4.68014 +3778 3.59714 +3779 3.85172 +3780 4.897 +3781 4.06215 +3782 4.90176 +3783 5.27266 +3784 5.04117 +3785 5.89917 +3786 4.0572 +3787 3.58335 +3788 4.81297 +3789 4.79631 +3790 4.03101 +3791 4.34143 +3792 4.19571 +3793 3.80703 +3794 4.00201 +3795 4.86041 +3796 3.55816 +3797 3.87767 +3798 4.20152 +3799 4.09067 +3800 6.20821 +3801 3.66559 +3802 5.68513 +3803 4.37386 +3804 4.90509 +3805 5.65542 +3806 6.14031 +3807 5.36859 +3808 4.70549 +3809 5.39813 +3810 4.43796 +3811 5.14079 +3812 4.69559 +3813 4.81517 +3814 4.32737 +3815 5.37106 +3816 5.18181 +3817 4.03867 +3818 4.38827 +3819 7.98318 +3820 5.21525 +3821 4.14729 +3822 4.16749 +3823 3.88991 +3824 4.13471 +3825 5.1587 +3826 4.22272 +3827 3.78389 +3828 5.52945 +3829 4.8006 +3830 5.75102 +3831 5.60093 +3832 4.91809 +3833 6.31254 +3834 6.71188 +3835 5.55265 +3836 5.21932 +3837 6.70363 +3838 4.95086 +3839 3.94283 +3840 4.77118 +3841 4.95157 +3842 3.27214 +3843 4.19783 +3844 4.41491 +3845 5.30166 +3846 4.96255 +3847 5.68602 +3848 3.74721 +3849 3.55011 +3850 4.08227 +3851 4.43091 +3852 5.46475 +3853 4.92724 +3854 4.95677 +3855 4.02228 +3856 5.24317 +3857 5.30067 +3858 4.04013 +3859 4.64976 +3860 3.823 +3861 3.24545 +3862 5.36782 +3863 3.27974 +3864 4.55433 +3865 4.28194 +3866 4.32731 +3867 5.65514 +3868 4.74016 +3869 4.41465 +3870 4.52051 +3871 5.64171 +3872 3.5371 +3873 4.75833 +3874 4.73489 +3875 4.59977 +3876 4.38186 +3877 3.94888 +3878 4.08066 +3879 4.23853 +3880 6.67463 +3881 8.27719 +3882 5.12298 +3883 4.83654 +3884 4.44743 +3885 4.56235 +3886 5.16332 +3887 3.89874 +3888 4.31288 +3889 4.81001 +3890 5.16668 +3891 4.73466 +3892 6.22973 +3893 4.68436 +3894 3.47253 +3895 4.09609 +3896 5.13411 +3897 3.97242 +3898 3.76259 +3899 5.05564 +3900 5.32298 +3901 5.34417 +3902 4.69513 +3903 4.68155 +3904 5.49043 +3905 5.37817 +3906 4.19291 +3907 6.03196 +3908 5.74807 +3909 4.88063 +3910 4.50504 +3911 3.69072 +3912 5.03819 +3913 4.34425 +3914 4.10699 +3915 4.97094 +3916 3.39594 +3917 4.87712 +3918 4.30832 +3919 4.09753 +3920 4.6618 +3921 4.0563 +3922 4.35274 +3923 4.28339 +3924 4.33818 +3925 4.7564 +3926 5.70277 +3927 5.08818 +3928 4.95638 +3929 5.88393 +3930 4.55919 +3931 3.61618 +3932 4.16205 +3933 5.24677 +3934 4.85968 +3935 5.25013 +3936 5.71006 +3937 3.86914 +3938 3.57492 +3939 5.36178 +3940 4.95325 +3941 5.43285 +3942 5.15939 +3943 4.77935 +3944 4.76482 +3945 4.79478 +3946 3.80121 +3947 3.9082 +3948 3.87674 +3949 4.27377 +3950 4.42469 +3951 3.94268 +3952 3.99396 +3953 5.8474 +3954 3.98209 +3955 3.66544 +3956 4.24788 +3957 4.0793 +3958 4.63044 +3959 5.50188 +3960 4.91055 +3961 4.76013 +3962 4.70974 +3963 3.85898 +3964 3.93929 +3965 4.37907 +3966 4.13659 +3967 4.50101 +3968 5.02177 +3969 4.92215 +3970 3.39882 +3971 5.98884 +3972 4.62464 +3973 4.88087 +3974 5.81097 +3975 5.28926 +3976 4.43173 +3977 4.88157 +3978 5.69476 +3979 7.08114 +3980 4.25748 +3981 4.47158 +3982 4.95826 +3983 4.54161 +3984 4.71207 +3985 4.63346 +3986 5.61238 +3987 5.95811 +3988 4.24971 +3989 5.58962 +3990 4.35115 +3991 4.86121 +3992 6.14347 +3993 5.99593 +3994 4.34158 +3995 3.98303 +3996 4.14168 +3997 4.32675 +3998 4.51089 +3999 5.2416 +4000 4.0099 +4001 5.72394 +4002 4.59414 +4003 4.08676 +4004 4.9444 +4005 4.20637 +4006 4.53556 +4007 4.74634 +4008 5.99285 +4009 4.85573 +4010 5.04551 +4011 4.21415 +4012 4.74942 +4013 5.74971 +4014 5.73635 +4015 4.30315 +4016 4.57801 +4017 5.78328 +4018 4.79277 +4019 4.46262 +4020 4.49061 +4021 4.98666 +4022 4.53671 +4023 3.86711 +4024 5.39673 +4025 5.5037 +4026 4.61308 +4027 4.96026 +4028 4.00277 +4029 5.05182 +4030 3.40628 +4031 4.47465 +4032 5.03768 +4033 4.89273 +4034 4.60329 +4035 4.76153 +4036 4.83934 +4037 4.01553 +4038 4.27911 +4039 5.30271 +4040 3.42284 +4041 4.28417 +4042 5.45129 +4043 5.23976 +4044 3.66696 +4045 7.80242 +4046 4.69649 +4047 5.11191 +4048 4.73713 +4049 4.50185 +4050 3.46932 +4051 4.67562 +4052 3.81033 +4053 4.79887 +4054 3.69734 +4055 7.27298 +4056 5.08473 +4057 4.55982 +4058 5.57335 +4059 5.12245 +4060 6.07624 +4061 5.78225 +4062 5.3695 +4063 5.35845 +4064 4.99113 +4065 5.18524 +4066 4.5677 +4067 5.91608 +4068 4.59554 +4069 5.38743 +4070 4.74151 +4071 4.21579 +4072 4.44082 +4073 4.9703 +4074 5.69802 +4075 5.28586 +4076 3.89953 +4077 3.48277 +4078 4.05859 +4079 5.38363 +4080 4.45607 +4081 3.76334 +4082 7.24972 +4083 4.83493 +4084 4.05368 +4085 5.44871 +4086 4.62882 +4087 4.99186 +4088 3.90731 +4089 5.31407 +4090 4.26318 +4091 3.42228 +4092 3.85048 +4093 4.41176 +4094 4.48031 +4095 3.75461 +4096 5.14653 +4097 5.17645 +4098 5.41614 +4099 4.6969 +4100 5.31918 +4101 3.80251 +4102 4.31365 +4103 4.72017 +4104 4.75492 +4105 4.65634 +4106 4.38442 +4107 4.33042 +4108 4.52289 +4109 4.42465 +4110 6.91318 +4111 4.23505 +4112 4.73638 +4113 5.36116 +4114 4.82534 +4115 4.78088 +4116 4.79477 +4117 6.08112 +4118 5.65838 +4119 3.79311 +4120 6.37092 +4121 3.67677 +4122 5.94353 +4123 4.14938 +4124 3.93517 +4125 3.72344 +4126 3.66166 +4127 4.03826 +4128 4.99581 +4129 4.46639 +4130 4.94726 +4131 4.52579 +4132 5.36752 +4133 5.33759 +4134 4.80205 +4135 5.46704 +4136 4.89723 +4137 5.51483 +4138 5.15305 +4139 3.98749 +4140 4.58217 +4141 6.09803 +4142 4.16448 +4143 5.62137 +4144 4.44096 +4145 5.75993 +4146 4.34049 +4147 4.95898 +4148 5.37037 +4149 4.19648 +4150 4.30859 +4151 3.75704 +4152 3.91395 +4153 5.06109 +4154 3.68534 +4155 4.0594 +4156 4.15664 +4157 3.99866 +4158 4.45073 +4159 4.43064 +4160 4.03995 +4161 4.11646 +4162 4.06886 +4163 4.30359 +4164 5.12401 +4165 5.47271 +4166 3.88448 +4167 3.76621 +4168 4.68972 +4169 5.05313 +4170 4.97109 +4171 4.57496 +4172 4.47719 +4173 4.89529 +4174 5.51454 +4175 4.84469 +4176 3.935 +4177 3.49778 +4178 3.45567 +4179 3.27194 +4180 4.78561 +4181 3.72307 +4182 6.6622 +4183 3.73852 +4184 5.56413 +4185 4.63806 +4186 3.99848 +4187 4.76733 +4188 4.84915 +4189 6.45768 +4190 3.63656 +4191 3.29245 +4192 4.94206 +4193 5.4349 +4194 5.44666 +4195 5.9936 +4196 5.38745 +4197 3.49734 +4198 6.59262 +4199 3.94786 +4200 4.63301 +4201 4.5829 +4202 3.62897 +4203 5.08026 +4204 5.0147 +4205 4.52667 +4206 4.13501 +4207 4.64063 +4208 5.52488 +4209 5.16752 +4210 4.56389 +4211 5.70356 +4212 3.68673 +4213 5.79305 +4214 3.82083 +4215 3.69708 +4216 4.13636 +4217 5.04079 +4218 4.22908 +4219 5.57513 +4220 6.08492 +4221 5.14326 +4222 5.72943 +4223 5.15138 +4224 4.88869 +4225 3.92906 +4226 3.97685 +4227 3.73457 +4228 4.16846 +4229 5.29633 +4230 4.2823 +4231 5.00061 +4232 4.79541 +4233 3.73161 +4234 5.6104 +4235 4.90676 +4236 4.12479 +4237 4.55305 +4238 4.94044 +4239 3.97514 +4240 4.65151 +4241 5.48607 +4242 6.78305 +4243 4.70367 +4244 4.75002 +4245 5.65257 +4246 5.30325 +4247 6.36731 +4248 5.04409 +4249 5.40945 +4250 4.50691 +4251 4.97374 +4252 5.14513 +4253 4.21049 +4254 3.50105 +4255 4.28841 +4256 5.30796 +4257 4.44378 +4258 3.6831 +4259 5.77718 +4260 4.14055 +4261 4.72993 +4262 4.91476 +4263 4.67807 +4264 4.23155 +4265 4.72516 +4266 4.74672 +4267 4.6598 +4268 3.92337 +4269 4.97376 +4270 6.25092 +4271 5.25484 +4272 5.16028 +4273 4.36094 +4274 3.50375 +4275 4.1231 +4276 3.75493 +4277 4.19265 +4278 4.95296 +4279 4.60578 +4280 4.44563 +4281 5.54273 +4282 6.69932 +4283 5.42073 +4284 4.04378 +4285 7.05285 +4286 3.64522 +4287 4.15064 +4288 4.39404 +4289 3.80958 +4290 4.37716 +4291 5.3567 +4292 3.8125 +4293 6.43246 +4294 4.8435 +4295 6.1996 +4296 3.85661 +4297 5.07306 +4298 3.9735 +4299 5.35132 +4300 4.06192 +4301 4.70781 +4302 3.97909 +4303 5.83439 +4304 6.6815 +4305 5.1507 +4306 5.19783 +4307 4.94408 +4308 3.63007 +4309 4.39836 +4310 3.67522 +4311 4.6909 +4312 5.21851 +4313 5.17508 +4314 5.50318 +4315 4.31249 +4316 3.70037 +4317 4.10311 +4318 4.39596 +4319 4.26567 +4320 4.96554 +4321 3.74362 +4322 8.26641 +4323 5.16799 +4324 5.12921 +4325 4.59742 +4326 5.28426 +4327 5.03358 +4328 4.72047 +4329 4.51675 +4330 4.16556 +4331 4.8241 +4332 3.66862 +4333 4.60005 +4334 4.98984 +4335 4.85702 +4336 5.16699 +4337 4.37185 +4338 5.09465 +4339 3.79526 +4340 5.30753 +4341 4.56695 +4342 3.93776 +4343 4.30467 +4344 3.9992 +4345 4.81481 +4346 5.32209 +4347 3.55797 +4348 4.15067 +4349 3.73383 +4350 6.44161 +4351 5.82844 +4352 4.76522 +4353 3.75537 +4354 4.16458 +4355 3.712 +4356 3.94256 +4357 3.96245 +4358 3.72702 +4359 4.2958 +4360 4.12631 +4361 5.03315 +4362 4.70812 +4363 4.42506 +4364 4.92272 +4365 5.27474 +4366 4.58449 +4367 4.58569 +4368 4.77959 +4369 3.96535 +4370 3.7008 +4371 3.14713 +4372 4.38286 +4373 3.7537 +4374 4.69848 +4375 4.37414 +4376 3.89283 +4377 4.58308 +4378 5.28208 +4379 4.06369 +4380 4.50407 +4381 5.69321 +4382 6.14878 +4383 5.32516 +4384 4.83546 +4385 6.13089 +4386 5.91231 +4387 5.73909 +4388 5.80234 +4389 4.75565 +4390 3.83788 +4391 4.0871 +4392 4.47088 +4393 5.18773 +4394 4.86214 +4395 4.92041 +4396 4.66167 +4397 5.31658 +4398 4.60579 +4399 5.52014 +4400 5.2823 +4401 5.51789 +4402 4.9579 +4403 4.21738 +4404 6.10843 +4405 4.96361 +4406 4.48082 +4407 4.85303 +4408 4.97857 +4409 5.46674 +4410 6.26066 +4411 5.1061 +4412 4.45314 +4413 3.63912 +4414 4.44151 +4415 4.78025 +4416 5.33808 +4417 6.44781 +4418 4.60177 +4419 4.78022 +4420 4.47031 +4421 3.92448 +4422 5.40715 +4423 5.86638 +4424 5.55493 +4425 4.50063 +4426 5.20808 +4427 4.42079 +4428 4.315 +4429 4.40545 +4430 4.23912 +4431 5.18056 +4432 4.36299 +4433 5.32134 +4434 5.39343 +4435 5.19789 +4436 4.79581 +4437 4.23767 +4438 4.35446 +4439 6.12676 +4440 3.53033 +4441 5.21693 +4442 4.54164 +4443 4.84911 +4444 5.46535 +4445 4.32872 +4446 4.4142 +4447 4.01235 +4448 7.05806 +4449 6.69006 +4450 4.99732 +4451 4.87135 +4452 6.56445 +4453 5.05427 +4454 5.028 +4455 3.91365 +4456 5.00828 +4457 4.30681 +4458 4.77414 +4459 4.24924 +4460 3.77972 +4461 4.5109 +4462 4.67582 +4463 4.25681 +4464 5.51337 +4465 5.59176 +4466 6.41179 +4467 3.87699 +4468 4.75342 +4469 6.17579 +4470 4.75318 +4471 5.52118 +4472 5.41048 +4473 4.35841 +4474 5.28293 +4475 4.79676 +4476 4.139 +4477 6.32845 +4478 4.38079 +4479 3.64452 +4480 3.60414 +4481 4.55415 +4482 4.80883 +4483 4.62984 +4484 5.82377 +4485 4.17554 +4486 4.18831 +4487 3.79909 +4488 4.16344 +4489 3.86103 +4490 5.68851 +4491 4.4131 +4492 5.24926 +4493 4.63955 +4494 4.85978 +4495 5.24844 +4496 6.48278 +4497 4.68736 +4498 5.90182 +4499 4.78251 +4500 5.31855 +4501 6.10792 +4502 6.99334 +4503 5.11562 +4504 6.16036 +4505 5.71903 +4506 6.02346 +4507 4.69028 +4508 4.4694 +4509 4.43218 +4510 4.40778 +4511 4.4232 +4512 4.76933 +4513 4.65515 +4514 3.85458 +4515 4.93617 +4516 5.84965 +4517 5.30692 +4518 4.6061 +4519 5.08265 +4520 4.6654 +4521 4.46176 +4522 3.46308 +4523 4.29966 +4524 3.37404 +4525 5.44763 +4526 4.99008 +4527 4.02569 +4528 4.44698 +4529 4.24787 +4530 5.19535 +4531 4.81717 +4532 5.42479 +4533 5.5648 +4534 5.20769 +4535 3.72385 +4536 5.64251 +4537 6.73658 +4538 5.51767 +4539 4.64936 +4540 5.22742 +4541 4.7712 +4542 5.41181 +4543 5.02319 +4544 4.42203 +4545 5.3629 +4546 5.55815 +4547 3.97041 +4548 6.49134 +4549 4.53549 +4550 4.45769 +4551 4.68946 +4552 4.58256 +4553 4.49481 +4554 4.39299 +4555 4.06331 +4556 4.15579 +4557 3.83204 +4558 3.94836 +4559 4.65812 +4560 5.68099 +4561 4.38585 +4562 4.47128 +4563 5.12616 +4564 3.64549 +4565 5.27632 +4566 4.08364 +4567 4.67817 +4568 4.77839 +4569 3.97285 +4570 4.20415 +4571 5.13557 +4572 5.87522 +4573 4.85069 +4574 5.34837 +4575 4.98234 +4576 4.90681 +4577 5.25163 +4578 3.98107 +4579 4.71277 +4580 4.82714 +4581 4.66336 +4582 4.63534 +4583 7.25813 +4584 3.9066 +4585 3.84784 +4586 3.8312 +4587 4.23337 +4588 5.05013 +4589 4.83301 +4590 4.92606 +4591 5.38711 +4592 3.55431 +4593 5.68828 +4594 5.1216 +4595 4.73512 +4596 5.13275 +4597 4.43495 +4598 5.27356 +4599 4.44496 +4600 5.17615 +4601 5.78746 +4602 6.84431 +4603 5.0848 +4604 4.3835 +4605 4.07166 +4606 5.14099 +4607 5.10407 +4608 4.35691 +4609 5.19269 +4610 4.75174 +4611 4.4109 +4612 5.01341 +4613 4.67232 +4614 5.35372 +4615 5.54377 +4616 4.4851 +4617 5.3204 +4618 4.23885 +4619 4.69254 +4620 5.1661 +4621 4.46073 +4622 4.37493 +4623 5.98767 +4624 5.17813 +4625 3.64268 +4626 5.11811 +4627 5.77209 +4628 5.00958 +4629 6.59781 +4630 5.13935 +4631 4.24917 +4632 4.70662 +4633 8.10897 +4634 6.02149 +4635 5.64861 +4636 6.93105 +4637 6.10623 +4638 6.07685 +4639 7.88336 +4640 6.59574 +4641 5.23339 +4642 4.24212 +4643 5.6201 +4644 4.40963 +4645 5.26529 +4646 3.45661 +4647 4.38685 +4648 5.2937 +4649 6.87055 +4650 5.02898 +4651 4.72681 +4652 4.73145 +4653 5.51168 +4654 4.45299 +4655 4.26034 +4656 4.29152 +4657 5.47812 +4658 6.24839 +4659 4.87377 +4660 5.81282 +4661 5.52047 +4662 3.88299 +4663 5.11447 +4664 4.4435 +4665 5.27681 +4666 4.92492 +4667 3.89593 +4668 6.32568 +4669 5.62969 +4670 4.8532 +4671 4.24353 +4672 5.95639 +4673 5.59218 +4674 5.03243 +4675 4.12284 +4676 4.74712 +4677 3.41641 +4678 4.75208 +4679 4.72932 +4680 4.58091 +4681 4.67615 +4682 4.64288 +4683 4.65893 +4684 4.17687 +4685 7.6923 +4686 4.34479 +4687 4.54674 +4688 4.72231 +4689 4.18362 +4690 5.98899 +4691 6.35477 +4692 4.12613 +4693 4.62649 +4694 5.81553 +4695 4.05227 +4696 4.24556 +4697 5.54153 +4698 4.69667 +4699 4.10777 +4700 4.99247 +4701 5.0678 +4702 4.7033 +4703 4.68064 +4704 4.81022 +4705 6.26494 +4706 4.4299 +4707 4.39848 +4708 4.6203 +4709 4.55437 +4710 4.67512 +4711 5.60593 +4712 5.59745 +4713 4.49914 +4714 4.57409 +4715 7.20177 +4716 4.92917 +4717 6.59048 +4718 4.90525 +4719 4.32013 +4720 5.24606 +4721 4.59438 +4722 5.23828 +4723 3.62055 +4724 4.0912 +4725 5.12441 +4726 5.07246 +4727 5.78167 +4728 5.33184 +$EndElementData diff --git a/src/main.js b/src/main.js index fd07767..b2e6a70 100644 --- a/src/main.js +++ b/src/main.js @@ -32,7 +32,7 @@ export default class Main { volCompliance : 0.0, worldBounds : [-2.5,-1.0, -2.5, 2.5, 10.0, 2.5], computeNormals: true, - ShowTetMesh : false, + ShowTetMesh : true, cpuSim : cpuSim }; this.gui = new GUI(); @@ -51,33 +51,26 @@ export default class Main { // Load in a sample fTetWild Mesh this.mshLoader = new MSHLoader(); this.mshLoader.load('./src/Test.obj_.msh', (geometry) => { - geometry.computeVertexNormals(); - this.tetMat = new THREE.MeshBasicMaterial( - { color: 0xffffff, wireframe: false, transparent: true, opacity: 0.3, side: THREE.DoubleSide }); - this.tetMesh = new THREE.Mesh(geometry, this.tetMat); - this.tetMesh.scale.set(0.02, 0.02, 0.02); - this.world.scene.add( this.tetMesh ); - }); + // Shrink the Geometry + for (let i = 0; i < geometry.attributes.position.array.length; i++) { + geometry.attributes.position.array[i] *= 0.02; + } - // Construct the physics world - this.physicsScene = { softBodies: [] }; - if (this.physicsParams.cpuSim) { - this.dragon = new SoftBody(dragonTetVerts, dragonTetIds, dragonTetEdgeIds, this.physicsParams, - dragonAttachedVerts, dragonAttachedTriIds, new THREE.MeshPhongMaterial({ color: 0xf78a1d })); - this.physicsScene.softBodies.push(this.dragon); - this.grabber = new Grabber( - this.world.scene, this.world.renderer, this.world.camera, - this.world.container.parentElement, this.world.controls); - } else { - this.dragon = new SoftBodyGPU(dragonTetVerts, dragonTetIds, dragonTetEdgeIds, this.physicsParams, - dragonAttachedVerts, dragonAttachedTriIds, new THREE.MeshPhongMaterial({ color: 0xf78a1d }), this.world); - this.physicsScene.softBodies.push(this.dragon); + // Create the soft body for the loaded mesh + this.testMesh = new SoftBodyGPU( + geometry.attributes.position.array, + geometry.userData.tetIndices, + geometry.userData.index, + this.physicsParams, null, null, null, this.world); + this.physicsScene.softBodies.push(this.testMesh); this.grabber = new GPUGrabber( this.world.scene, this.world.renderer, this.world.camera, this.world.container.parentElement, this.world.controls); - } - this.world.scene.add(this.dragon.edgeMesh); - this.world.scene.add(this.dragon.visMesh); + this.world.scene.add(this.testMesh.edgeMesh); + }); + + // Construct the physics world + this.physicsScene = { softBodies: [] }; //this.previousTime = (performance.now()*0.001) - 1/60.0; } From 130466ff0c1c43724f72e8eb017957fa12f128cd Mon Sep 17 00:00:00 2001 From: Johnathon Selstad Date: Thu, 24 Feb 2022 19:03:56 -0800 Subject: [PATCH 3/4] Fix this branch --- .gitignore | 2 + .../examples/jsm/libs/lil-gui.module.min.js | 8 + .../three/examples/jsm/libs/stats.module.js | 167 ++++++++++++++++++ src/main.js | 2 +- 4 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 node_modules/three/examples/jsm/libs/lil-gui.module.min.js create mode 100644 node_modules/three/examples/jsm/libs/stats.module.js diff --git a/.gitignore b/.gitignore index 9d944c7..8f36bb7 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,8 @@ jspm_packages/ !node_modules/three/examples/js/*/ !node_modules/three/examples/js/controls/ !node_modules/three/examples/js/controls/* +!node_modules/three/examples/jsm/libs/ +!node_modules/three/examples/jsm/libs/* # TypeScript v1 declaration files typings/ diff --git a/node_modules/three/examples/jsm/libs/lil-gui.module.min.js b/node_modules/three/examples/jsm/libs/lil-gui.module.min.js new file mode 100644 index 0000000..877ffbd --- /dev/null +++ b/node_modules/three/examples/jsm/libs/lil-gui.module.min.js @@ -0,0 +1,8 @@ +/** + * lil-gui + * https://lil-gui.georgealways.com + * @version 0.16.0 + * @author George Michael Brower + * @license MIT + */ +class t{constructor(i,e,s,n,r="div"){this.parent=i,this.object=e,this.property=s,this._disabled=!1,this.initialValue=this.getValue(),this.domElement=document.createElement("div"),this.domElement.classList.add("controller"),this.domElement.classList.add(n),this.$name=document.createElement("div"),this.$name.classList.add("name"),t.nextNameID=t.nextNameID||0,this.$name.id="lil-gui-name-"+ ++t.nextNameID,this.$widget=document.createElement(r),this.$widget.classList.add("widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(s)}name(t){return this._name=t,this.$name.innerHTML=t,this}onChange(t){return this._onChange=t,this}_callOnChange(){this.parent._callOnChange(this),void 0!==this._onChange&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(t){return this._onFinishChange=t,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),void 0!==this._onFinishChange&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(t=!0){return this.disable(!t)}disable(t=!0){return t===this._disabled||(this._disabled=t,this.domElement.classList.toggle("disabled",t),this.$disable.toggleAttribute("disabled",t)),this}options(t){const i=this.parent.add(this.object,this.property,t);return i.name(this._name),this.destroy(),i}min(t){return this}max(t){return this}step(t){return this}listen(t=!0){return this._listening=t,void 0!==this._listenCallbackID&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback),this.updateDisplay()}getValue(){return this.object[this.property]}setValue(t){return this.object[this.property]=t,this._callOnChange(),this.updateDisplay(),this}updateDisplay(){return this}load(t){return this.setValue(t),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class i extends t{constructor(t,i,e){super(t,i,e,"boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function e(t){let i,e;return(i=t.match(/(#|0x)?([a-f0-9]{6})/i))?e=i[2]:(i=t.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?e=parseInt(i[1]).toString(16).padStart(2,0)+parseInt(i[2]).toString(16).padStart(2,0)+parseInt(i[3]).toString(16).padStart(2,0):(i=t.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(e=i[1]+i[1]+i[2]+i[2]+i[3]+i[3]),!!e&&"#"+e}const s={isPrimitive:!0,match:t=>"string"==typeof t,fromHexString:e,toHexString:e},n={isPrimitive:!0,match:t=>"number"==typeof t,fromHexString:t=>parseInt(t.substring(1),16),toHexString:t=>"#"+t.toString(16).padStart(6,0)},r={isPrimitive:!1,match:Array.isArray,fromHexString(t,i,e=1){const s=n.fromHexString(t);i[0]=(s>>16&255)/255*e,i[1]=(s>>8&255)/255*e,i[2]=(255&s)/255*e},toHexString:([t,i,e],s=1)=>n.toHexString(t*(s=255/s)<<16^i*s<<8^e*s<<0)},l={isPrimitive:!1,match:t=>Object(t)===t,fromHexString(t,i,e=1){const s=n.fromHexString(t);i.r=(s>>16&255)/255*e,i.g=(s>>8&255)/255*e,i.b=(255&s)/255*e},toHexString:({r:t,g:i,b:e},s=1)=>n.toHexString(t*(s=255/s)<<16^i*s<<8^e*s<<0)},o=[s,n,r,l];class a extends t{constructor(t,i,s,n){var r;super(t,i,s,"color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=(r=this.initialValue,o.find(t=>t.match(r))),this._rgbScale=n,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{const t=e(this.$text.value);t&&this._setValueFromHexString(t)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(t){if(this._format.isPrimitive){const i=this._format.fromHexString(t);this.setValue(i)}else this._format.fromHexString(t,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(t){return this._setValueFromHexString(t),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class h extends t{constructor(t,i,e){super(t,i,e,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",t=>{t.preventDefault(),this.getValue().call(this.object)}),this.$button.addEventListener("touchstart",()=>{}),this.$disable=this.$button}}class d extends t{constructor(t,i,e,s,n,r){super(t,i,e,"number"),this._initInput(),this.min(s),this.max(n);const l=void 0!==r;this.step(l?r:this._getImplicitStep(),l),this.updateDisplay()}min(t){return this._min=t,this._onUpdateMinMax(),this}max(t){return this._max=t,this._onUpdateMinMax(),this}step(t,i=!0){return this._step=t,this._stepExplicit=i,this}updateDisplay(){const t=this.getValue();if(this._hasSlider){let i=(t-this._min)/(this._max-this._min);i=Math.max(0,Math.min(i,1)),this.$fill.style.width=100*i+"%"}return this._inputFocused||(this.$input.value=t),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$disable=this.$input;const t=t=>{const i=parseFloat(this.$input.value);isNaN(i)||(this._snapClampSetValue(i+t),this.$input.value=this.getValue())};let i,e,s,n,r,l=!1;const o=t=>{if(l){const s=t.clientX-i,n=t.clientY-e;Math.abs(n)>5?(t.preventDefault(),this.$input.blur(),l=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(s)>5&&a()}if(!l){const i=t.clientY-s;r-=i*this._step*this._arrowKeyMultiplier(t),n+r>this._max?r=this._max-n:n+r{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",a)};this.$input.addEventListener("input",()=>{const t=parseFloat(this.$input.value);isNaN(t)||this.setValue(this._clamp(t))}),this.$input.addEventListener("keydown",i=>{"Enter"===i.code&&this.$input.blur(),"ArrowUp"===i.code&&(i.preventDefault(),t(this._step*this._arrowKeyMultiplier(i))),"ArrowDown"===i.code&&(i.preventDefault(),t(this._step*this._arrowKeyMultiplier(i)*-1))}),this.$input.addEventListener("wheel",i=>{this._inputFocused&&(i.preventDefault(),t(this._step*this._normalizeMouseWheel(i)))}),this.$input.addEventListener("mousedown",t=>{i=t.clientX,e=s=t.clientY,l=!0,n=this.getValue(),r=0,window.addEventListener("mousemove",o),window.addEventListener("mouseup",a)}),this.$input.addEventListener("focus",()=>{this._inputFocused=!0}),this.$input.addEventListener("blur",()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()})}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");const t=t=>{const i=this.$slider.getBoundingClientRect();let e=(s=t,n=i.left,r=i.right,l=this._min,o=this._max,(s-n)/(r-n)*(o-l)+l);var s,n,r,l,o;this._snapClampSetValue(e)},i=i=>{t(i.clientX)},e=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",e)};let s,n,r=!1;const l=i=>{i.preventDefault(),this._setDraggingStyle(!0),t(i.touches[0].clientX),r=!1},o=i=>{if(r){const t=i.touches[0].clientX-s,e=i.touches[0].clientY-n;Math.abs(t)>Math.abs(e)?l(i):(window.removeEventListener("touchmove",o),window.removeEventListener("touchend",a))}else i.preventDefault(),t(i.touches[0].clientX)},a=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",o),window.removeEventListener("touchend",a)},h=this._callOnFinishChange.bind(this);let d;this.$slider.addEventListener("mousedown",s=>{this._setDraggingStyle(!0),t(s.clientX),window.addEventListener("mousemove",i),window.addEventListener("mouseup",e)}),this.$slider.addEventListener("touchstart",t=>{t.touches.length>1||(this._hasScrollBar?(s=t.touches[0].clientX,n=t.touches[0].clientY,r=!0):l(t),window.addEventListener("touchmove",o),window.addEventListener("touchend",a))}),this.$slider.addEventListener("wheel",t=>{if(Math.abs(t.deltaX)this._max&&(t=this._max),t}_snapClampSetValue(t){this.setValue(this._clamp(this._snap(t)))}get _hasScrollBar(){const t=this.parent.root.$children;return t.scrollHeight>t.clientHeight}get _hasMin(){return void 0!==this._min}get _hasMax(){return void 0!==this._max}}class c extends t{constructor(t,i,e,s){super(t,i,e,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this._values=Array.isArray(s)?s:Object.values(s),this._names=Array.isArray(s)?s:Object.keys(s),this._names.forEach(t=>{const i=document.createElement("option");i.innerHTML=t,this.$select.appendChild(i)}),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.updateDisplay()}updateDisplay(){const t=this.getValue(),i=this._values.indexOf(t);return this.$select.selectedIndex=i,this.$display.innerHTML=-1===i?t:this._names[i],this}}class u extends t{constructor(t,i,e){super(t,i,e,"string"),this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",t=>{"Enter"===t.code&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}let p=!1;class g{constructor({parent:t,autoPlace:i=void 0===t,container:e,width:s,title:n="Controls",injectStyles:r=!0,touchStyles:l=!0}={}){if(this.parent=t,this.root=t?t.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",t=>{"Enter"!==t.code&&"Space"!==t.code||(t.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(n),l&&this.domElement.classList.add("allow-touch-styles"),this.parent)return this.parent.children.push(this),this.parent.folders.push(this),void this.parent.$children.appendChild(this.domElement);this.domElement.classList.add("root"),!p&&r&&(!function(t){const i=document.createElement("style");i.innerHTML=t;const e=document.querySelector("head link[rel=stylesheet], head style");e?document.head.insertBefore(i,e):document.head.appendChild(i)}('.lil-gui{--background-color:#1f1f1f;--text-color:#ebebeb;--title-background-color:#111;--title-text-color:#ebebeb;--widget-color:#424242;--hover-color:#4f4f4f;--focus-color:#595959;--number-color:#2cc9ff;--string-color:#a2db3c;--font-size:11px;--input-font-size:11px;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;--font-family-mono:Menlo,Monaco,Consolas,"Droid Sans Mono",monospace;--padding:4px;--spacing:4px;--widget-height:20px;--name-width:45%;--slider-knob-width:2px;--slider-input-width:27%;--color-input-width:27%;--slider-input-min-width:45px;--color-input-min-width:45px;--folder-indent:7px;--widget-padding:0 0 0 3px;--widget-border-radius:2px;--checkbox-size:calc(var(--widget-height)*0.75);--scrollbar-width:5px;background-color:var(--background-color);color:var(--text-color);font-family:var(--font-family);font-size:var(--font-size);font-style:normal;font-weight:400;line-height:1;text-align:left;touch-action:manipulation;user-select:none;-webkit-user-select:none}.lil-gui,.lil-gui *{box-sizing:border-box;margin:0;padding:0}.lil-gui.root{display:flex;flex-direction:column;width:var(--width,245px)}.lil-gui.root>.title{background:var(--title-background-color);color:var(--title-text-color)}.lil-gui.root>.children{overflow-x:hidden;overflow-y:auto}.lil-gui.root>.children::-webkit-scrollbar{background:var(--background-color);height:var(--scrollbar-width);width:var(--scrollbar-width)}.lil-gui.root>.children::-webkit-scrollbar-thumb{background:var(--focus-color);border-radius:var(--scrollbar-width)}.lil-gui.force-touch-styles{--widget-height:28px;--padding:6px;--spacing:6px;--font-size:13px;--input-font-size:16px;--folder-indent:10px;--scrollbar-width:7px;--slider-input-min-width:50px;--color-input-min-width:65px}.lil-gui.autoPlace{max-height:100%;position:fixed;right:15px;top:0;z-index:1001}.lil-gui .controller{align-items:center;display:flex;margin:var(--spacing) 0;padding:0 var(--padding)}.lil-gui .controller.disabled{opacity:.5}.lil-gui .controller.disabled,.lil-gui .controller.disabled *{pointer-events:none!important}.lil-gui .controller>.name{flex-shrink:0;line-height:var(--widget-height);min-width:var(--name-width);padding-right:var(--spacing);white-space:pre}.lil-gui .controller .widget{align-items:center;display:flex;min-height:var(--widget-height);position:relative;width:100%}.lil-gui .controller.string input{color:var(--string-color)}.lil-gui .controller.boolean .widget{cursor:pointer}.lil-gui .controller.color .display{border-radius:var(--widget-border-radius);height:var(--widget-height);position:relative;width:100%}.lil-gui .controller.color input[type=color]{cursor:pointer;height:100%;opacity:0;width:100%}.lil-gui .controller.color input[type=text]{flex-shrink:0;font-family:var(--font-family-mono);margin-left:var(--spacing);min-width:var(--color-input-min-width);width:var(--color-input-width)}.lil-gui .controller.option select{max-width:100%;opacity:0;position:absolute;width:100%}.lil-gui .controller.option .display{background:var(--widget-color);border-radius:var(--widget-border-radius);height:var(--widget-height);line-height:var(--widget-height);max-width:100%;overflow:hidden;padding-left:.55em;padding-right:1.75em;pointer-events:none;position:relative;word-break:break-all}.lil-gui .controller.option .display.active{background:var(--focus-color)}.lil-gui .controller.option .display:after{bottom:0;content:"↕";font-family:lil-gui;padding-right:.375em;position:absolute;right:0;top:0}.lil-gui .controller.option .widget,.lil-gui .controller.option select{cursor:pointer}.lil-gui .controller.number input{color:var(--number-color)}.lil-gui .controller.number.hasSlider input{flex-shrink:0;margin-left:var(--spacing);min-width:var(--slider-input-min-width);width:var(--slider-input-width)}.lil-gui .controller.number .slider{background-color:var(--widget-color);border-radius:var(--widget-border-radius);cursor:ew-resize;height:var(--widget-height);overflow:hidden;padding-right:var(--slider-knob-width);touch-action:pan-y;width:100%}.lil-gui .controller.number .slider.active{background-color:var(--focus-color)}.lil-gui .controller.number .slider.active .fill{opacity:.95}.lil-gui .controller.number .fill{border-right:var(--slider-knob-width) solid var(--number-color);box-sizing:content-box;height:100%}.lil-gui-dragging .lil-gui{--hover-color:var(--widget-color)}.lil-gui-dragging *{cursor:ew-resize!important}.lil-gui-dragging.lil-gui-vertical *{cursor:ns-resize!important}.lil-gui .title{--title-height:calc(var(--widget-height) + var(--spacing)*1.25);-webkit-tap-highlight-color:transparent;text-decoration-skip:objects;cursor:pointer;font-weight:600;height:var(--title-height);line-height:calc(var(--title-height) - 4px);outline:none;padding:0 var(--padding)}.lil-gui .title:before{content:"▾";display:inline-block;font-family:lil-gui;padding-right:2px}.lil-gui .title:active{background:var(--title-background-color);opacity:.75}.lil-gui.root>.title:focus{text-decoration:none!important}.lil-gui.closed>.title:before{content:"▸"}.lil-gui.closed>.children{opacity:0;transform:translateY(-7px)}.lil-gui.closed:not(.transition)>.children{display:none}.lil-gui.transition>.children{overflow:hidden;pointer-events:none;transition-duration:.3s;transition-property:height,opacity,transform;transition-timing-function:cubic-bezier(.2,.6,.35,1)}.lil-gui .children:empty:before{content:"Empty";display:block;font-style:italic;height:var(--widget-height);line-height:var(--widget-height);margin:var(--spacing) 0;opacity:.5;padding:0 var(--padding)}.lil-gui.root>.children>.lil-gui>.title{border-width:0;border-bottom:1px solid var(--widget-color);border-left:0 solid var(--widget-color);border-right:0 solid var(--widget-color);border-top:1px solid var(--widget-color);transition:border-color .3s}.lil-gui.root>.children>.lil-gui.closed>.title{border-bottom-color:transparent}.lil-gui+.controller{border-top:1px solid var(--widget-color);margin-top:0;padding-top:var(--spacing)}.lil-gui .lil-gui .lil-gui>.title{border:none}.lil-gui .lil-gui .lil-gui>.children{border:none;border-left:2px solid var(--widget-color);margin-left:var(--folder-indent)}.lil-gui .lil-gui .controller{border:none}.lil-gui input{-webkit-tap-highlight-color:transparent;background:var(--widget-color);border:0;border-radius:var(--widget-border-radius);color:var(--text-color);font-family:var(--font-family);font-size:var(--input-font-size);height:var(--widget-height);outline:none;width:100%}.lil-gui input:disabled{opacity:1}.lil-gui input[type=number],.lil-gui input[type=text]{padding:var(--widget-padding)}.lil-gui input[type=number]:focus,.lil-gui input[type=text]:focus{background:var(--focus-color)}.lil-gui input::-webkit-inner-spin-button,.lil-gui input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.lil-gui input[type=number]{-moz-appearance:textfield}.lil-gui input[type=checkbox]{appearance:none;-webkit-appearance:none;border-radius:var(--widget-border-radius);cursor:pointer;height:var(--checkbox-size);text-align:center;width:var(--checkbox-size)}.lil-gui input[type=checkbox]:checked:before{content:"✓";font-family:lil-gui;font-size:var(--checkbox-size);line-height:var(--checkbox-size)}.lil-gui button{-webkit-tap-highlight-color:transparent;background:var(--widget-color);border:1px solid var(--widget-color);border-radius:var(--widget-border-radius);color:var(--text-color);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size);height:var(--widget-height);line-height:calc(var(--widget-height) - 4px);outline:none;text-align:center;text-transform:none;width:100%}.lil-gui button:active{background:var(--focus-color)}@font-face{font-family:lil-gui;src:url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==") format("woff")}@media (pointer:coarse){.lil-gui.allow-touch-styles{--widget-height:28px;--padding:6px;--spacing:6px;--font-size:13px;--input-font-size:16px;--folder-indent:10px;--scrollbar-width:7px;--slider-input-min-width:50px;--color-input-min-width:65px}}@media (hover:hover){.lil-gui .controller.color .display:hover:before{border:1px solid #fff9;border-radius:var(--widget-border-radius);bottom:0;content:" ";display:block;left:0;position:absolute;right:0;top:0}.lil-gui .controller.option .display.focus{background:var(--focus-color)}.lil-gui .controller.option .widget:hover .display{background:var(--hover-color)}.lil-gui .controller.number .slider:hover{background-color:var(--hover-color)}body:not(.lil-gui-dragging) .lil-gui .title:hover{background:var(--title-background-color);opacity:.85}.lil-gui .title:focus{text-decoration:underline var(--focus-color)}.lil-gui input:hover{background:var(--hover-color)}.lil-gui input:active{background:var(--focus-color)}.lil-gui input[type=checkbox]:focus{box-shadow:inset 0 0 0 1px var(--focus-color)}.lil-gui button:hover{background:var(--hover-color);border-color:var(--hover-color)}.lil-gui button:focus{border-color:var(--focus-color)}}'),p=!0),e?e.appendChild(this.domElement):i&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),s&&this.domElement.style.setProperty("--width",s+"px"),this.domElement.addEventListener("keydown",t=>t.stopPropagation()),this.domElement.addEventListener("keyup",t=>t.stopPropagation())}add(t,e,s,n,r){if(Object(s)===s)return new c(this,t,e,s);const l=t[e];switch(typeof l){case"number":return new d(this,t,e,s,n,r);case"boolean":return new i(this,t,e);case"string":return new u(this,t,e);case"function":return new h(this,t,e)}console.error("gui.add failed\n\tproperty:",e,"\n\tobject:",t,"\n\tvalue:",l)}addColor(t,i,e=1){return new a(this,t,i,e)}addFolder(t){return new g({parent:this,title:t})}load(t,i=!0){return t.controllers&&this.controllers.forEach(i=>{i instanceof h||i._name in t.controllers&&i.load(t.controllers[i._name])}),i&&t.folders&&this.folders.forEach(i=>{i._title in t.folders&&i.load(t.folders[i._title])}),this}save(t=!0){const i={controllers:{},folders:{}};return this.controllers.forEach(t=>{if(!(t instanceof h)){if(t._name in i.controllers)throw new Error(`Cannot save GUI with duplicate property "${t._name}"`);i.controllers[t._name]=t.save()}}),t&&this.folders.forEach(t=>{if(t._title in i.folders)throw new Error(`Cannot save GUI with duplicate folder "${t._title}"`);i.folders[t._title]=t.save()}),i}open(t=!0){return this._closed=!t,this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("closed",this._closed),this}close(){return this.open(!1)}show(t=!0){return this._hidden=!t,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(t=!0){return this._closed=!t,this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{const i=this.$children.clientHeight;this.$children.style.height=i+"px",this.domElement.classList.add("transition");const e=t=>{t.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",e))};this.$children.addEventListener("transitionend",e);const s=t?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!t),requestAnimationFrame(()=>{this.$children.style.height=s+"px"})}),this}title(t){return this._title=t,this.$title.innerHTML=t,this}reset(t=!0){return(t?this.controllersRecursive():this.controllers).forEach(t=>t.reset()),this}onChange(t){return this._onChange=t,this}_callOnChange(t){this.parent&&this.parent._callOnChange(t),void 0!==this._onChange&&this._onChange.call(this,{object:t.object,property:t.property,value:t.getValue(),controller:t})}onFinishChange(t){return this._onFinishChange=t,this}_callOnFinishChange(t){this.parent&&this.parent._callOnFinishChange(t),void 0!==this._onFinishChange&&this._onFinishChange.call(this,{object:t.object,property:t.property,value:t.getValue(),controller:t})}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEach(t=>t.destroy())}controllersRecursive(){let t=Array.from(this.controllers);return this.folders.forEach(i=>{t=t.concat(i.controllersRecursive())}),t}foldersRecursive(){let t=Array.from(this.folders);return this.folders.forEach(i=>{t=t.concat(i.foldersRecursive())}),t}}export default g;export{i as BooleanController,a as ColorController,t as Controller,h as FunctionController,g as GUI,d as NumberController,c as OptionController,u as StringController}; diff --git a/node_modules/three/examples/jsm/libs/stats.module.js b/node_modules/three/examples/jsm/libs/stats.module.js new file mode 100644 index 0000000..0d372ba --- /dev/null +++ b/node_modules/three/examples/jsm/libs/stats.module.js @@ -0,0 +1,167 @@ +var Stats = function () { + + var mode = 0; + + var container = document.createElement( 'div' ); + container.style.cssText = 'position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000'; + container.addEventListener( 'click', function ( event ) { + + event.preventDefault(); + showPanel( ++ mode % container.children.length ); + + }, false ); + + // + + function addPanel( panel ) { + + container.appendChild( panel.dom ); + return panel; + + } + + function showPanel( id ) { + + for ( var i = 0; i < container.children.length; i ++ ) { + + container.children[ i ].style.display = i === id ? 'block' : 'none'; + + } + + mode = id; + + } + + // + + var beginTime = ( performance || Date ).now(), prevTime = beginTime, frames = 0; + + var fpsPanel = addPanel( new Stats.Panel( 'FPS', '#0ff', '#002' ) ); + var msPanel = addPanel( new Stats.Panel( 'MS', '#0f0', '#020' ) ); + + if ( self.performance && self.performance.memory ) { + + var memPanel = addPanel( new Stats.Panel( 'MB', '#f08', '#201' ) ); + + } + + showPanel( 0 ); + + return { + + REVISION: 16, + + dom: container, + + addPanel: addPanel, + showPanel: showPanel, + + begin: function () { + + beginTime = ( performance || Date ).now(); + + }, + + end: function () { + + frames ++; + + var time = ( performance || Date ).now(); + + msPanel.update( time - beginTime, 200 ); + + if ( time >= prevTime + 1000 ) { + + fpsPanel.update( ( frames * 1000 ) / ( time - prevTime ), 100 ); + + prevTime = time; + frames = 0; + + if ( memPanel ) { + + var memory = performance.memory; + memPanel.update( memory.usedJSHeapSize / 1048576, memory.jsHeapSizeLimit / 1048576 ); + + } + + } + + return time; + + }, + + update: function () { + + beginTime = this.end(); + + }, + + // Backwards Compatibility + + domElement: container, + setMode: showPanel + + }; + +}; + +Stats.Panel = function ( name, fg, bg ) { + + var min = Infinity, max = 0, round = Math.round; + var PR = round( window.devicePixelRatio || 1 ); + + var WIDTH = 80 * PR, HEIGHT = 48 * PR, + TEXT_X = 3 * PR, TEXT_Y = 2 * PR, + GRAPH_X = 3 * PR, GRAPH_Y = 15 * PR, + GRAPH_WIDTH = 74 * PR, GRAPH_HEIGHT = 30 * PR; + + var canvas = document.createElement( 'canvas' ); + canvas.width = WIDTH; + canvas.height = HEIGHT; + canvas.style.cssText = 'width:80px;height:48px'; + + var context = canvas.getContext( '2d' ); + context.font = 'bold ' + ( 9 * PR ) + 'px Helvetica,Arial,sans-serif'; + context.textBaseline = 'top'; + + context.fillStyle = bg; + context.fillRect( 0, 0, WIDTH, HEIGHT ); + + context.fillStyle = fg; + context.fillText( name, TEXT_X, TEXT_Y ); + context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT ); + + context.fillStyle = bg; + context.globalAlpha = 0.9; + context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT ); + + return { + + dom: canvas, + + update: function ( value, maxValue ) { + + min = Math.min( min, value ); + max = Math.max( max, value ); + + context.fillStyle = bg; + context.globalAlpha = 1; + context.fillRect( 0, 0, WIDTH, GRAPH_Y ); + context.fillStyle = fg; + context.fillText( round( value ) + ' ' + name + ' (' + round( min ) + '-' + round( max ) + ')', TEXT_X, TEXT_Y ); + + context.drawImage( canvas, GRAPH_X + PR, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT, GRAPH_X, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT ); + + context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, GRAPH_HEIGHT ); + + context.fillStyle = bg; + context.globalAlpha = 0.9; + context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, round( ( 1 - ( value / maxValue ) ) * GRAPH_HEIGHT ) ); + + } + + }; + +}; + +export default Stats; diff --git a/src/main.js b/src/main.js index b2e6a70..68735b4 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,5 @@ import * as THREE from '../node_modules/three/build/three.module.js'; -import { GUI } from '../node_modules/three/examples/jsm/libs/dat.gui.module.js'; +import { GUI } from '../node_modules/three/examples/jsm/libs/lil-gui.module.min.js'; import { SoftBody, Grabber } from './Softbody.js'; import { SoftBodyGPU, GPUGrabber } from './SoftbodyGPU.js'; import { dragonTetVerts, dragonTetIds, dragonTetEdgeIds, dragonAttachedVerts, dragonAttachedTriIds } from './Dragon.js'; From df8bf93e92587f5e9a837396925b6a5e24db8b10 Mon Sep 17 00:00:00 2001 From: Johnathon Selstad Date: Thu, 24 Feb 2022 19:14:09 -0800 Subject: [PATCH 4/4] Fix Githack Again --- .gitignore | 8 +- .../examples/jsm/controls/ArcballControls.js | 3199 +++++++++++++++++ .../examples/jsm/controls/DragControls.js | 213 ++ .../jsm/controls/FirstPersonControls.js | 332 ++ .../examples/jsm/controls/FlyControls.js | 292 ++ .../examples/jsm/controls/OrbitControls.js | 1294 +++++++ .../jsm/controls/PointerLockControls.js | 162 + .../jsm/controls/TrackballControls.js | 808 +++++ .../jsm/controls/TransformControls.js | 1556 ++++++++ 9 files changed, 7860 insertions(+), 4 deletions(-) create mode 100644 node_modules/three/examples/jsm/controls/ArcballControls.js create mode 100644 node_modules/three/examples/jsm/controls/DragControls.js create mode 100644 node_modules/three/examples/jsm/controls/FirstPersonControls.js create mode 100644 node_modules/three/examples/jsm/controls/FlyControls.js create mode 100644 node_modules/three/examples/jsm/controls/OrbitControls.js create mode 100644 node_modules/three/examples/jsm/controls/PointerLockControls.js create mode 100644 node_modules/three/examples/jsm/controls/TrackballControls.js create mode 100644 node_modules/three/examples/jsm/controls/TransformControls.js diff --git a/.gitignore b/.gitignore index 8f36bb7..97aa141 100644 --- a/.gitignore +++ b/.gitignore @@ -42,10 +42,10 @@ jspm_packages/ !node_modules/three/build/* # Three.js Controls !node_modules/three/examples/*/ -!node_modules/three/examples/js/ -!node_modules/three/examples/js/*/ -!node_modules/three/examples/js/controls/ -!node_modules/three/examples/js/controls/* +!node_modules/three/examples/jsm/ +!node_modules/three/examples/jsm/*/ +!node_modules/three/examples/jsm/controls/ +!node_modules/three/examples/jsm/controls/* !node_modules/three/examples/jsm/libs/ !node_modules/three/examples/jsm/libs/* diff --git a/node_modules/three/examples/jsm/controls/ArcballControls.js b/node_modules/three/examples/jsm/controls/ArcballControls.js new file mode 100644 index 0000000..4d68ca7 --- /dev/null +++ b/node_modules/three/examples/jsm/controls/ArcballControls.js @@ -0,0 +1,3199 @@ +import { + GridHelper, + EllipseCurve, + BufferGeometry, + Line, + LineBasicMaterial, + Raycaster, + Group, + Box3, + Sphere, + Quaternion, + Vector2, + Vector3, + Matrix4, + MathUtils, + EventDispatcher +} from 'three'; + +//trackball state +const STATE = { + + IDLE: Symbol(), + ROTATE: Symbol(), + PAN: Symbol(), + SCALE: Symbol(), + FOV: Symbol(), + FOCUS: Symbol(), + ZROTATE: Symbol(), + TOUCH_MULTI: Symbol(), + ANIMATION_FOCUS: Symbol(), + ANIMATION_ROTATE: Symbol() + +}; + +const INPUT = { + + NONE: Symbol(), + ONE_FINGER: Symbol(), + ONE_FINGER_SWITCHED: Symbol(), + TWO_FINGER: Symbol(), + MULT_FINGER: Symbol(), + CURSOR: Symbol() + +}; + +//cursor center coordinates +const _center = { + + x: 0, + y: 0 + +}; + +//transformation matrices for gizmos and camera +const _transformation = { + + camera: new Matrix4(), + gizmos: new Matrix4() + +}; + +//events +const _changeEvent = { type: 'change' }; +const _startEvent = { type: 'start' }; +const _endEvent = { type: 'end' }; + +const _raycaster = new Raycaster(); +const _offset = new Vector3(); + +const _gizmoMatrixStateTemp = new Matrix4(); +const _cameraMatrixStateTemp = new Matrix4(); +const _scalePointTemp = new Vector3(); +/** + * + * @param {Camera} camera Virtual camera used in the scene + * @param {HTMLElement} domElement Renderer's dom element + * @param {Scene} scene The scene to be rendered + */ +class ArcballControls extends EventDispatcher { + + constructor( camera, domElement, scene = null ) { + + super(); + this.camera = null; + this.domElement = domElement; + this.scene = scene; + this.target = new Vector3(); + this._currentTarget = new Vector3(); + this.radiusFactor = 0.67; + + this.mouseActions = []; + this._mouseOp = null; + + + //global vectors and matrices that are used in some operations to avoid creating new objects every time (e.g. every time cursor moves) + this._v2_1 = new Vector2(); + this._v3_1 = new Vector3(); + this._v3_2 = new Vector3(); + + this._m4_1 = new Matrix4(); + this._m4_2 = new Matrix4(); + + this._quat = new Quaternion(); + + //transformation matrices + this._translationMatrix = new Matrix4(); //matrix for translation operation + this._rotationMatrix = new Matrix4(); //matrix for rotation operation + this._scaleMatrix = new Matrix4(); //matrix for scaling operation + + this._rotationAxis = new Vector3(); //axis for rotate operation + + + //camera state + this._cameraMatrixState = new Matrix4(); + this._cameraProjectionState = new Matrix4(); + + this._fovState = 1; + this._upState = new Vector3(); + this._zoomState = 1; + this._nearPos = 0; + this._farPos = 0; + + this._gizmoMatrixState = new Matrix4(); + + //initial values + this._up0 = new Vector3(); + this._zoom0 = 1; + this._fov0 = 0; + this._initialNear = 0; + this._nearPos0 = 0; + this._initialFar = 0; + this._farPos0 = 0; + this._cameraMatrixState0 = new Matrix4(); + this._gizmoMatrixState0 = new Matrix4(); + + //pointers array + this._button = - 1; + this._touchStart = []; + this._touchCurrent = []; + this._input = INPUT.NONE; + + //two fingers touch interaction + this._switchSensibility = 32; //minimum movement to be performed to fire single pan start after the second finger has been released + this._startFingerDistance = 0; //distance between two fingers + this._currentFingerDistance = 0; + this._startFingerRotation = 0; //amount of rotation performed with two fingers + this._currentFingerRotation = 0; + + //double tap + this._devPxRatio = 0; + this._downValid = true; + this._nclicks = 0; + this._downEvents = []; + this._downStart = 0; //pointerDown time + this._clickStart = 0; //first click time + this._maxDownTime = 250; + this._maxInterval = 300; + this._posThreshold = 24; + this._movementThreshold = 24; + + //cursor positions + this._currentCursorPosition = new Vector3(); + this._startCursorPosition = new Vector3(); + + //grid + this._grid = null; //grid to be visualized during pan operation + this._gridPosition = new Vector3(); + + //gizmos + this._gizmos = new Group(); + this._curvePts = 128; + + + //animations + this._timeStart = - 1; //initial time + this._animationId = - 1; + + //focus animation + this.focusAnimationTime = 500; //duration of focus animation in ms + + //rotate animation + this._timePrev = 0; //time at which previous rotate operation has been detected + this._timeCurrent = 0; //time at which current rotate operation has been detected + this._anglePrev = 0; //angle of previous rotation + this._angleCurrent = 0; //angle of current rotation + this._cursorPosPrev = new Vector3(); //cursor position when previous rotate operation has been detected + this._cursorPosCurr = new Vector3();//cursor position when current rotate operation has been detected + this._wPrev = 0; //angular velocity of the previous rotate operation + this._wCurr = 0; //angular velocity of the current rotate operation + + + //parameters + this.adjustNearFar = false; + this.scaleFactor = 1.1; //zoom/distance multiplier + this.dampingFactor = 25; + this.wMax = 20; //maximum angular velocity allowed + this.enableAnimations = true; //if animations should be performed + this.enableGrid = false; //if grid should be showed during pan operation + this.cursorZoom = false; //if wheel zoom should be cursor centered + this.minFov = 5; + this.maxFov = 90; + + this.enabled = true; + this.enablePan = true; + this.enableRotate = true; + this.enableZoom = true; + this.enableGizmos = true; + + this.minDistance = 0; + this.maxDistance = Infinity; + this.minZoom = 0; + this.maxZoom = Infinity; + + //trackball parameters + this._tbRadius = 1; + + //FSA + this._state = STATE.IDLE; + + this.setCamera( camera ); + + if ( this.scene != null ) { + + this.scene.add( this._gizmos ); + + } + + this.domElement.style.touchAction = 'none'; + this._devPxRatio = window.devicePixelRatio; + + this.initializeMouseActions(); + + this.domElement.addEventListener( 'contextmenu', this.onContextMenu ); + this.domElement.addEventListener( 'wheel', this.onWheel ); + this.domElement.addEventListener( 'pointerdown', this.onPointerDown ); + this.domElement.addEventListener( 'pointercancel', this.onPointerCancel ); + + window.addEventListener( 'resize', this.onWindowResize ); + + } + + //listeners + + onWindowResize = () => { + + const scale = ( this._gizmos.scale.x + this._gizmos.scale.y + this._gizmos.scale.z ) / 3; + this._tbRadius = this.calculateTbRadius( this.camera ); + + const newRadius = this._tbRadius / scale; + const curve = new EllipseCurve( 0, 0, newRadius, newRadius ); + const points = curve.getPoints( this._curvePts ); + const curveGeometry = new BufferGeometry().setFromPoints( points ); + + + for ( const gizmo in this._gizmos.children ) { + + this._gizmos.children[ gizmo ].geometry = curveGeometry; + + } + + this.dispatchEvent( _changeEvent ); + + }; + + onContextMenu = ( event ) => { + + if ( ! this.enabled ) { + + return; + + } + + for ( let i = 0; i < this.mouseActions.length; i ++ ) { + + if ( this.mouseActions[ i ].mouse == 2 ) { + + //prevent only if button 2 is actually used + event.preventDefault(); + break; + + } + + } + + }; + + onPointerCancel = () => { + + this._touchStart.splice( 0, this._touchStart.length ); + this._touchCurrent.splice( 0, this._touchCurrent.length ); + this._input = INPUT.NONE; + + }; + + onPointerDown = ( event ) => { + + if ( event.button == 0 && event.isPrimary ) { + + this._downValid = true; + this._downEvents.push( event ); + this._downStart = performance.now(); + + } else { + + this._downValid = false; + + } + + if ( event.pointerType == 'touch' && this._input != INPUT.CURSOR ) { + + this._touchStart.push( event ); + this._touchCurrent.push( event ); + + switch ( this._input ) { + + case INPUT.NONE: + + //singleStart + this._input = INPUT.ONE_FINGER; + this.onSinglePanStart( event, 'ROTATE' ); + + window.addEventListener( 'pointermove', this.onPointerMove ); + window.addEventListener( 'pointerup', this.onPointerUp ); + + break; + + case INPUT.ONE_FINGER: + case INPUT.ONE_FINGER_SWITCHED: + + //doubleStart + this._input = INPUT.TWO_FINGER; + + this.onRotateStart(); + this.onPinchStart(); + this.onDoublePanStart(); + + break; + + case INPUT.TWO_FINGER: + + //multipleStart + this._input = INPUT.MULT_FINGER; + this.onTriplePanStart( event ); + break; + + } + + } else if ( event.pointerType != 'touch' && this._input == INPUT.NONE ) { + + let modifier = null; + + if ( event.ctrlKey || event.metaKey ) { + + modifier = 'CTRL'; + + } else if ( event.shiftKey ) { + + modifier = 'SHIFT'; + + } + + this._mouseOp = this.getOpFromAction( event.button, modifier ); + if ( this._mouseOp != null ) { + + window.addEventListener( 'pointermove', this.onPointerMove ); + window.addEventListener( 'pointerup', this.onPointerUp ); + + //singleStart + this._input = INPUT.CURSOR; + this._button = event.button; + this.onSinglePanStart( event, this._mouseOp ); + + } + + } + + }; + + onPointerMove = ( event ) => { + + if ( event.pointerType == 'touch' && this._input != INPUT.CURSOR ) { + + switch ( this._input ) { + + case INPUT.ONE_FINGER: + + //singleMove + this.updateTouchEvent( event ); + + this.onSinglePanMove( event, STATE.ROTATE ); + break; + + case INPUT.ONE_FINGER_SWITCHED: + + const movement = this.calculatePointersDistance( this._touchCurrent[ 0 ], event ) * this._devPxRatio; + + if ( movement >= this._switchSensibility ) { + + //singleMove + this._input = INPUT.ONE_FINGER; + this.updateTouchEvent( event ); + + this.onSinglePanStart( event, 'ROTATE' ); + break; + + } + + break; + + case INPUT.TWO_FINGER: + + //rotate/pan/pinchMove + this.updateTouchEvent( event ); + + this.onRotateMove(); + this.onPinchMove(); + this.onDoublePanMove(); + + break; + + case INPUT.MULT_FINGER: + + //multMove + this.updateTouchEvent( event ); + + this.onTriplePanMove( event ); + break; + + } + + } else if ( event.pointerType != 'touch' && this._input == INPUT.CURSOR ) { + + let modifier = null; + + if ( event.ctrlKey || event.metaKey ) { + + modifier = 'CTRL'; + + } else if ( event.shiftKey ) { + + modifier = 'SHIFT'; + + } + + const mouseOpState = this.getOpStateFromAction( this._button, modifier ); + + if ( mouseOpState != null ) { + + this.onSinglePanMove( event, mouseOpState ); + + } + + } + + //checkDistance + if ( this._downValid ) { + + const movement = this.calculatePointersDistance( this._downEvents[ this._downEvents.length - 1 ], event ) * this._devPxRatio; + if ( movement > this._movementThreshold ) { + + this._downValid = false; + + } + + } + + }; + + onPointerUp = ( event ) => { + + if ( event.pointerType == 'touch' && this._input != INPUT.CURSOR ) { + + const nTouch = this._touchCurrent.length; + + for ( let i = 0; i < nTouch; i ++ ) { + + if ( this._touchCurrent[ i ].pointerId == event.pointerId ) { + + this._touchCurrent.splice( i, 1 ); + this._touchStart.splice( i, 1 ); + break; + + } + + } + + switch ( this._input ) { + + case INPUT.ONE_FINGER: + case INPUT.ONE_FINGER_SWITCHED: + + //singleEnd + window.removeEventListener( 'pointermove', this.onPointerMove ); + window.removeEventListener( 'pointerup', this.onPointerUp ); + + this._input = INPUT.NONE; + this.onSinglePanEnd(); + + break; + + case INPUT.TWO_FINGER: + + //doubleEnd + this.onDoublePanEnd( event ); + this.onPinchEnd( event ); + this.onRotateEnd( event ); + + //switching to singleStart + this._input = INPUT.ONE_FINGER_SWITCHED; + + break; + + case INPUT.MULT_FINGER: + + if ( this._touchCurrent.length == 0 ) { + + window.removeEventListener( 'pointermove', this.onPointerMove ); + window.removeEventListener( 'pointerup', this.onPointerUp ); + + //multCancel + this._input = INPUT.NONE; + this.onTriplePanEnd(); + + } + + break; + + } + + } else if ( event.pointerType != 'touch' && this._input == INPUT.CURSOR ) { + + window.removeEventListener( 'pointermove', this.onPointerMove ); + window.removeEventListener( 'pointerup', this.onPointerUp ); + + this._input = INPUT.NONE; + this.onSinglePanEnd(); + this._button = - 1; + + } + + if ( event.isPrimary ) { + + if ( this._downValid ) { + + const downTime = event.timeStamp - this._downEvents[ this._downEvents.length - 1 ].timeStamp; + + if ( downTime <= this._maxDownTime ) { + + if ( this._nclicks == 0 ) { + + //first valid click detected + this._nclicks = 1; + this._clickStart = performance.now(); + + } else { + + const clickInterval = event.timeStamp - this._clickStart; + const movement = this.calculatePointersDistance( this._downEvents[ 1 ], this._downEvents[ 0 ] ) * this._devPxRatio; + + if ( clickInterval <= this._maxInterval && movement <= this._posThreshold ) { + + //second valid click detected + //fire double tap and reset values + this._nclicks = 0; + this._downEvents.splice( 0, this._downEvents.length ); + this.onDoubleTap( event ); + + } else { + + //new 'first click' + this._nclicks = 1; + this._downEvents.shift(); + this._clickStart = performance.now(); + + } + + } + + } else { + + this._downValid = false; + this._nclicks = 0; + this._downEvents.splice( 0, this._downEvents.length ); + + } + + } else { + + this._nclicks = 0; + this._downEvents.splice( 0, this._downEvents.length ); + + } + + } + + }; + + onWheel = ( event ) => { + + if ( this.enabled && this.enableZoom ) { + + let modifier = null; + + if ( event.ctrlKey || event.metaKey ) { + + modifier = 'CTRL'; + + } else if ( event.shiftKey ) { + + modifier = 'SHIFT'; + + } + + const mouseOp = this.getOpFromAction( 'WHEEL', modifier ); + + if ( mouseOp != null ) { + + event.preventDefault(); + this.dispatchEvent( _startEvent ); + + const notchDeltaY = 125; //distance of one notch of mouse wheel + let sgn = event.deltaY / notchDeltaY; + + let size = 1; + + if ( sgn > 0 ) { + + size = 1 / this.scaleFactor; + + } else if ( sgn < 0 ) { + + size = this.scaleFactor; + + } + + switch ( mouseOp ) { + + case 'ZOOM': + + this.updateTbState( STATE.SCALE, true ); + + if ( sgn > 0 ) { + + size = 1 / ( Math.pow( this.scaleFactor, sgn ) ); + + } else if ( sgn < 0 ) { + + size = Math.pow( this.scaleFactor, - sgn ); + + } + + if ( this.cursorZoom && this.enablePan ) { + + let scalePoint; + + if ( this.camera.isOrthographicCamera ) { + + scalePoint = this.unprojectOnTbPlane( this.camera, event.clientX, event.clientY, this.domElement ).applyQuaternion( this.camera.quaternion ).multiplyScalar( 1 / this.camera.zoom ).add( this._gizmos.position ); + + } else if ( this.camera.isPerspectiveCamera ) { + + scalePoint = this.unprojectOnTbPlane( this.camera, event.clientX, event.clientY, this.domElement ).applyQuaternion( this.camera.quaternion ).add( this._gizmos.position ); + + } + + this.applyTransformMatrix( this.scale( size, scalePoint ) ); + + } else { + + this.applyTransformMatrix( this.scale( size, this._gizmos.position ) ); + + } + + if ( this._grid != null ) { + + this.disposeGrid(); + this.drawGrid(); + + } + + this.updateTbState( STATE.IDLE, false ); + + this.dispatchEvent( _changeEvent ); + this.dispatchEvent( _endEvent ); + + break; + + case 'FOV': + + if ( this.camera.isPerspectiveCamera ) { + + this.updateTbState( STATE.FOV, true ); + + + //Vertigo effect + + // fov / 2 + // |\ + // | \ + // | \ + // x | \ + // | \ + // | \ + // | _ _ _\ + // y + + //check for iOs shift shortcut + if ( event.deltaX != 0 ) { + + sgn = event.deltaX / notchDeltaY; + + size = 1; + + if ( sgn > 0 ) { + + size = 1 / ( Math.pow( this.scaleFactor, sgn ) ); + + } else if ( sgn < 0 ) { + + size = Math.pow( this.scaleFactor, - sgn ); + + } + + } + + this._v3_1.setFromMatrixPosition( this._cameraMatrixState ); + const x = this._v3_1.distanceTo( this._gizmos.position ); + let xNew = x / size; //distance between camera and gizmos if scale(size, scalepoint) would be performed + + //check min and max distance + xNew = MathUtils.clamp( xNew, this.minDistance, this.maxDistance ); + + const y = x * Math.tan( MathUtils.DEG2RAD * this.camera.fov * 0.5 ); + + //calculate new fov + let newFov = MathUtils.RAD2DEG * ( Math.atan( y / xNew ) * 2 ); + + //check min and max fov + if ( newFov > this.maxFov ) { + + newFov = this.maxFov; + + } else if ( newFov < this.minFov ) { + + newFov = this.minFov; + + } + + const newDistance = y / Math.tan( MathUtils.DEG2RAD * ( newFov / 2 ) ); + size = x / newDistance; + + this.setFov( newFov ); + this.applyTransformMatrix( this.scale( size, this._gizmos.position, false ) ); + + } + + if ( this._grid != null ) { + + this.disposeGrid(); + this.drawGrid(); + + } + + this.updateTbState( STATE.IDLE, false ); + + this.dispatchEvent( _changeEvent ); + this.dispatchEvent( _endEvent ); + + break; + + } + + } + + } + + }; + + onSinglePanStart = ( event, operation ) => { + + if ( this.enabled ) { + + this.dispatchEvent( _startEvent ); + + this.setCenter( event.clientX, event.clientY ); + + switch ( operation ) { + + case 'PAN': + + if ( ! this.enablePan ) { + + return; + + } + + if ( this._animationId != - 1 ) { + + cancelAnimationFrame( this._animationId ); + this._animationId = - 1; + this._timeStart = - 1; + + this.activateGizmos( false ); + this.dispatchEvent( _changeEvent ); + + } + + this.updateTbState( STATE.PAN, true ); + this._startCursorPosition.copy( this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement ) ); + if ( this.enableGrid ) { + + this.drawGrid(); + this.dispatchEvent( _changeEvent ); + + } + + break; + + case 'ROTATE': + + if ( ! this.enableRotate ) { + + return; + + } + + if ( this._animationId != - 1 ) { + + cancelAnimationFrame( this._animationId ); + this._animationId = - 1; + this._timeStart = - 1; + + } + + this.updateTbState( STATE.ROTATE, true ); + this._startCursorPosition.copy( this.unprojectOnTbSurface( this.camera, _center.x, _center.y, this.domElement, this._tbRadius ) ); + this.activateGizmos( true ); + if ( this.enableAnimations ) { + + this._timePrev = this._timeCurrent = performance.now(); + this._angleCurrent = this._anglePrev = 0; + this._cursorPosPrev.copy( this._startCursorPosition ); + this._cursorPosCurr.copy( this._cursorPosPrev ); + this._wCurr = 0; + this._wPrev = this._wCurr; + + } + + this.dispatchEvent( _changeEvent ); + break; + + case 'FOV': + + if ( ! this.camera.isPerspectiveCamera || ! this.enableZoom ) { + + return; + + } + + if ( this._animationId != - 1 ) { + + cancelAnimationFrame( this._animationId ); + this._animationId = - 1; + this._timeStart = - 1; + + this.activateGizmos( false ); + this.dispatchEvent( _changeEvent ); + + } + + this.updateTbState( STATE.FOV, true ); + this._startCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + this._currentCursorPosition.copy( this._startCursorPosition ); + break; + + case 'ZOOM': + + if ( ! this.enableZoom ) { + + return; + + } + + if ( this._animationId != - 1 ) { + + cancelAnimationFrame( this._animationId ); + this._animationId = - 1; + this._timeStart = - 1; + + this.activateGizmos( false ); + this.dispatchEvent( _changeEvent ); + + } + + this.updateTbState( STATE.SCALE, true ); + this._startCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + this._currentCursorPosition.copy( this._startCursorPosition ); + break; + + } + + } + + }; + + onSinglePanMove = ( event, opState ) => { + + if ( this.enabled ) { + + const restart = opState != this._state; + this.setCenter( event.clientX, event.clientY ); + + switch ( opState ) { + + case STATE.PAN: + + if ( this.enablePan ) { + + if ( restart ) { + + //switch to pan operation + + this.dispatchEvent( _endEvent ); + this.dispatchEvent( _startEvent ); + + this.updateTbState( opState, true ); + this._startCursorPosition.copy( this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement ) ); + if ( this.enableGrid ) { + + this.drawGrid(); + + } + + this.activateGizmos( false ); + + } else { + + //continue with pan operation + this._currentCursorPosition.copy( this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement ) ); + this.applyTransformMatrix( this.pan( this._startCursorPosition, this._currentCursorPosition ) ); + + } + + } + + break; + + case STATE.ROTATE: + + if ( this.enableRotate ) { + + if ( restart ) { + + //switch to rotate operation + + this.dispatchEvent( _endEvent ); + this.dispatchEvent( _startEvent ); + + this.updateTbState( opState, true ); + this._startCursorPosition.copy( this.unprojectOnTbSurface( this.camera, _center.x, _center.y, this.domElement, this._tbRadius ) ); + + if ( this.enableGrid ) { + + this.disposeGrid(); + + } + + this.activateGizmos( true ); + + } else { + + //continue with rotate operation + this._currentCursorPosition.copy( this.unprojectOnTbSurface( this.camera, _center.x, _center.y, this.domElement, this._tbRadius ) ); + + const distance = this._startCursorPosition.distanceTo( this._currentCursorPosition ); + const angle = this._startCursorPosition.angleTo( this._currentCursorPosition ); + const amount = Math.max( distance / this._tbRadius, angle ); //effective rotation angle + + this.applyTransformMatrix( this.rotate( this.calculateRotationAxis( this._startCursorPosition, this._currentCursorPosition ), amount ) ); + + if ( this.enableAnimations ) { + + this._timePrev = this._timeCurrent; + this._timeCurrent = performance.now(); + this._anglePrev = this._angleCurrent; + this._angleCurrent = amount; + this._cursorPosPrev.copy( this._cursorPosCurr ); + this._cursorPosCurr.copy( this._currentCursorPosition ); + this._wPrev = this._wCurr; + this._wCurr = this.calculateAngularSpeed( this._anglePrev, this._angleCurrent, this._timePrev, this._timeCurrent ); + + } + + } + + } + + break; + + case STATE.SCALE: + + if ( this.enableZoom ) { + + if ( restart ) { + + //switch to zoom operation + + this.dispatchEvent( _endEvent ); + this.dispatchEvent( _startEvent ); + + this.updateTbState( opState, true ); + this._startCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + this._currentCursorPosition.copy( this._startCursorPosition ); + + if ( this.enableGrid ) { + + this.disposeGrid(); + + } + + this.activateGizmos( false ); + + } else { + + //continue with zoom operation + const screenNotches = 8; //how many wheel notches corresponds to a full screen pan + this._currentCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + + const movement = this._currentCursorPosition.y - this._startCursorPosition.y; + + let size = 1; + + if ( movement < 0 ) { + + size = 1 / ( Math.pow( this.scaleFactor, - movement * screenNotches ) ); + + } else if ( movement > 0 ) { + + size = Math.pow( this.scaleFactor, movement * screenNotches ); + + } + + this.applyTransformMatrix( this.scale( size, this._gizmos.position ) ); + + } + + } + + break; + + case STATE.FOV: + + if ( this.enableZoom && this.camera.isPerspectiveCamera ) { + + if ( restart ) { + + //switch to fov operation + + this.dispatchEvent( _endEvent ); + this.dispatchEvent( _startEvent ); + + this.updateTbState( opState, true ); + this._startCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + this._currentCursorPosition.copy( this._startCursorPosition ); + + if ( this.enableGrid ) { + + this.disposeGrid(); + + } + + this.activateGizmos( false ); + + } else { + + //continue with fov operation + const screenNotches = 8; //how many wheel notches corresponds to a full screen pan + this._currentCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + + const movement = this._currentCursorPosition.y - this._startCursorPosition.y; + + let size = 1; + + if ( movement < 0 ) { + + size = 1 / ( Math.pow( this.scaleFactor, - movement * screenNotches ) ); + + } else if ( movement > 0 ) { + + size = Math.pow( this.scaleFactor, movement * screenNotches ); + + } + + this._v3_1.setFromMatrixPosition( this._cameraMatrixState ); + const x = this._v3_1.distanceTo( this._gizmos.position ); + let xNew = x / size; //distance between camera and gizmos if scale(size, scalepoint) would be performed + + //check min and max distance + xNew = MathUtils.clamp( xNew, this.minDistance, this.maxDistance ); + + const y = x * Math.tan( MathUtils.DEG2RAD * this._fovState * 0.5 ); + + //calculate new fov + let newFov = MathUtils.RAD2DEG * ( Math.atan( y / xNew ) * 2 ); + + //check min and max fov + newFov = MathUtils.clamp( newFov, this.minFov, this.maxFov ); + + const newDistance = y / Math.tan( MathUtils.DEG2RAD * ( newFov / 2 ) ); + size = x / newDistance; + this._v3_2.setFromMatrixPosition( this._gizmoMatrixState ); + + this.setFov( newFov ); + this.applyTransformMatrix( this.scale( size, this._v3_2, false ) ); + + //adjusting distance + _offset.copy( this._gizmos.position ).sub( this.camera.position ).normalize().multiplyScalar( newDistance / x ); + this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z ); + + } + + } + + break; + + } + + this.dispatchEvent( _changeEvent ); + + } + + }; + + onSinglePanEnd = () => { + + if ( this._state == STATE.ROTATE ) { + + + if ( ! this.enableRotate ) { + + return; + + } + + if ( this.enableAnimations ) { + + //perform rotation animation + const deltaTime = ( performance.now() - this._timeCurrent ); + if ( deltaTime < 120 ) { + + const w = Math.abs( ( this._wPrev + this._wCurr ) / 2 ); + + const self = this; + this._animationId = window.requestAnimationFrame( function ( t ) { + + self.updateTbState( STATE.ANIMATION_ROTATE, true ); + const rotationAxis = self.calculateRotationAxis( self._cursorPosPrev, self._cursorPosCurr ); + + self.onRotationAnim( t, rotationAxis, Math.min( w, self.wMax ) ); + + } ); + + } else { + + //cursor has been standing still for over 120 ms since last movement + this.updateTbState( STATE.IDLE, false ); + this.activateGizmos( false ); + this.dispatchEvent( _changeEvent ); + + } + + } else { + + this.updateTbState( STATE.IDLE, false ); + this.activateGizmos( false ); + this.dispatchEvent( _changeEvent ); + + } + + } else if ( this._state == STATE.PAN || this._state == STATE.IDLE ) { + + this.updateTbState( STATE.IDLE, false ); + + if ( this.enableGrid ) { + + this.disposeGrid(); + + } + + this.activateGizmos( false ); + this.dispatchEvent( _changeEvent ); + + + } + + this.dispatchEvent( _endEvent ); + + }; + + onDoubleTap = ( event ) => { + + if ( this.enabled && this.enablePan && this.scene != null ) { + + this.dispatchEvent( _startEvent ); + + this.setCenter( event.clientX, event.clientY ); + const hitP = this.unprojectOnObj( this.getCursorNDC( _center.x, _center.y, this.domElement ), this.camera ); + + if ( hitP != null && this.enableAnimations ) { + + const self = this; + if ( this._animationId != - 1 ) { + + window.cancelAnimationFrame( this._animationId ); + + } + + this._timeStart = - 1; + this._animationId = window.requestAnimationFrame( function ( t ) { + + self.updateTbState( STATE.ANIMATION_FOCUS, true ); + self.onFocusAnim( t, hitP, self._cameraMatrixState, self._gizmoMatrixState ); + + } ); + + } else if ( hitP != null && ! this.enableAnimations ) { + + this.updateTbState( STATE.FOCUS, true ); + this.focus( hitP, this.scaleFactor ); + this.updateTbState( STATE.IDLE, false ); + this.dispatchEvent( _changeEvent ); + + } + + } + + this.dispatchEvent( _endEvent ); + + }; + + onDoublePanStart = () => { + + if ( this.enabled && this.enablePan ) { + + this.dispatchEvent( _startEvent ); + + this.updateTbState( STATE.PAN, true ); + + this.setCenter( ( this._touchCurrent[ 0 ].clientX + this._touchCurrent[ 1 ].clientX ) / 2, ( this._touchCurrent[ 0 ].clientY + this._touchCurrent[ 1 ].clientY ) / 2 ); + this._startCursorPosition.copy( this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement, true ) ); + this._currentCursorPosition.copy( this._startCursorPosition ); + + this.activateGizmos( false ); + + } + + }; + + onDoublePanMove = () => { + + if ( this.enabled && this.enablePan ) { + + this.setCenter( ( this._touchCurrent[ 0 ].clientX + this._touchCurrent[ 1 ].clientX ) / 2, ( this._touchCurrent[ 0 ].clientY + this._touchCurrent[ 1 ].clientY ) / 2 ); + + if ( this._state != STATE.PAN ) { + + this.updateTbState( STATE.PAN, true ); + this._startCursorPosition.copy( this._currentCursorPosition ); + + } + + this._currentCursorPosition.copy( this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement, true ) ); + this.applyTransformMatrix( this.pan( this._startCursorPosition, this._currentCursorPosition, true ) ); + this.dispatchEvent( _changeEvent ); + + } + + }; + + onDoublePanEnd = () => { + + this.updateTbState( STATE.IDLE, false ); + this.dispatchEvent( _endEvent ); + + }; + + + onRotateStart = () => { + + if ( this.enabled && this.enableRotate ) { + + this.dispatchEvent( _startEvent ); + + this.updateTbState( STATE.ZROTATE, true ); + + //this._startFingerRotation = event.rotation; + + this._startFingerRotation = this.getAngle( this._touchCurrent[ 1 ], this._touchCurrent[ 0 ] ) + this.getAngle( this._touchStart[ 1 ], this._touchStart[ 0 ] ); + this._currentFingerRotation = this._startFingerRotation; + + this.camera.getWorldDirection( this._rotationAxis ); //rotation axis + + if ( ! this.enablePan && ! this.enableZoom ) { + + this.activateGizmos( true ); + + } + + } + + }; + + onRotateMove = () => { + + if ( this.enabled && this.enableRotate ) { + + this.setCenter( ( this._touchCurrent[ 0 ].clientX + this._touchCurrent[ 1 ].clientX ) / 2, ( this._touchCurrent[ 0 ].clientY + this._touchCurrent[ 1 ].clientY ) / 2 ); + let rotationPoint; + + if ( this._state != STATE.ZROTATE ) { + + this.updateTbState( STATE.ZROTATE, true ); + this._startFingerRotation = this._currentFingerRotation; + + } + + //this._currentFingerRotation = event.rotation; + this._currentFingerRotation = this.getAngle( this._touchCurrent[ 1 ], this._touchCurrent[ 0 ] ) + this.getAngle( this._touchStart[ 1 ], this._touchStart[ 0 ] ); + + if ( ! this.enablePan ) { + + rotationPoint = new Vector3().setFromMatrixPosition( this._gizmoMatrixState ); + + } else { + + this._v3_2.setFromMatrixPosition( this._gizmoMatrixState ); + rotationPoint = this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement ).applyQuaternion( this.camera.quaternion ).multiplyScalar( 1 / this.camera.zoom ).add( this._v3_2 ); + + } + + const amount = MathUtils.DEG2RAD * ( this._startFingerRotation - this._currentFingerRotation ); + + this.applyTransformMatrix( this.zRotate( rotationPoint, amount ) ); + this.dispatchEvent( _changeEvent ); + + } + + }; + + onRotateEnd = () => { + + this.updateTbState( STATE.IDLE, false ); + this.activateGizmos( false ); + this.dispatchEvent( _endEvent ); + + }; + + onPinchStart = () => { + + if ( this.enabled && this.enableZoom ) { + + this.dispatchEvent( _startEvent ); + this.updateTbState( STATE.SCALE, true ); + + this._startFingerDistance = this.calculatePointersDistance( this._touchCurrent[ 0 ], this._touchCurrent[ 1 ] ); + this._currentFingerDistance = this._startFingerDistance; + + this.activateGizmos( false ); + + } + + }; + + onPinchMove = () => { + + if ( this.enabled && this.enableZoom ) { + + this.setCenter( ( this._touchCurrent[ 0 ].clientX + this._touchCurrent[ 1 ].clientX ) / 2, ( this._touchCurrent[ 0 ].clientY + this._touchCurrent[ 1 ].clientY ) / 2 ); + const minDistance = 12; //minimum distance between fingers (in css pixels) + + if ( this._state != STATE.SCALE ) { + + this._startFingerDistance = this._currentFingerDistance; + this.updateTbState( STATE.SCALE, true ); + + } + + this._currentFingerDistance = Math.max( this.calculatePointersDistance( this._touchCurrent[ 0 ], this._touchCurrent[ 1 ] ), minDistance * this._devPxRatio ); + const amount = this._currentFingerDistance / this._startFingerDistance; + + let scalePoint; + + if ( ! this.enablePan ) { + + scalePoint = this._gizmos.position; + + } else { + + if ( this.camera.isOrthographicCamera ) { + + scalePoint = this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement ) + .applyQuaternion( this.camera.quaternion ) + .multiplyScalar( 1 / this.camera.zoom ) + .add( this._gizmos.position ); + + } else if ( this.camera.isPerspectiveCamera ) { + + scalePoint = this.unprojectOnTbPlane( this.camera, _center.x, _center.y, this.domElement ) + .applyQuaternion( this.camera.quaternion ) + .add( this._gizmos.position ); + + } + + } + + this.applyTransformMatrix( this.scale( amount, scalePoint ) ); + this.dispatchEvent( _changeEvent ); + + } + + }; + + onPinchEnd = () => { + + this.updateTbState( STATE.IDLE, false ); + this.dispatchEvent( _endEvent ); + + }; + + onTriplePanStart = () => { + + if ( this.enabled && this.enableZoom ) { + + this.dispatchEvent( _startEvent ); + + this.updateTbState( STATE.SCALE, true ); + + //const center = event.center; + let clientX = 0; + let clientY = 0; + const nFingers = this._touchCurrent.length; + + for ( let i = 0; i < nFingers; i ++ ) { + + clientX += this._touchCurrent[ i ].clientX; + clientY += this._touchCurrent[ i ].clientY; + + } + + this.setCenter( clientX / nFingers, clientY / nFingers ); + + this._startCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + this._currentCursorPosition.copy( this._startCursorPosition ); + + } + + }; + + onTriplePanMove = () => { + + if ( this.enabled && this.enableZoom ) { + + // fov / 2 + // |\ + // | \ + // | \ + // x | \ + // | \ + // | \ + // | _ _ _\ + // y + + //const center = event.center; + let clientX = 0; + let clientY = 0; + const nFingers = this._touchCurrent.length; + + for ( let i = 0; i < nFingers; i ++ ) { + + clientX += this._touchCurrent[ i ].clientX; + clientY += this._touchCurrent[ i ].clientY; + + } + + this.setCenter( clientX / nFingers, clientY / nFingers ); + + const screenNotches = 8; //how many wheel notches corresponds to a full screen pan + this._currentCursorPosition.setY( this.getCursorNDC( _center.x, _center.y, this.domElement ).y * 0.5 ); + + const movement = this._currentCursorPosition.y - this._startCursorPosition.y; + + let size = 1; + + if ( movement < 0 ) { + + size = 1 / ( Math.pow( this.scaleFactor, - movement * screenNotches ) ); + + } else if ( movement > 0 ) { + + size = Math.pow( this.scaleFactor, movement * screenNotches ); + + } + + this._v3_1.setFromMatrixPosition( this._cameraMatrixState ); + const x = this._v3_1.distanceTo( this._gizmos.position ); + let xNew = x / size; //distance between camera and gizmos if scale(size, scalepoint) would be performed + + //check min and max distance + xNew = MathUtils.clamp( xNew, this.minDistance, this.maxDistance ); + + const y = x * Math.tan( MathUtils.DEG2RAD * this._fovState * 0.5 ); + + //calculate new fov + let newFov = MathUtils.RAD2DEG * ( Math.atan( y / xNew ) * 2 ); + + //check min and max fov + newFov = MathUtils.clamp( newFov, this.minFov, this.maxFov ); + + const newDistance = y / Math.tan( MathUtils.DEG2RAD * ( newFov / 2 ) ); + size = x / newDistance; + this._v3_2.setFromMatrixPosition( this._gizmoMatrixState ); + + this.setFov( newFov ); + this.applyTransformMatrix( this.scale( size, this._v3_2, false ) ); + + //adjusting distance + _offset.copy( this._gizmos.position ).sub( this.camera.position ).normalize().multiplyScalar( newDistance / x ); + this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z ); + + this.dispatchEvent( _changeEvent ); + + } + + }; + + onTriplePanEnd = () => { + + this.updateTbState( STATE.IDLE, false ); + this.dispatchEvent( _endEvent ); + //this.dispatchEvent( _changeEvent ); + + }; + + /** + * Set _center's x/y coordinates + * @param {Number} clientX + * @param {Number} clientY + */ + setCenter = ( clientX, clientY ) => { + + _center.x = clientX; + _center.y = clientY; + + }; + + /** + * Set default mouse actions + */ + initializeMouseActions = () => { + + this.setMouseAction( 'PAN', 0, 'CTRL' ); + this.setMouseAction( 'PAN', 2 ); + + this.setMouseAction( 'ROTATE', 0 ); + + this.setMouseAction( 'ZOOM', 'WHEEL' ); + this.setMouseAction( 'ZOOM', 1 ); + + this.setMouseAction( 'FOV', 'WHEEL', 'SHIFT' ); + this.setMouseAction( 'FOV', 1, 'SHIFT' ); + + + }; + + /** + * Compare two mouse actions + * @param {Object} action1 + * @param {Object} action2 + * @returns {Boolean} True if action1 and action 2 are the same mouse action, false otherwise + */ + compareMouseAction = ( action1, action2 ) => { + + if ( action1.operation == action2.operation ) { + + if ( action1.mouse == action2.mouse && action1.key == action2.key ) { + + return true; + + } else { + + return false; + + } + + } else { + + return false; + + } + + }; + + /** + * Set a new mouse action by specifying the operation to be performed and a mouse/key combination. In case of conflict, replaces the existing one + * @param {String} operation The operation to be performed ('PAN', 'ROTATE', 'ZOOM', 'FOV) + * @param {*} mouse A mouse button (0, 1, 2) or 'WHEEL' for wheel notches + * @param {*} key The keyboard modifier ('CTRL', 'SHIFT') or null if key is not needed + * @returns {Boolean} True if the mouse action has been successfully added, false otherwise + */ + setMouseAction = ( operation, mouse, key = null ) => { + + const operationInput = [ 'PAN', 'ROTATE', 'ZOOM', 'FOV' ]; + const mouseInput = [ 0, 1, 2, 'WHEEL' ]; + const keyInput = [ 'CTRL', 'SHIFT', null ]; + let state; + + if ( ! operationInput.includes( operation ) || ! mouseInput.includes( mouse ) || ! keyInput.includes( key ) ) { + + //invalid parameters + return false; + + } + + if ( mouse == 'WHEEL' ) { + + if ( operation != 'ZOOM' && operation != 'FOV' ) { + + //cannot associate 2D operation to 1D input + return false; + + } + + } + + switch ( operation ) { + + case 'PAN': + + state = STATE.PAN; + break; + + case 'ROTATE': + + state = STATE.ROTATE; + break; + + case 'ZOOM': + + state = STATE.SCALE; + break; + + case 'FOV': + + state = STATE.FOV; + break; + + } + + const action = { + + operation: operation, + mouse: mouse, + key: key, + state: state + + }; + + for ( let i = 0; i < this.mouseActions.length; i ++ ) { + + if ( this.mouseActions[ i ].mouse == action.mouse && this.mouseActions[ i ].key == action.key ) { + + this.mouseActions.splice( i, 1, action ); + return true; + + } + + } + + this.mouseActions.push( action ); + return true; + + }; + + /** + * Remove a mouse action by specifying its mouse/key combination + * @param {*} mouse A mouse button (0, 1, 2) or 'WHEEL' for wheel notches + * @param {*} key The keyboard modifier ('CTRL', 'SHIFT') or null if key is not needed + * @returns {Boolean} True if the operation has been succesfully removed, false otherwise + */ + unsetMouseAction = ( mouse, key = null ) => { + + for ( let i = 0; i < this.mouseActions.length; i ++ ) { + + if ( this.mouseActions[ i ].mouse == mouse && this.mouseActions[ i ].key == key ) { + + this.mouseActions.splice( i, 1 ); + return true; + + } + + } + + return false; + + }; + + /** + * Return the operation associated to a mouse/keyboard combination + * @param {*} mouse A mouse button (0, 1, 2) or 'WHEEL' for wheel notches + * @param {*} key The keyboard modifier ('CTRL', 'SHIFT') or null if key is not needed + * @returns The operation if it has been found, null otherwise + */ + getOpFromAction = ( mouse, key ) => { + + let action; + + for ( let i = 0; i < this.mouseActions.length; i ++ ) { + + action = this.mouseActions[ i ]; + if ( action.mouse == mouse && action.key == key ) { + + return action.operation; + + } + + } + + if ( key != null ) { + + for ( let i = 0; i < this.mouseActions.length; i ++ ) { + + action = this.mouseActions[ i ]; + if ( action.mouse == mouse && action.key == null ) { + + return action.operation; + + } + + } + + } + + return null; + + }; + + /** + * Get the operation associated to mouse and key combination and returns the corresponding FSA state + * @param {Number} mouse Mouse button + * @param {String} key Keyboard modifier + * @returns The FSA state obtained from the operation associated to mouse/keyboard combination + */ + getOpStateFromAction = ( mouse, key ) => { + + let action; + + for ( let i = 0; i < this.mouseActions.length; i ++ ) { + + action = this.mouseActions[ i ]; + if ( action.mouse == mouse && action.key == key ) { + + return action.state; + + } + + } + + if ( key != null ) { + + for ( let i = 0; i < this.mouseActions.length; i ++ ) { + + action = this.mouseActions[ i ]; + if ( action.mouse == mouse && action.key == null ) { + + return action.state; + + } + + } + + } + + return null; + + }; + + /** + * Calculate the angle between two pointers + * @param {PointerEvent} p1 + * @param {PointerEvent} p2 + * @returns {Number} The angle between two pointers in degrees + */ + getAngle = ( p1, p2 ) => { + + return Math.atan2( p2.clientY - p1.clientY, p2.clientX - p1.clientX ) * 180 / Math.PI; + + }; + + /** + * Update a PointerEvent inside current pointerevents array + * @param {PointerEvent} event + */ + updateTouchEvent = ( event ) => { + + for ( let i = 0; i < this._touchCurrent.length; i ++ ) { + + if ( this._touchCurrent[ i ].pointerId == event.pointerId ) { + + this._touchCurrent.splice( i, 1, event ); + break; + + } + + } + + }; + + /** + * Apply a transformation matrix, to the camera and gizmos + * @param {Object} transformation Object containing matrices to apply to camera and gizmos + */ + applyTransformMatrix( transformation ) { + + if ( transformation.camera != null ) { + + this._m4_1.copy( this._cameraMatrixState ).premultiply( transformation.camera ); + this._m4_1.decompose( this.camera.position, this.camera.quaternion, this.camera.scale ); + this.camera.updateMatrix(); + + //update camera up vector + if ( this._state == STATE.ROTATE || this._state == STATE.ZROTATE || this._state == STATE.ANIMATION_ROTATE ) { + + this.camera.up.copy( this._upState ).applyQuaternion( this.camera.quaternion ); + + } + + } + + if ( transformation.gizmos != null ) { + + this._m4_1.copy( this._gizmoMatrixState ).premultiply( transformation.gizmos ); + this._m4_1.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale ); + this._gizmos.updateMatrix(); + + } + + if ( this._state == STATE.SCALE || this._state == STATE.FOCUS || this._state == STATE.ANIMATION_FOCUS ) { + + this._tbRadius = this.calculateTbRadius( this.camera ); + + if ( this.adjustNearFar ) { + + const cameraDistance = this.camera.position.distanceTo( this._gizmos.position ); + + const bb = new Box3(); + bb.setFromObject( this._gizmos ); + const sphere = new Sphere(); + bb.getBoundingSphere( sphere ); + + const adjustedNearPosition = Math.max( this._nearPos0, sphere.radius + sphere.center.length() ); + const regularNearPosition = cameraDistance - this._initialNear; + + const minNearPos = Math.min( adjustedNearPosition, regularNearPosition ); + this.camera.near = cameraDistance - minNearPos; + + + const adjustedFarPosition = Math.min( this._farPos0, - sphere.radius + sphere.center.length() ); + const regularFarPosition = cameraDistance - this._initialFar; + + const minFarPos = Math.min( adjustedFarPosition, regularFarPosition ); + this.camera.far = cameraDistance - minFarPos; + + this.camera.updateProjectionMatrix(); + + } else { + + let update = false; + + if ( this.camera.near != this._initialNear ) { + + this.camera.near = this._initialNear; + update = true; + + } + + if ( this.camera.far != this._initialFar ) { + + this.camera.far = this._initialFar; + update = true; + + } + + if ( update ) { + + this.camera.updateProjectionMatrix(); + + } + + } + + } + + } + + /** + * Calculate the angular speed + * @param {Number} p0 Position at t0 + * @param {Number} p1 Position at t1 + * @param {Number} t0 Initial time in milliseconds + * @param {Number} t1 Ending time in milliseconds + */ + calculateAngularSpeed = ( p0, p1, t0, t1 ) => { + + const s = p1 - p0; + const t = ( t1 - t0 ) / 1000; + if ( t == 0 ) { + + return 0; + + } + + return s / t; + + }; + + /** + * Calculate the distance between two pointers + * @param {PointerEvent} p0 The first pointer + * @param {PointerEvent} p1 The second pointer + * @returns {number} The distance between the two pointers + */ + calculatePointersDistance = ( p0, p1 ) => { + + return Math.sqrt( Math.pow( p1.clientX - p0.clientX, 2 ) + Math.pow( p1.clientY - p0.clientY, 2 ) ); + + }; + + /** + * Calculate the rotation axis as the vector perpendicular between two vectors + * @param {Vector3} vec1 The first vector + * @param {Vector3} vec2 The second vector + * @returns {Vector3} The normalized rotation axis + */ + calculateRotationAxis = ( vec1, vec2 ) => { + + this._rotationMatrix.extractRotation( this._cameraMatrixState ); + this._quat.setFromRotationMatrix( this._rotationMatrix ); + + this._rotationAxis.crossVectors( vec1, vec2 ).applyQuaternion( this._quat ); + return this._rotationAxis.normalize().clone(); + + }; + + /** + * Calculate the trackball radius so that gizmo's diamater will be 2/3 of the minimum side of the camera frustum + * @param {Camera} camera + * @returns {Number} The trackball radius + */ + calculateTbRadius = ( camera ) => { + + const distance = camera.position.distanceTo( this._gizmos.position ); + + if ( camera.type == 'PerspectiveCamera' ) { + + const halfFovV = MathUtils.DEG2RAD * camera.fov * 0.5; //vertical fov/2 in radians + const halfFovH = Math.atan( ( camera.aspect ) * Math.tan( halfFovV ) ); //horizontal fov/2 in radians + return Math.tan( Math.min( halfFovV, halfFovH ) ) * distance * this.radiusFactor; + + } else if ( camera.type == 'OrthographicCamera' ) { + + return Math.min( camera.top, camera.right ) * this.radiusFactor; + + } + + }; + + /** + * Focus operation consist of positioning the point of interest in front of the camera and a slightly zoom in + * @param {Vector3} point The point of interest + * @param {Number} size Scale factor + * @param {Number} amount Amount of operation to be completed (used for focus animations, default is complete full operation) + */ + focus = ( point, size, amount = 1 ) => { + + //move center of camera (along with gizmos) towards point of interest + _offset.copy( point ).sub( this._gizmos.position ).multiplyScalar( amount ); + this._translationMatrix.makeTranslation( _offset.x, _offset.y, _offset.z ); + + _gizmoMatrixStateTemp.copy( this._gizmoMatrixState ); + this._gizmoMatrixState.premultiply( this._translationMatrix ); + this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale ); + + _cameraMatrixStateTemp.copy( this._cameraMatrixState ); + this._cameraMatrixState.premultiply( this._translationMatrix ); + this._cameraMatrixState.decompose( this.camera.position, this.camera.quaternion, this.camera.scale ); + + //apply zoom + if ( this.enableZoom ) { + + this.applyTransformMatrix( this.scale( size, this._gizmos.position ) ); + + } + + this._gizmoMatrixState.copy( _gizmoMatrixStateTemp ); + this._cameraMatrixState.copy( _cameraMatrixStateTemp ); + + }; + + /** + * Draw a grid and add it to the scene + */ + drawGrid = () => { + + if ( this.scene != null ) { + + const color = 0x888888; + const multiplier = 3; + let size, divisions, maxLength, tick; + + if ( this.camera.isOrthographicCamera ) { + + const width = this.camera.right - this.camera.left; + const height = this.camera.bottom - this.camera.top; + + maxLength = Math.max( width, height ); + tick = maxLength / 20; + + size = maxLength / this.camera.zoom * multiplier; + divisions = size / tick * this.camera.zoom; + + } else if ( this.camera.isPerspectiveCamera ) { + + const distance = this.camera.position.distanceTo( this._gizmos.position ); + const halfFovV = MathUtils.DEG2RAD * this.camera.fov * 0.5; + const halfFovH = Math.atan( ( this.camera.aspect ) * Math.tan( halfFovV ) ); + + maxLength = Math.tan( Math.max( halfFovV, halfFovH ) ) * distance * 2; + tick = maxLength / 20; + + size = maxLength * multiplier; + divisions = size / tick; + + } + + if ( this._grid == null ) { + + this._grid = new GridHelper( size, divisions, color, color ); + this._grid.position.copy( this._gizmos.position ); + this._gridPosition.copy( this._grid.position ); + this._grid.quaternion.copy( this.camera.quaternion ); + this._grid.rotateX( Math.PI * 0.5 ); + + this.scene.add( this._grid ); + + } + + } + + }; + + /** + * Remove all listeners, stop animations and clean scene + */ + dispose = () => { + + if ( this._animationId != - 1 ) { + + window.cancelAnimationFrame( this._animationId ); + + } + + this.domElement.removeEventListener( 'pointerdown', this.onPointerDown ); + this.domElement.removeEventListener( 'pointercancel', this.onPointerCancel ); + this.domElement.removeEventListener( 'wheel', this.onWheel ); + this.domElement.removeEventListener( 'contextmenu', this.onContextMenu ); + + window.removeEventListener( 'pointermove', this.onPointerMove ); + window.removeEventListener( 'pointerup', this.onPointerUp ); + + window.removeEventListener( 'resize', this.onWindowResize ); + + if ( this.scene !== null ) this.scene.remove( this._gizmos ); + this.disposeGrid(); + + }; + + /** + * remove the grid from the scene + */ + disposeGrid = () => { + + if ( this._grid != null && this.scene != null ) { + + this.scene.remove( this._grid ); + this._grid = null; + + } + + }; + + /** + * Compute the easing out cubic function for ease out effect in animation + * @param {Number} t The absolute progress of the animation in the bound of 0 (beginning of the) and 1 (ending of animation) + * @returns {Number} Result of easing out cubic at time t + */ + easeOutCubic = ( t ) => { + + return 1 - Math.pow( 1 - t, 3 ); + + }; + + /** + * Make rotation gizmos more or less visible + * @param {Boolean} isActive If true, make gizmos more visible + */ + activateGizmos = ( isActive ) => { + + const gizmoX = this._gizmos.children[ 0 ]; + const gizmoY = this._gizmos.children[ 1 ]; + const gizmoZ = this._gizmos.children[ 2 ]; + + if ( isActive ) { + + gizmoX.material.setValues( { opacity: 1 } ); + gizmoY.material.setValues( { opacity: 1 } ); + gizmoZ.material.setValues( { opacity: 1 } ); + + } else { + + gizmoX.material.setValues( { opacity: 0.6 } ); + gizmoY.material.setValues( { opacity: 0.6 } ); + gizmoZ.material.setValues( { opacity: 0.6 } ); + + } + + }; + + /** + * Calculate the cursor position in NDC + * @param {number} x Cursor horizontal coordinate within the canvas + * @param {number} y Cursor vertical coordinate within the canvas + * @param {HTMLElement} canvas The canvas where the renderer draws its output + * @returns {Vector2} Cursor normalized position inside the canvas + */ + getCursorNDC = ( cursorX, cursorY, canvas ) => { + + const canvasRect = canvas.getBoundingClientRect(); + this._v2_1.setX( ( ( cursorX - canvasRect.left ) / canvasRect.width ) * 2 - 1 ); + this._v2_1.setY( ( ( canvasRect.bottom - cursorY ) / canvasRect.height ) * 2 - 1 ); + return this._v2_1.clone(); + + }; + + /** + * Calculate the cursor position inside the canvas x/y coordinates with the origin being in the center of the canvas + * @param {Number} x Cursor horizontal coordinate within the canvas + * @param {Number} y Cursor vertical coordinate within the canvas + * @param {HTMLElement} canvas The canvas where the renderer draws its output + * @returns {Vector2} Cursor position inside the canvas + */ + getCursorPosition = ( cursorX, cursorY, canvas ) => { + + this._v2_1.copy( this.getCursorNDC( cursorX, cursorY, canvas ) ); + this._v2_1.x *= ( this.camera.right - this.camera.left ) * 0.5; + this._v2_1.y *= ( this.camera.top - this.camera.bottom ) * 0.5; + return this._v2_1.clone(); + + }; + + /** + * Set the camera to be controlled + * @param {Camera} camera The virtual camera to be controlled + */ + setCamera = ( camera ) => { + + camera.lookAt( this.target ); + camera.updateMatrix(); + + //setting state + if ( camera.type == 'PerspectiveCamera' ) { + + this._fov0 = camera.fov; + this._fovState = camera.fov; + + } + + this._cameraMatrixState0.copy( camera.matrix ); + this._cameraMatrixState.copy( this._cameraMatrixState0 ); + this._cameraProjectionState.copy( camera.projectionMatrix ); + this._zoom0 = camera.zoom; + this._zoomState = this._zoom0; + + this._initialNear = camera.near; + this._nearPos0 = camera.position.distanceTo( this.target ) - camera.near; + this._nearPos = this._initialNear; + + this._initialFar = camera.far; + this._farPos0 = camera.position.distanceTo( this.target ) - camera.far; + this._farPos = this._initialFar; + + this._up0.copy( camera.up ); + this._upState.copy( camera.up ); + + this.camera = camera; + this.camera.updateProjectionMatrix(); + + //making gizmos + this._tbRadius = this.calculateTbRadius( camera ); + this.makeGizmos( this.target, this._tbRadius ); + + }; + + /** + * Set gizmos visibility + * @param {Boolean} value Value of gizmos visibility + */ + setGizmosVisible( value ) { + + this._gizmos.visible = value; + this.dispatchEvent( _changeEvent ); + + } + + /** + * Set gizmos radius factor and redraws gizmos + * @param {Float} value Value of radius factor + */ + setTbRadius( value ) { + + this.radiusFactor = value; + this._tbRadius = this.calculateTbRadius( this.camera ); + + const curve = new EllipseCurve( 0, 0, this._tbRadius, this._tbRadius ); + const points = curve.getPoints( this._curvePts ); + const curveGeometry = new BufferGeometry().setFromPoints( points ); + + + for ( const gizmo in this._gizmos.children ) { + + this._gizmos.children[ gizmo ].geometry = curveGeometry; + + } + + this.dispatchEvent( _changeEvent ); + + } + + /** + * Creates the rotation gizmos matching trackball center and radius + * @param {Vector3} tbCenter The trackball center + * @param {number} tbRadius The trackball radius + */ + makeGizmos = ( tbCenter, tbRadius ) => { + + const curve = new EllipseCurve( 0, 0, tbRadius, tbRadius ); + const points = curve.getPoints( this._curvePts ); + + //geometry + const curveGeometry = new BufferGeometry().setFromPoints( points ); + + //material + const curveMaterialX = new LineBasicMaterial( { color: 0xff8080, fog: false, transparent: true, opacity: 0.6 } ); + const curveMaterialY = new LineBasicMaterial( { color: 0x80ff80, fog: false, transparent: true, opacity: 0.6 } ); + const curveMaterialZ = new LineBasicMaterial( { color: 0x8080ff, fog: false, transparent: true, opacity: 0.6 } ); + + //line + const gizmoX = new Line( curveGeometry, curveMaterialX ); + const gizmoY = new Line( curveGeometry, curveMaterialY ); + const gizmoZ = new Line( curveGeometry, curveMaterialZ ); + + const rotation = Math.PI * 0.5; + gizmoX.rotation.x = rotation; + gizmoY.rotation.y = rotation; + + + //setting state + this._gizmoMatrixState0.identity().setPosition( tbCenter ); + this._gizmoMatrixState.copy( this._gizmoMatrixState0 ); + + if ( this.camera.zoom != 1 ) { + + //adapt gizmos size to camera zoom + const size = 1 / this.camera.zoom; + this._scaleMatrix.makeScale( size, size, size ); + this._translationMatrix.makeTranslation( - tbCenter.x, - tbCenter.y, - tbCenter.z ); + + this._gizmoMatrixState.premultiply( this._translationMatrix ).premultiply( this._scaleMatrix ); + this._translationMatrix.makeTranslation( tbCenter.x, tbCenter.y, tbCenter.z ); + this._gizmoMatrixState.premultiply( this._translationMatrix ); + + } + + this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale ); + + this._gizmos.clear(); + + this._gizmos.add( gizmoX ); + this._gizmos.add( gizmoY ); + this._gizmos.add( gizmoZ ); + + }; + + /** + * Perform animation for focus operation + * @param {Number} time Instant in which this function is called as performance.now() + * @param {Vector3} point Point of interest for focus operation + * @param {Matrix4} cameraMatrix Camera matrix + * @param {Matrix4} gizmoMatrix Gizmos matrix + */ + onFocusAnim = ( time, point, cameraMatrix, gizmoMatrix ) => { + + if ( this._timeStart == - 1 ) { + + //animation start + this._timeStart = time; + + } + + if ( this._state == STATE.ANIMATION_FOCUS ) { + + const deltaTime = time - this._timeStart; + const animTime = deltaTime / this.focusAnimationTime; + + this._gizmoMatrixState.copy( gizmoMatrix ); + + if ( animTime >= 1 ) { + + //animation end + + this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale ); + + this.focus( point, this.scaleFactor ); + + this._timeStart = - 1; + this.updateTbState( STATE.IDLE, false ); + this.activateGizmos( false ); + + this.dispatchEvent( _changeEvent ); + + } else { + + const amount = this.easeOutCubic( animTime ); + const size = ( ( 1 - amount ) + ( this.scaleFactor * amount ) ); + + this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale ); + this.focus( point, size, amount ); + + this.dispatchEvent( _changeEvent ); + const self = this; + this._animationId = window.requestAnimationFrame( function ( t ) { + + self.onFocusAnim( t, point, cameraMatrix, gizmoMatrix.clone() ); + + } ); + + } + + } else { + + //interrupt animation + + this._animationId = - 1; + this._timeStart = - 1; + + } + + }; + + /** + * Perform animation for rotation operation + * @param {Number} time Instant in which this function is called as performance.now() + * @param {Vector3} rotationAxis Rotation axis + * @param {number} w0 Initial angular velocity + */ + onRotationAnim = ( time, rotationAxis, w0 ) => { + + if ( this._timeStart == - 1 ) { + + //animation start + this._anglePrev = 0; + this._angleCurrent = 0; + this._timeStart = time; + + } + + if ( this._state == STATE.ANIMATION_ROTATE ) { + + //w = w0 + alpha * t + const deltaTime = ( time - this._timeStart ) / 1000; + const w = w0 + ( ( - this.dampingFactor ) * deltaTime ); + + if ( w > 0 ) { + + //tetha = 0.5 * alpha * t^2 + w0 * t + tetha0 + this._angleCurrent = 0.5 * ( - this.dampingFactor ) * Math.pow( deltaTime, 2 ) + w0 * deltaTime + 0; + this.applyTransformMatrix( this.rotate( rotationAxis, this._angleCurrent ) ); + this.dispatchEvent( _changeEvent ); + const self = this; + this._animationId = window.requestAnimationFrame( function ( t ) { + + self.onRotationAnim( t, rotationAxis, w0 ); + + } ); + + } else { + + this._animationId = - 1; + this._timeStart = - 1; + + this.updateTbState( STATE.IDLE, false ); + this.activateGizmos( false ); + + this.dispatchEvent( _changeEvent ); + + } + + } else { + + //interrupt animation + + this._animationId = - 1; + this._timeStart = - 1; + + if ( this._state != STATE.ROTATE ) { + + this.activateGizmos( false ); + this.dispatchEvent( _changeEvent ); + + } + + } + + }; + + + /** + * Perform pan operation moving camera between two points + * @param {Vector3} p0 Initial point + * @param {Vector3} p1 Ending point + * @param {Boolean} adjust If movement should be adjusted considering camera distance (Perspective only) + */ + pan = ( p0, p1, adjust = false ) => { + + const movement = p0.clone().sub( p1 ); + + if ( this.camera.isOrthographicCamera ) { + + //adjust movement amount + movement.multiplyScalar( 1 / this.camera.zoom ); + + } else if ( this.camera.isPerspectiveCamera && adjust ) { + + //adjust movement amount + this._v3_1.setFromMatrixPosition( this._cameraMatrixState0 ); //camera's initial position + this._v3_2.setFromMatrixPosition( this._gizmoMatrixState0 ); //gizmo's initial position + const distanceFactor = this._v3_1.distanceTo( this._v3_2 ) / this.camera.position.distanceTo( this._gizmos.position ); + movement.multiplyScalar( 1 / distanceFactor ); + + } + + this._v3_1.set( movement.x, movement.y, 0 ).applyQuaternion( this.camera.quaternion ); + + this._m4_1.makeTranslation( this._v3_1.x, this._v3_1.y, this._v3_1.z ); + + this.setTransformationMatrices( this._m4_1, this._m4_1 ); + return _transformation; + + }; + + /** + * Reset trackball + */ + reset = () => { + + this.camera.zoom = this._zoom0; + + if ( this.camera.isPerspectiveCamera ) { + + this.camera.fov = this._fov0; + + } + + this.camera.near = this._nearPos; + this.camera.far = this._farPos; + this._cameraMatrixState.copy( this._cameraMatrixState0 ); + this._cameraMatrixState.decompose( this.camera.position, this.camera.quaternion, this.camera.scale ); + this.camera.up.copy( this._up0 ); + + this.camera.updateMatrix(); + this.camera.updateProjectionMatrix(); + + this._gizmoMatrixState.copy( this._gizmoMatrixState0 ); + this._gizmoMatrixState0.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale ); + this._gizmos.updateMatrix(); + + this._tbRadius = this.calculateTbRadius( this.camera ); + this.makeGizmos( this._gizmos.position, this._tbRadius ); + + this.camera.lookAt( this._gizmos.position ); + + this.updateTbState( STATE.IDLE, false ); + + this.dispatchEvent( _changeEvent ); + + }; + + /** + * Rotate the camera around an axis passing by trackball's center + * @param {Vector3} axis Rotation axis + * @param {number} angle Angle in radians + * @returns {Object} Object with 'camera' field containing transformation matrix resulting from the operation to be applied to the camera + */ + rotate = ( axis, angle ) => { + + const point = this._gizmos.position; //rotation center + this._translationMatrix.makeTranslation( - point.x, - point.y, - point.z ); + this._rotationMatrix.makeRotationAxis( axis, - angle ); + + //rotate camera + this._m4_1.makeTranslation( point.x, point.y, point.z ); + this._m4_1.multiply( this._rotationMatrix ); + this._m4_1.multiply( this._translationMatrix ); + + this.setTransformationMatrices( this._m4_1 ); + + return _transformation; + + }; + + copyState = () => { + + let state; + if ( this.camera.isOrthographicCamera ) { + + state = JSON.stringify( { arcballState: { + + cameraFar: this.camera.far, + cameraMatrix: this.camera.matrix, + cameraNear: this.camera.near, + cameraUp: this.camera.up, + cameraZoom: this.camera.zoom, + gizmoMatrix: this._gizmos.matrix + + } } ); + + } else if ( this.camera.isPerspectiveCamera ) { + + state = JSON.stringify( { arcballState: { + cameraFar: this.camera.far, + cameraFov: this.camera.fov, + cameraMatrix: this.camera.matrix, + cameraNear: this.camera.near, + cameraUp: this.camera.up, + cameraZoom: this.camera.zoom, + gizmoMatrix: this._gizmos.matrix + + } } ); + + } + + navigator.clipboard.writeText( state ); + + }; + + pasteState = () => { + + const self = this; + navigator.clipboard.readText().then( function resolved( value ) { + + self.setStateFromJSON( value ); + + } ); + + }; + + /** + * Save the current state of the control. This can later be recover with .reset + */ + saveState = () => { + + this._cameraMatrixState0.copy( this.camera.matrix ); + this._gizmoMatrixState0.copy( this._gizmos.matrix ); + this._nearPos = this.camera.near; + this._farPos = this.camera.far; + this._zoom0 = this.camera.zoom; + this._up0.copy( this.camera.up ); + + if ( this.camera.isPerspectiveCamera ) { + + this._fov0 = this.camera.fov; + + } + + }; + + /** + * Perform uniform scale operation around a given point + * @param {Number} size Scale factor + * @param {Vector3} point Point around which scale + * @param {Boolean} scaleGizmos If gizmos should be scaled (Perspective only) + * @returns {Object} Object with 'camera' and 'gizmo' fields containing transformation matrices resulting from the operation to be applied to the camera and gizmos + */ + scale = ( size, point, scaleGizmos = true ) => { + + _scalePointTemp.copy( point ); + let sizeInverse = 1 / size; + + if ( this.camera.isOrthographicCamera ) { + + //camera zoom + this.camera.zoom = this._zoomState; + this.camera.zoom *= size; + + //check min and max zoom + if ( this.camera.zoom > this.maxZoom ) { + + this.camera.zoom = this.maxZoom; + sizeInverse = this._zoomState / this.maxZoom; + + } else if ( this.camera.zoom < this.minZoom ) { + + this.camera.zoom = this.minZoom; + sizeInverse = this._zoomState / this.minZoom; + + } + + this.camera.updateProjectionMatrix(); + + this._v3_1.setFromMatrixPosition( this._gizmoMatrixState ); //gizmos position + + //scale gizmos so they appear in the same spot having the same dimension + this._scaleMatrix.makeScale( sizeInverse, sizeInverse, sizeInverse ); + this._translationMatrix.makeTranslation( - this._v3_1.x, - this._v3_1.y, - this._v3_1.z ); + + this._m4_2.makeTranslation( this._v3_1.x, this._v3_1.y, this._v3_1.z ).multiply( this._scaleMatrix ); + this._m4_2.multiply( this._translationMatrix ); + + + //move camera and gizmos to obtain pinch effect + _scalePointTemp.sub( this._v3_1 ); + + const amount = _scalePointTemp.clone().multiplyScalar( sizeInverse ); + _scalePointTemp.sub( amount ); + + this._m4_1.makeTranslation( _scalePointTemp.x, _scalePointTemp.y, _scalePointTemp.z ); + this._m4_2.premultiply( this._m4_1 ); + + this.setTransformationMatrices( this._m4_1, this._m4_2 ); + return _transformation; + + } else if ( this.camera.isPerspectiveCamera ) { + + this._v3_1.setFromMatrixPosition( this._cameraMatrixState ); + this._v3_2.setFromMatrixPosition( this._gizmoMatrixState ); + + //move camera + let distance = this._v3_1.distanceTo( _scalePointTemp ); + let amount = distance - ( distance * sizeInverse ); + + //check min and max distance + const newDistance = distance - amount; + if ( newDistance < this.minDistance ) { + + sizeInverse = this.minDistance / distance; + amount = distance - ( distance * sizeInverse ); + + } else if ( newDistance > this.maxDistance ) { + + sizeInverse = this.maxDistance / distance; + amount = distance - ( distance * sizeInverse ); + + } + + _offset.copy( _scalePointTemp ).sub( this._v3_1 ).normalize().multiplyScalar( amount ); + + this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z ); + + + if ( scaleGizmos ) { + + //scale gizmos so they appear in the same spot having the same dimension + const pos = this._v3_2; + + distance = pos.distanceTo( _scalePointTemp ); + amount = distance - ( distance * sizeInverse ); + _offset.copy( _scalePointTemp ).sub( this._v3_2 ).normalize().multiplyScalar( amount ); + + this._translationMatrix.makeTranslation( pos.x, pos.y, pos.z ); + this._scaleMatrix.makeScale( sizeInverse, sizeInverse, sizeInverse ); + + this._m4_2.makeTranslation( _offset.x, _offset.y, _offset.z ).multiply( this._translationMatrix ); + this._m4_2.multiply( this._scaleMatrix ); + + this._translationMatrix.makeTranslation( - pos.x, - pos.y, - pos.z ); + + this._m4_2.multiply( this._translationMatrix ); + this.setTransformationMatrices( this._m4_1, this._m4_2 ); + + + } else { + + this.setTransformationMatrices( this._m4_1 ); + + } + + return _transformation; + + } + + }; + + /** + * Set camera fov + * @param {Number} value fov to be setted + */ + setFov = ( value ) => { + + if ( this.camera.isPerspectiveCamera ) { + + this.camera.fov = MathUtils.clamp( value, this.minFov, this.maxFov ); + this.camera.updateProjectionMatrix(); + + } + + }; + + /** + * Set values in transformation object + * @param {Matrix4} camera Transformation to be applied to the camera + * @param {Matrix4} gizmos Transformation to be applied to gizmos + */ + setTransformationMatrices( camera = null, gizmos = null ) { + + if ( camera != null ) { + + if ( _transformation.camera != null ) { + + _transformation.camera.copy( camera ); + + } else { + + _transformation.camera = camera.clone(); + + } + + } else { + + _transformation.camera = null; + + } + + if ( gizmos != null ) { + + if ( _transformation.gizmos != null ) { + + _transformation.gizmos.copy( gizmos ); + + } else { + + _transformation.gizmos = gizmos.clone(); + + } + + } else { + + _transformation.gizmos = null; + + } + + } + + /** + * Rotate camera around its direction axis passing by a given point by a given angle + * @param {Vector3} point The point where the rotation axis is passing trough + * @param {Number} angle Angle in radians + * @returns The computed transormation matix + */ + zRotate = ( point, angle ) => { + + this._rotationMatrix.makeRotationAxis( this._rotationAxis, angle ); + this._translationMatrix.makeTranslation( - point.x, - point.y, - point.z ); + + this._m4_1.makeTranslation( point.x, point.y, point.z ); + this._m4_1.multiply( this._rotationMatrix ); + this._m4_1.multiply( this._translationMatrix ); + + this._v3_1.setFromMatrixPosition( this._gizmoMatrixState ).sub( point ); //vector from rotation center to gizmos position + this._v3_2.copy( this._v3_1 ).applyAxisAngle( this._rotationAxis, angle ); //apply rotation + this._v3_2.sub( this._v3_1 ); + + this._m4_2.makeTranslation( this._v3_2.x, this._v3_2.y, this._v3_2.z ); + + this.setTransformationMatrices( this._m4_1, this._m4_2 ); + return _transformation; + + }; + + + getRaycaster() { + + return _raycaster; + + } + + + /** + * Unproject the cursor on the 3D object surface + * @param {Vector2} cursor Cursor coordinates in NDC + * @param {Camera} camera Virtual camera + * @returns {Vector3} The point of intersection with the model, if exist, null otherwise + */ + unprojectOnObj = ( cursor, camera ) => { + + const raycaster = this.getRaycaster(); + raycaster.near = camera.near; + raycaster.far = camera.far; + raycaster.setFromCamera( cursor, camera ); + + const intersect = raycaster.intersectObjects( this.scene.children, true ); + + for ( let i = 0; i < intersect.length; i ++ ) { + + if ( intersect[ i ].object.uuid != this._gizmos.uuid && intersect[ i ].face != null ) { + + return intersect[ i ].point.clone(); + + } + + } + + return null; + + }; + + /** + * Unproject the cursor on the trackball surface + * @param {Camera} camera The virtual camera + * @param {Number} cursorX Cursor horizontal coordinate on screen + * @param {Number} cursorY Cursor vertical coordinate on screen + * @param {HTMLElement} canvas The canvas where the renderer draws its output + * @param {number} tbRadius The trackball radius + * @returns {Vector3} The unprojected point on the trackball surface + */ + unprojectOnTbSurface = ( camera, cursorX, cursorY, canvas, tbRadius ) => { + + if ( camera.type == 'OrthographicCamera' ) { + + this._v2_1.copy( this.getCursorPosition( cursorX, cursorY, canvas ) ); + this._v3_1.set( this._v2_1.x, this._v2_1.y, 0 ); + + const x2 = Math.pow( this._v2_1.x, 2 ); + const y2 = Math.pow( this._v2_1.y, 2 ); + const r2 = Math.pow( this._tbRadius, 2 ); + + if ( x2 + y2 <= r2 * 0.5 ) { + + //intersection with sphere + this._v3_1.setZ( Math.sqrt( r2 - ( x2 + y2 ) ) ); + + } else { + + //intersection with hyperboloid + this._v3_1.setZ( ( r2 * 0.5 ) / ( Math.sqrt( x2 + y2 ) ) ); + + } + + return this._v3_1; + + } else if ( camera.type == 'PerspectiveCamera' ) { + + //unproject cursor on the near plane + this._v2_1.copy( this.getCursorNDC( cursorX, cursorY, canvas ) ); + + this._v3_1.set( this._v2_1.x, this._v2_1.y, - 1 ); + this._v3_1.applyMatrix4( camera.projectionMatrixInverse ); + + const rayDir = this._v3_1.clone().normalize(); //unprojected ray direction + const cameraGizmoDistance = camera.position.distanceTo( this._gizmos.position ); + const radius2 = Math.pow( tbRadius, 2 ); + + // camera + // |\ + // | \ + // | \ + // h | \ + // | \ + // | \ + // _ _ | _ _ _\ _ _ near plane + // l + + const h = this._v3_1.z; + const l = Math.sqrt( Math.pow( this._v3_1.x, 2 ) + Math.pow( this._v3_1.y, 2 ) ); + + if ( l == 0 ) { + + //ray aligned with camera + rayDir.set( this._v3_1.x, this._v3_1.y, tbRadius ); + return rayDir; + + } + + const m = h / l; + const q = cameraGizmoDistance; + + /* + * calculate intersection point between unprojected ray and trackball surface + *|y = m * x + q + *|x^2 + y^2 = r^2 + * + * (m^2 + 1) * x^2 + (2 * m * q) * x + q^2 - r^2 = 0 + */ + let a = Math.pow( m, 2 ) + 1; + let b = 2 * m * q; + let c = Math.pow( q, 2 ) - radius2; + let delta = Math.pow( b, 2 ) - ( 4 * a * c ); + + if ( delta >= 0 ) { + + //intersection with sphere + this._v2_1.setX( ( - b - Math.sqrt( delta ) ) / ( 2 * a ) ); + this._v2_1.setY( m * this._v2_1.x + q ); + + const angle = MathUtils.RAD2DEG * this._v2_1.angle(); + + if ( angle >= 45 ) { + + //if angle between intersection point and X' axis is >= 45°, return that point + //otherwise, calculate intersection point with hyperboloid + + const rayLength = Math.sqrt( Math.pow( this._v2_1.x, 2 ) + Math.pow( ( cameraGizmoDistance - this._v2_1.y ), 2 ) ); + rayDir.multiplyScalar( rayLength ); + rayDir.z += cameraGizmoDistance; + return rayDir; + + } + + } + + //intersection with hyperboloid + /* + *|y = m * x + q + *|y = (1 / x) * (r^2 / 2) + * + * m * x^2 + q * x - r^2 / 2 = 0 + */ + + a = m; + b = q; + c = - radius2 * 0.5; + delta = Math.pow( b, 2 ) - ( 4 * a * c ); + this._v2_1.setX( ( - b - Math.sqrt( delta ) ) / ( 2 * a ) ); + this._v2_1.setY( m * this._v2_1.x + q ); + + const rayLength = Math.sqrt( Math.pow( this._v2_1.x, 2 ) + Math.pow( ( cameraGizmoDistance - this._v2_1.y ), 2 ) ); + + rayDir.multiplyScalar( rayLength ); + rayDir.z += cameraGizmoDistance; + return rayDir; + + } + + }; + + + /** + * Unproject the cursor on the plane passing through the center of the trackball orthogonal to the camera + * @param {Camera} camera The virtual camera + * @param {Number} cursorX Cursor horizontal coordinate on screen + * @param {Number} cursorY Cursor vertical coordinate on screen + * @param {HTMLElement} canvas The canvas where the renderer draws its output + * @param {Boolean} initialDistance If initial distance between camera and gizmos should be used for calculations instead of current (Perspective only) + * @returns {Vector3} The unprojected point on the trackball plane + */ + unprojectOnTbPlane = ( camera, cursorX, cursorY, canvas, initialDistance = false ) => { + + if ( camera.type == 'OrthographicCamera' ) { + + this._v2_1.copy( this.getCursorPosition( cursorX, cursorY, canvas ) ); + this._v3_1.set( this._v2_1.x, this._v2_1.y, 0 ); + + return this._v3_1.clone(); + + } else if ( camera.type == 'PerspectiveCamera' ) { + + this._v2_1.copy( this.getCursorNDC( cursorX, cursorY, canvas ) ); + + //unproject cursor on the near plane + this._v3_1.set( this._v2_1.x, this._v2_1.y, - 1 ); + this._v3_1.applyMatrix4( camera.projectionMatrixInverse ); + + const rayDir = this._v3_1.clone().normalize(); //unprojected ray direction + + // camera + // |\ + // | \ + // | \ + // h | \ + // | \ + // | \ + // _ _ | _ _ _\ _ _ near plane + // l + + const h = this._v3_1.z; + const l = Math.sqrt( Math.pow( this._v3_1.x, 2 ) + Math.pow( this._v3_1.y, 2 ) ); + let cameraGizmoDistance; + + if ( initialDistance ) { + + cameraGizmoDistance = this._v3_1.setFromMatrixPosition( this._cameraMatrixState0 ).distanceTo( this._v3_2.setFromMatrixPosition( this._gizmoMatrixState0 ) ); + + } else { + + cameraGizmoDistance = camera.position.distanceTo( this._gizmos.position ); + + } + + /* + * calculate intersection point between unprojected ray and the plane + *|y = mx + q + *|y = 0 + * + * x = -q/m + */ + if ( l == 0 ) { + + //ray aligned with camera + rayDir.set( 0, 0, 0 ); + return rayDir; + + } + + const m = h / l; + const q = cameraGizmoDistance; + const x = - q / m; + + const rayLength = Math.sqrt( Math.pow( q, 2 ) + Math.pow( x, 2 ) ); + rayDir.multiplyScalar( rayLength ); + rayDir.z = 0; + return rayDir; + + } + + }; + + /** + * Update camera and gizmos state + */ + updateMatrixState = () => { + + //update camera and gizmos state + this._cameraMatrixState.copy( this.camera.matrix ); + this._gizmoMatrixState.copy( this._gizmos.matrix ); + + if ( this.camera.isOrthographicCamera ) { + + this._cameraProjectionState.copy( this.camera.projectionMatrix ); + this.camera.updateProjectionMatrix(); + this._zoomState = this.camera.zoom; + + } else if ( this.camera.isPerspectiveCamera ) { + + this._fovState = this.camera.fov; + + } + + }; + + /** + * Update the trackball FSA + * @param {STATE} newState New state of the FSA + * @param {Boolean} updateMatrices If matriices state should be updated + */ + updateTbState = ( newState, updateMatrices ) => { + + this._state = newState; + if ( updateMatrices ) { + + this.updateMatrixState(); + + } + + }; + + update = () => { + + const EPS = 0.000001; + + if ( this.target.equals( this._currentTarget ) === false ) { + + this._gizmos.position.copy( this.target ); //for correct radius calculation + this._tbRadius = this.calculateTbRadius( this.camera ); + this.makeGizmos( this.target, this._tbRadius ); + this._currentTarget.copy( this.target ); + + } + + //check min/max parameters + if ( this.camera.isOrthographicCamera ) { + + //check zoom + if ( this.camera.zoom > this.maxZoom || this.camera.zoom < this.minZoom ) { + + const newZoom = MathUtils.clamp( this.camera.zoom, this.minZoom, this.maxZoom ); + this.applyTransformMatrix( this.scale( newZoom / this.camera.zoom, this._gizmos.position, true ) ); + + } + + } else if ( this.camera.isPerspectiveCamera ) { + + //check distance + const distance = this.camera.position.distanceTo( this._gizmos.position ); + + if ( distance > this.maxDistance + EPS || distance < this.minDistance - EPS ) { + + const newDistance = MathUtils.clamp( distance, this.minDistance, this.maxDistance ); + this.applyTransformMatrix( this.scale( newDistance / distance, this._gizmos.position ) ); + this.updateMatrixState(); + + } + + //check fov + if ( this.camera.fov < this.minFov || this.camera.fov > this.maxFov ) { + + this.camera.fov = MathUtils.clamp( this.camera.fov, this.minFov, this.maxFov ); + this.camera.updateProjectionMatrix(); + + } + + const oldRadius = this._tbRadius; + this._tbRadius = this.calculateTbRadius( this.camera ); + + if ( oldRadius < this._tbRadius - EPS || oldRadius > this._tbRadius + EPS ) { + + const scale = ( this._gizmos.scale.x + this._gizmos.scale.y + this._gizmos.scale.z ) / 3; + const newRadius = this._tbRadius / scale; + const curve = new EllipseCurve( 0, 0, newRadius, newRadius ); + const points = curve.getPoints( this._curvePts ); + const curveGeometry = new BufferGeometry().setFromPoints( points ); + + for ( const gizmo in this._gizmos.children ) { + + this._gizmos.children[ gizmo ].geometry = curveGeometry; + + } + + } + + } + + this.camera.lookAt( this._gizmos.position ); + + }; + + setStateFromJSON = ( json ) => { + + const state = JSON.parse( json ); + + if ( state.arcballState != undefined ) { + + this._cameraMatrixState.fromArray( state.arcballState.cameraMatrix.elements ); + this._cameraMatrixState.decompose( this.camera.position, this.camera.quaternion, this.camera.scale ); + + this.camera.up.copy( state.arcballState.cameraUp ); + this.camera.near = state.arcballState.cameraNear; + this.camera.far = state.arcballState.cameraFar; + + this.camera.zoom = state.arcballState.cameraZoom; + + if ( this.camera.isPerspectiveCamera ) { + + this.camera.fov = state.arcballState.cameraFov; + + } + + this._gizmoMatrixState.fromArray( state.arcballState.gizmoMatrix.elements ); + this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale ); + + this.camera.updateMatrix(); + this.camera.updateProjectionMatrix(); + + this._gizmos.updateMatrix(); + + this._tbRadius = this.calculateTbRadius( this.camera ); + const gizmoTmp = new Matrix4().copy( this._gizmoMatrixState0 ); + this.makeGizmos( this._gizmos.position, this._tbRadius ); + this._gizmoMatrixState0.copy( gizmoTmp ); + + this.camera.lookAt( this._gizmos.position ); + this.updateTbState( STATE.IDLE, false ); + + this.dispatchEvent( _changeEvent ); + + } + + }; + +} + +export { ArcballControls }; diff --git a/node_modules/three/examples/jsm/controls/DragControls.js b/node_modules/three/examples/jsm/controls/DragControls.js new file mode 100644 index 0000000..60b679b --- /dev/null +++ b/node_modules/three/examples/jsm/controls/DragControls.js @@ -0,0 +1,213 @@ +import { + EventDispatcher, + Matrix4, + Plane, + Raycaster, + Vector2, + Vector3 +} from '../../../build/three.module.js'; + +const _plane = new Plane(); +const _raycaster = new Raycaster(); + +const _pointer = new Vector2(); +const _offset = new Vector3(); +const _intersection = new Vector3(); +const _worldPosition = new Vector3(); +const _inverseMatrix = new Matrix4(); + +class DragControls extends EventDispatcher { + + constructor( _objects, _camera, _domElement ) { + + super(); + + _domElement.style.touchAction = 'none'; // disable touch scroll + + let _selected = null, _hovered = null; + + const _intersections = []; + + // + + const scope = this; + + function activate() { + + _domElement.addEventListener( 'pointermove', onPointerMove ); + _domElement.addEventListener( 'pointerdown', onPointerDown ); + _domElement.addEventListener( 'pointerup', onPointerCancel ); + _domElement.addEventListener( 'pointerleave', onPointerCancel ); + + } + + function deactivate() { + + _domElement.removeEventListener( 'pointermove', onPointerMove ); + _domElement.removeEventListener( 'pointerdown', onPointerDown ); + _domElement.removeEventListener( 'pointerup', onPointerCancel ); + _domElement.removeEventListener( 'pointerleave', onPointerCancel ); + + _domElement.style.cursor = ''; + + } + + function dispose() { + + deactivate(); + + } + + function getObjects() { + + return _objects; + + } + + function onPointerMove( event ) { + + if ( scope.enabled === false ) return; + + updatePointer( event ); + + _raycaster.setFromCamera( _pointer, _camera ); + + if ( _selected ) { + + if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { + + _selected.position.copy( _intersection.sub( _offset ).applyMatrix4( _inverseMatrix ) ); + + } + + scope.dispatchEvent( { type: 'drag', object: _selected } ); + + return; + + } + + // hover support + + if ( event.pointerType === 'mouse' || event.pointerType === 'pen' ) { + + _intersections.length = 0; + + _raycaster.setFromCamera( _pointer, _camera ); + _raycaster.intersectObjects( _objects, true, _intersections ); + + if ( _intersections.length > 0 ) { + + const object = _intersections[ 0 ].object; + + _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( object.matrixWorld ) ); + + if ( _hovered !== object && _hovered !== null ) { + + scope.dispatchEvent( { type: 'hoveroff', object: _hovered } ); + + _domElement.style.cursor = 'auto'; + _hovered = null; + + } + + if ( _hovered !== object ) { + + scope.dispatchEvent( { type: 'hoveron', object: object } ); + + _domElement.style.cursor = 'pointer'; + _hovered = object; + + } + + } else { + + if ( _hovered !== null ) { + + scope.dispatchEvent( { type: 'hoveroff', object: _hovered } ); + + _domElement.style.cursor = 'auto'; + _hovered = null; + + } + + } + + } + + } + + function onPointerDown( event ) { + + if ( scope.enabled === false ) return; + + updatePointer( event ); + + _intersections.length = 0; + + _raycaster.setFromCamera( _pointer, _camera ); + _raycaster.intersectObjects( _objects, true, _intersections ); + + if ( _intersections.length > 0 ) { + + _selected = ( scope.transformGroup === true ) ? _objects[ 0 ] : _intersections[ 0 ].object; + + _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) ); + + if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) { + + _inverseMatrix.copy( _selected.parent.matrixWorld ).invert(); + _offset.copy( _intersection ).sub( _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) ); + + } + + _domElement.style.cursor = 'move'; + + scope.dispatchEvent( { type: 'dragstart', object: _selected } ); + + } + + + } + + function onPointerCancel() { + + if ( scope.enabled === false ) return; + + if ( _selected ) { + + scope.dispatchEvent( { type: 'dragend', object: _selected } ); + + _selected = null; + + } + + _domElement.style.cursor = _hovered ? 'pointer' : 'auto'; + + } + + function updatePointer( event ) { + + const rect = _domElement.getBoundingClientRect(); + + _pointer.x = ( event.clientX - rect.left ) / rect.width * 2 - 1; + _pointer.y = - ( event.clientY - rect.top ) / rect.height * 2 + 1; + + } + + activate(); + + // API + + this.enabled = true; + this.transformGroup = false; + + this.activate = activate; + this.deactivate = deactivate; + this.dispose = dispose; + this.getObjects = getObjects; + + } + +} + +export { DragControls }; diff --git a/node_modules/three/examples/jsm/controls/FirstPersonControls.js b/node_modules/three/examples/jsm/controls/FirstPersonControls.js new file mode 100644 index 0000000..143e139 --- /dev/null +++ b/node_modules/three/examples/jsm/controls/FirstPersonControls.js @@ -0,0 +1,332 @@ +import { + MathUtils, + Spherical, + Vector3 +} from 'three'; + +const _lookDirection = new Vector3(); +const _spherical = new Spherical(); +const _target = new Vector3(); + +class FirstPersonControls { + + constructor( object, domElement ) { + + if ( domElement === undefined ) { + + console.warn( 'THREE.FirstPersonControls: The second parameter "domElement" is now mandatory.' ); + domElement = document; + + } + + this.object = object; + this.domElement = domElement; + + // API + + this.enabled = true; + + this.movementSpeed = 1.0; + this.lookSpeed = 0.005; + + this.lookVertical = true; + this.autoForward = false; + + this.activeLook = true; + + this.heightSpeed = false; + this.heightCoef = 1.0; + this.heightMin = 0.0; + this.heightMax = 1.0; + + this.constrainVertical = false; + this.verticalMin = 0; + this.verticalMax = Math.PI; + + this.mouseDragOn = false; + + // internals + + this.autoSpeedFactor = 0.0; + + this.mouseX = 0; + this.mouseY = 0; + + this.moveForward = false; + this.moveBackward = false; + this.moveLeft = false; + this.moveRight = false; + + this.viewHalfX = 0; + this.viewHalfY = 0; + + // private variables + + let lat = 0; + let lon = 0; + + // + + this.handleResize = function () { + + if ( this.domElement === document ) { + + this.viewHalfX = window.innerWidth / 2; + this.viewHalfY = window.innerHeight / 2; + + } else { + + this.viewHalfX = this.domElement.offsetWidth / 2; + this.viewHalfY = this.domElement.offsetHeight / 2; + + } + + }; + + this.onMouseDown = function ( event ) { + + if ( this.domElement !== document ) { + + this.domElement.focus(); + + } + + if ( this.activeLook ) { + + switch ( event.button ) { + + case 0: this.moveForward = true; break; + case 2: this.moveBackward = true; break; + + } + + } + + this.mouseDragOn = true; + + }; + + this.onMouseUp = function ( event ) { + + if ( this.activeLook ) { + + switch ( event.button ) { + + case 0: this.moveForward = false; break; + case 2: this.moveBackward = false; break; + + } + + } + + this.mouseDragOn = false; + + }; + + this.onMouseMove = function ( event ) { + + if ( this.domElement === document ) { + + this.mouseX = event.pageX - this.viewHalfX; + this.mouseY = event.pageY - this.viewHalfY; + + } else { + + this.mouseX = event.pageX - this.domElement.offsetLeft - this.viewHalfX; + this.mouseY = event.pageY - this.domElement.offsetTop - this.viewHalfY; + + } + + }; + + this.onKeyDown = function ( event ) { + + switch ( event.code ) { + + case 'ArrowUp': + case 'KeyW': this.moveForward = true; break; + + case 'ArrowLeft': + case 'KeyA': this.moveLeft = true; break; + + case 'ArrowDown': + case 'KeyS': this.moveBackward = true; break; + + case 'ArrowRight': + case 'KeyD': this.moveRight = true; break; + + case 'KeyR': this.moveUp = true; break; + case 'KeyF': this.moveDown = true; break; + + } + + }; + + this.onKeyUp = function ( event ) { + + switch ( event.code ) { + + case 'ArrowUp': + case 'KeyW': this.moveForward = false; break; + + case 'ArrowLeft': + case 'KeyA': this.moveLeft = false; break; + + case 'ArrowDown': + case 'KeyS': this.moveBackward = false; break; + + case 'ArrowRight': + case 'KeyD': this.moveRight = false; break; + + case 'KeyR': this.moveUp = false; break; + case 'KeyF': this.moveDown = false; break; + + } + + }; + + this.lookAt = function ( x, y, z ) { + + if ( x.isVector3 ) { + + _target.copy( x ); + + } else { + + _target.set( x, y, z ); + + } + + this.object.lookAt( _target ); + + setOrientation( this ); + + return this; + + }; + + this.update = function () { + + const targetPosition = new Vector3(); + + return function update( delta ) { + + if ( this.enabled === false ) return; + + if ( this.heightSpeed ) { + + const y = MathUtils.clamp( this.object.position.y, this.heightMin, this.heightMax ); + const heightDelta = y - this.heightMin; + + this.autoSpeedFactor = delta * ( heightDelta * this.heightCoef ); + + } else { + + this.autoSpeedFactor = 0.0; + + } + + const actualMoveSpeed = delta * this.movementSpeed; + + if ( this.moveForward || ( this.autoForward && ! this.moveBackward ) ) this.object.translateZ( - ( actualMoveSpeed + this.autoSpeedFactor ) ); + if ( this.moveBackward ) this.object.translateZ( actualMoveSpeed ); + + if ( this.moveLeft ) this.object.translateX( - actualMoveSpeed ); + if ( this.moveRight ) this.object.translateX( actualMoveSpeed ); + + if ( this.moveUp ) this.object.translateY( actualMoveSpeed ); + if ( this.moveDown ) this.object.translateY( - actualMoveSpeed ); + + let actualLookSpeed = delta * this.lookSpeed; + + if ( ! this.activeLook ) { + + actualLookSpeed = 0; + + } + + let verticalLookRatio = 1; + + if ( this.constrainVertical ) { + + verticalLookRatio = Math.PI / ( this.verticalMax - this.verticalMin ); + + } + + lon -= this.mouseX * actualLookSpeed; + if ( this.lookVertical ) lat -= this.mouseY * actualLookSpeed * verticalLookRatio; + + lat = Math.max( - 85, Math.min( 85, lat ) ); + + let phi = MathUtils.degToRad( 90 - lat ); + const theta = MathUtils.degToRad( lon ); + + if ( this.constrainVertical ) { + + phi = MathUtils.mapLinear( phi, 0, Math.PI, this.verticalMin, this.verticalMax ); + + } + + const position = this.object.position; + + targetPosition.setFromSphericalCoords( 1, phi, theta ).add( position ); + + this.object.lookAt( targetPosition ); + + }; + + }(); + + this.dispose = function () { + + this.domElement.removeEventListener( 'contextmenu', contextmenu ); + this.domElement.removeEventListener( 'mousedown', _onMouseDown ); + this.domElement.removeEventListener( 'mousemove', _onMouseMove ); + this.domElement.removeEventListener( 'mouseup', _onMouseUp ); + + window.removeEventListener( 'keydown', _onKeyDown ); + window.removeEventListener( 'keyup', _onKeyUp ); + + }; + + const _onMouseMove = this.onMouseMove.bind( this ); + const _onMouseDown = this.onMouseDown.bind( this ); + const _onMouseUp = this.onMouseUp.bind( this ); + const _onKeyDown = this.onKeyDown.bind( this ); + const _onKeyUp = this.onKeyUp.bind( this ); + + this.domElement.addEventListener( 'contextmenu', contextmenu ); + this.domElement.addEventListener( 'mousemove', _onMouseMove ); + this.domElement.addEventListener( 'mousedown', _onMouseDown ); + this.domElement.addEventListener( 'mouseup', _onMouseUp ); + + window.addEventListener( 'keydown', _onKeyDown ); + window.addEventListener( 'keyup', _onKeyUp ); + + function setOrientation( controls ) { + + const quaternion = controls.object.quaternion; + + _lookDirection.set( 0, 0, - 1 ).applyQuaternion( quaternion ); + _spherical.setFromVector3( _lookDirection ); + + lat = 90 - MathUtils.radToDeg( _spherical.phi ); + lon = MathUtils.radToDeg( _spherical.theta ); + + } + + this.handleResize(); + + setOrientation( this ); + + } + +} + +function contextmenu( event ) { + + event.preventDefault(); + +} + +export { FirstPersonControls }; diff --git a/node_modules/three/examples/jsm/controls/FlyControls.js b/node_modules/three/examples/jsm/controls/FlyControls.js new file mode 100644 index 0000000..69a29a2 --- /dev/null +++ b/node_modules/three/examples/jsm/controls/FlyControls.js @@ -0,0 +1,292 @@ +import { + EventDispatcher, + Quaternion, + Vector3 +} from 'three'; + +const _changeEvent = { type: 'change' }; + +class FlyControls extends EventDispatcher { + + constructor( object, domElement ) { + + super(); + + if ( domElement === undefined ) { + + console.warn( 'THREE.FlyControls: The second parameter "domElement" is now mandatory.' ); + domElement = document; + + } + + this.object = object; + this.domElement = domElement; + + // API + + this.movementSpeed = 1.0; + this.rollSpeed = 0.005; + + this.dragToLook = false; + this.autoForward = false; + + // disable default target object behavior + + // internals + + const scope = this; + + const EPS = 0.000001; + + const lastQuaternion = new Quaternion(); + const lastPosition = new Vector3(); + + this.tmpQuaternion = new Quaternion(); + + this.mouseStatus = 0; + + this.moveState = { up: 0, down: 0, left: 0, right: 0, forward: 0, back: 0, pitchUp: 0, pitchDown: 0, yawLeft: 0, yawRight: 0, rollLeft: 0, rollRight: 0 }; + this.moveVector = new Vector3( 0, 0, 0 ); + this.rotationVector = new Vector3( 0, 0, 0 ); + + this.keydown = function ( event ) { + + if ( event.altKey ) { + + return; + + } + + switch ( event.code ) { + + case 'ShiftLeft': + case 'ShiftRight': this.movementSpeedMultiplier = .1; break; + + case 'KeyW': this.moveState.forward = 1; break; + case 'KeyS': this.moveState.back = 1; break; + + case 'KeyA': this.moveState.left = 1; break; + case 'KeyD': this.moveState.right = 1; break; + + case 'KeyR': this.moveState.up = 1; break; + case 'KeyF': this.moveState.down = 1; break; + + case 'ArrowUp': this.moveState.pitchUp = 1; break; + case 'ArrowDown': this.moveState.pitchDown = 1; break; + + case 'ArrowLeft': this.moveState.yawLeft = 1; break; + case 'ArrowRight': this.moveState.yawRight = 1; break; + + case 'KeyQ': this.moveState.rollLeft = 1; break; + case 'KeyE': this.moveState.rollRight = 1; break; + + } + + this.updateMovementVector(); + this.updateRotationVector(); + + }; + + this.keyup = function ( event ) { + + switch ( event.code ) { + + case 'ShiftLeft': + case 'ShiftRight': this.movementSpeedMultiplier = 1; break; + + case 'KeyW': this.moveState.forward = 0; break; + case 'KeyS': this.moveState.back = 0; break; + + case 'KeyA': this.moveState.left = 0; break; + case 'KeyD': this.moveState.right = 0; break; + + case 'KeyR': this.moveState.up = 0; break; + case 'KeyF': this.moveState.down = 0; break; + + case 'ArrowUp': this.moveState.pitchUp = 0; break; + case 'ArrowDown': this.moveState.pitchDown = 0; break; + + case 'ArrowLeft': this.moveState.yawLeft = 0; break; + case 'ArrowRight': this.moveState.yawRight = 0; break; + + case 'KeyQ': this.moveState.rollLeft = 0; break; + case 'KeyE': this.moveState.rollRight = 0; break; + + } + + this.updateMovementVector(); + this.updateRotationVector(); + + }; + + this.mousedown = function ( event ) { + + if ( this.dragToLook ) { + + this.mouseStatus ++; + + } else { + + switch ( event.button ) { + + case 0: this.moveState.forward = 1; break; + case 2: this.moveState.back = 1; break; + + } + + this.updateMovementVector(); + + } + + }; + + this.mousemove = function ( event ) { + + if ( ! this.dragToLook || this.mouseStatus > 0 ) { + + const container = this.getContainerDimensions(); + const halfWidth = container.size[ 0 ] / 2; + const halfHeight = container.size[ 1 ] / 2; + + this.moveState.yawLeft = - ( ( event.pageX - container.offset[ 0 ] ) - halfWidth ) / halfWidth; + this.moveState.pitchDown = ( ( event.pageY - container.offset[ 1 ] ) - halfHeight ) / halfHeight; + + this.updateRotationVector(); + + } + + }; + + this.mouseup = function ( event ) { + + if ( this.dragToLook ) { + + this.mouseStatus --; + + this.moveState.yawLeft = this.moveState.pitchDown = 0; + + } else { + + switch ( event.button ) { + + case 0: this.moveState.forward = 0; break; + case 2: this.moveState.back = 0; break; + + } + + this.updateMovementVector(); + + } + + this.updateRotationVector(); + + }; + + this.update = function ( delta ) { + + const moveMult = delta * scope.movementSpeed; + const rotMult = delta * scope.rollSpeed; + + scope.object.translateX( scope.moveVector.x * moveMult ); + scope.object.translateY( scope.moveVector.y * moveMult ); + scope.object.translateZ( scope.moveVector.z * moveMult ); + + scope.tmpQuaternion.set( scope.rotationVector.x * rotMult, scope.rotationVector.y * rotMult, scope.rotationVector.z * rotMult, 1 ).normalize(); + scope.object.quaternion.multiply( scope.tmpQuaternion ); + + if ( + lastPosition.distanceToSquared( scope.object.position ) > EPS || + 8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS + ) { + + scope.dispatchEvent( _changeEvent ); + lastQuaternion.copy( scope.object.quaternion ); + lastPosition.copy( scope.object.position ); + + } + + }; + + this.updateMovementVector = function () { + + const forward = ( this.moveState.forward || ( this.autoForward && ! this.moveState.back ) ) ? 1 : 0; + + this.moveVector.x = ( - this.moveState.left + this.moveState.right ); + this.moveVector.y = ( - this.moveState.down + this.moveState.up ); + this.moveVector.z = ( - forward + this.moveState.back ); + + //console.log( 'move:', [ this.moveVector.x, this.moveVector.y, this.moveVector.z ] ); + + }; + + this.updateRotationVector = function () { + + this.rotationVector.x = ( - this.moveState.pitchDown + this.moveState.pitchUp ); + this.rotationVector.y = ( - this.moveState.yawRight + this.moveState.yawLeft ); + this.rotationVector.z = ( - this.moveState.rollRight + this.moveState.rollLeft ); + + //console.log( 'rotate:', [ this.rotationVector.x, this.rotationVector.y, this.rotationVector.z ] ); + + }; + + this.getContainerDimensions = function () { + + if ( this.domElement != document ) { + + return { + size: [ this.domElement.offsetWidth, this.domElement.offsetHeight ], + offset: [ this.domElement.offsetLeft, this.domElement.offsetTop ] + }; + + } else { + + return { + size: [ window.innerWidth, window.innerHeight ], + offset: [ 0, 0 ] + }; + + } + + }; + + this.dispose = function () { + + this.domElement.removeEventListener( 'contextmenu', contextmenu ); + this.domElement.removeEventListener( 'mousedown', _mousedown ); + this.domElement.removeEventListener( 'mousemove', _mousemove ); + this.domElement.removeEventListener( 'mouseup', _mouseup ); + + window.removeEventListener( 'keydown', _keydown ); + window.removeEventListener( 'keyup', _keyup ); + + }; + + const _mousemove = this.mousemove.bind( this ); + const _mousedown = this.mousedown.bind( this ); + const _mouseup = this.mouseup.bind( this ); + const _keydown = this.keydown.bind( this ); + const _keyup = this.keyup.bind( this ); + + this.domElement.addEventListener( 'contextmenu', contextmenu ); + + this.domElement.addEventListener( 'mousemove', _mousemove ); + this.domElement.addEventListener( 'mousedown', _mousedown ); + this.domElement.addEventListener( 'mouseup', _mouseup ); + + window.addEventListener( 'keydown', _keydown ); + window.addEventListener( 'keyup', _keyup ); + + this.updateMovementVector(); + this.updateRotationVector(); + + } + +} + +function contextmenu( event ) { + + event.preventDefault(); + +} + +export { FlyControls }; diff --git a/node_modules/three/examples/jsm/controls/OrbitControls.js b/node_modules/three/examples/jsm/controls/OrbitControls.js new file mode 100644 index 0000000..cf382b0 --- /dev/null +++ b/node_modules/three/examples/jsm/controls/OrbitControls.js @@ -0,0 +1,1294 @@ +import { + EventDispatcher, + MOUSE, + Quaternion, + Spherical, + TOUCH, + Vector2, + Vector3 +} from '../../../build/three.module.js'; + +// This set of controls performs orbiting, dollying (zooming), and panning. +// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). +// +// Orbit - left mouse / touch: one-finger move +// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish +// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move + +const _changeEvent = { type: 'change' }; +const _startEvent = { type: 'start' }; +const _endEvent = { type: 'end' }; + +class OrbitControls extends EventDispatcher { + + constructor( object, domElement ) { + + super(); + + if ( domElement === undefined ) console.warn( 'THREE.OrbitControls: The second parameter "domElement" is now mandatory.' ); + if ( domElement === document ) console.error( 'THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.' ); + + this.object = object; + this.domElement = domElement; + this.domElement.style.touchAction = 'none'; // disable touch scroll + + // Set to false to disable this control + this.enabled = true; + + // "target" sets the location of focus, where the object orbits around + this.target = new Vector3(); + + // How far you can dolly in and out ( PerspectiveCamera only ) + this.minDistance = 0; + this.maxDistance = Infinity; + + // How far you can zoom in and out ( OrthographicCamera only ) + this.minZoom = 0; + this.maxZoom = Infinity; + + // How far you can orbit vertically, upper and lower limits. + // Range is 0 to Math.PI radians. + this.minPolarAngle = 0; // radians + this.maxPolarAngle = Math.PI; // radians + + // How far you can orbit horizontally, upper and lower limits. + // If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI ) + this.minAzimuthAngle = - Infinity; // radians + this.maxAzimuthAngle = Infinity; // radians + + // Set to true to enable damping (inertia) + // If damping is enabled, you must call controls.update() in your animation loop + this.enableDamping = false; + this.dampingFactor = 0.05; + + // This option actually enables dollying in and out; left as "zoom" for backwards compatibility. + // Set to false to disable zooming + this.enableZoom = true; + this.zoomSpeed = 1.0; + + // Set to false to disable rotating + this.enableRotate = true; + this.rotateSpeed = 1.0; + + // Set to false to disable panning + this.enablePan = true; + this.panSpeed = 1.0; + this.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up + this.keyPanSpeed = 7.0; // pixels moved per arrow key push + + // Set to true to automatically rotate around the target + // If auto-rotate is enabled, you must call controls.update() in your animation loop + this.autoRotate = false; + this.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60 + + // The four arrow keys + this.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' }; + + // Mouse buttons + this.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN }; + + // Touch fingers + this.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN }; + + // for reset + this.target0 = this.target.clone(); + this.position0 = this.object.position.clone(); + this.zoom0 = this.object.zoom; + + // the target DOM element for key events + this._domElementKeyEvents = null; + + // + // public methods + // + + this.getPolarAngle = function () { + + return spherical.phi; + + }; + + this.getAzimuthalAngle = function () { + + return spherical.theta; + + }; + + this.getDistance = function () { + + return this.object.position.distanceTo( this.target ); + + }; + + this.listenToKeyEvents = function ( domElement ) { + + domElement.addEventListener( 'keydown', onKeyDown ); + this._domElementKeyEvents = domElement; + + }; + + this.saveState = function () { + + scope.target0.copy( scope.target ); + scope.position0.copy( scope.object.position ); + scope.zoom0 = scope.object.zoom; + + }; + + this.reset = function () { + + scope.target.copy( scope.target0 ); + scope.object.position.copy( scope.position0 ); + scope.object.zoom = scope.zoom0; + + scope.object.updateProjectionMatrix(); + scope.dispatchEvent( _changeEvent ); + + scope.update(); + + state = STATE.NONE; + + }; + + // this method is exposed, but perhaps it would be better if we can make it private... + this.update = function () { + + const offset = new Vector3(); + + // so camera.up is the orbit axis + const quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) ); + const quatInverse = quat.clone().invert(); + + const lastPosition = new Vector3(); + const lastQuaternion = new Quaternion(); + + const twoPI = 2 * Math.PI; + + return function update() { + + const position = scope.object.position; + + offset.copy( position ).sub( scope.target ); + + // rotate offset to "y-axis-is-up" space + offset.applyQuaternion( quat ); + + // angle from z-axis around y-axis + spherical.setFromVector3( offset ); + + if ( scope.autoRotate && state === STATE.NONE ) { + + rotateLeft( getAutoRotationAngle() ); + + } + + if ( scope.enableDamping ) { + + spherical.theta += sphericalDelta.theta * scope.dampingFactor; + spherical.phi += sphericalDelta.phi * scope.dampingFactor; + + } else { + + spherical.theta += sphericalDelta.theta; + spherical.phi += sphericalDelta.phi; + + } + + // restrict theta to be between desired limits + + let min = scope.minAzimuthAngle; + let max = scope.maxAzimuthAngle; + + if ( isFinite( min ) && isFinite( max ) ) { + + if ( min < - Math.PI ) min += twoPI; else if ( min > Math.PI ) min -= twoPI; + + if ( max < - Math.PI ) max += twoPI; else if ( max > Math.PI ) max -= twoPI; + + if ( min <= max ) { + + spherical.theta = Math.max( min, Math.min( max, spherical.theta ) ); + + } else { + + spherical.theta = ( spherical.theta > ( min + max ) / 2 ) ? + Math.max( min, spherical.theta ) : + Math.min( max, spherical.theta ); + + } + + } + + // restrict phi to be between desired limits + spherical.phi = Math.max( scope.minPolarAngle, Math.min( scope.maxPolarAngle, spherical.phi ) ); + + spherical.makeSafe(); + + + spherical.radius *= scale; + + // restrict radius to be between desired limits + spherical.radius = Math.max( scope.minDistance, Math.min( scope.maxDistance, spherical.radius ) ); + + // move target to panned location + + if ( scope.enableDamping === true ) { + + scope.target.addScaledVector( panOffset, scope.dampingFactor ); + + } else { + + scope.target.add( panOffset ); + + } + + offset.setFromSpherical( spherical ); + + // rotate offset back to "camera-up-vector-is-up" space + offset.applyQuaternion( quatInverse ); + + position.copy( scope.target ).add( offset ); + + scope.object.lookAt( scope.target ); + + if ( scope.enableDamping === true ) { + + sphericalDelta.theta *= ( 1 - scope.dampingFactor ); + sphericalDelta.phi *= ( 1 - scope.dampingFactor ); + + panOffset.multiplyScalar( 1 - scope.dampingFactor ); + + } else { + + sphericalDelta.set( 0, 0, 0 ); + + panOffset.set( 0, 0, 0 ); + + } + + scale = 1; + + // update condition is: + // min(camera displacement, camera rotation in radians)^2 > EPS + // using small-angle approximation cos(x/2) = 1 - x^2 / 8 + + if ( zoomChanged || + lastPosition.distanceToSquared( scope.object.position ) > EPS || + 8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) { + + scope.dispatchEvent( _changeEvent ); + + lastPosition.copy( scope.object.position ); + lastQuaternion.copy( scope.object.quaternion ); + zoomChanged = false; + + return true; + + } + + return false; + + }; + + }(); + + this.dispose = function () { + + scope.domElement.removeEventListener( 'contextmenu', onContextMenu ); + + scope.domElement.removeEventListener( 'pointerdown', onPointerDown ); + scope.domElement.removeEventListener( 'pointercancel', onPointerCancel ); + scope.domElement.removeEventListener( 'wheel', onMouseWheel ); + + scope.domElement.removeEventListener( 'pointermove', onPointerMove ); + scope.domElement.removeEventListener( 'pointerup', onPointerUp ); + + + if ( scope._domElementKeyEvents !== null ) { + + scope._domElementKeyEvents.removeEventListener( 'keydown', onKeyDown ); + + } + + //scope.dispatchEvent( { type: 'dispose' } ); // should this be added here? + + }; + + // + // internals + // + + const scope = this; + + const STATE = { + NONE: - 1, + ROTATE: 0, + DOLLY: 1, + PAN: 2, + TOUCH_ROTATE: 3, + TOUCH_PAN: 4, + TOUCH_DOLLY_PAN: 5, + TOUCH_DOLLY_ROTATE: 6 + }; + + let state = STATE.NONE; + + const EPS = 0.000001; + + // current position in spherical coordinates + const spherical = new Spherical(); + const sphericalDelta = new Spherical(); + + let scale = 1; + const panOffset = new Vector3(); + let zoomChanged = false; + + const rotateStart = new Vector2(); + const rotateEnd = new Vector2(); + const rotateDelta = new Vector2(); + + const panStart = new Vector2(); + const panEnd = new Vector2(); + const panDelta = new Vector2(); + + const dollyStart = new Vector2(); + const dollyEnd = new Vector2(); + const dollyDelta = new Vector2(); + + const pointers = []; + const pointerPositions = {}; + + function getAutoRotationAngle() { + + return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed; + + } + + function getZoomScale() { + + return Math.pow( 0.95, scope.zoomSpeed ); + + } + + function rotateLeft( angle ) { + + sphericalDelta.theta -= angle; + + } + + function rotateUp( angle ) { + + sphericalDelta.phi -= angle; + + } + + const panLeft = function () { + + const v = new Vector3(); + + return function panLeft( distance, objectMatrix ) { + + v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix + v.multiplyScalar( - distance ); + + panOffset.add( v ); + + }; + + }(); + + const panUp = function () { + + const v = new Vector3(); + + return function panUp( distance, objectMatrix ) { + + if ( scope.screenSpacePanning === true ) { + + v.setFromMatrixColumn( objectMatrix, 1 ); + + } else { + + v.setFromMatrixColumn( objectMatrix, 0 ); + v.crossVectors( scope.object.up, v ); + + } + + v.multiplyScalar( distance ); + + panOffset.add( v ); + + }; + + }(); + + // deltaX and deltaY are in pixels; right and down are positive + const pan = function () { + + const offset = new Vector3(); + + return function pan( deltaX, deltaY ) { + + const element = scope.domElement; + + if ( scope.object.isPerspectiveCamera ) { + + // perspective + const position = scope.object.position; + offset.copy( position ).sub( scope.target ); + let targetDistance = offset.length(); + + // half of the fov is center to top of screen + targetDistance *= Math.tan( ( scope.object.fov / 2 ) * Math.PI / 180.0 ); + + // we use only clientHeight here so aspect ratio does not distort speed + panLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix ); + panUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix ); + + } else if ( scope.object.isOrthographicCamera ) { + + // orthographic + panLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix ); + panUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix ); + + } else { + + // camera neither orthographic nor perspective + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' ); + scope.enablePan = false; + + } + + }; + + }(); + + function dollyOut( dollyScale ) { + + if ( scope.object.isPerspectiveCamera ) { + + scale /= dollyScale; + + } else if ( scope.object.isOrthographicCamera ) { + + scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom * dollyScale ) ); + scope.object.updateProjectionMatrix(); + zoomChanged = true; + + } else { + + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); + scope.enableZoom = false; + + } + + } + + function dollyIn( dollyScale ) { + + if ( scope.object.isPerspectiveCamera ) { + + scale *= dollyScale; + + } else if ( scope.object.isOrthographicCamera ) { + + scope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / dollyScale ) ); + scope.object.updateProjectionMatrix(); + zoomChanged = true; + + } else { + + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); + scope.enableZoom = false; + + } + + } + + // + // event callbacks - update the object state + // + + function handleMouseDownRotate( event ) { + + rotateStart.set( event.clientX, event.clientY ); + + } + + function handleMouseDownDolly( event ) { + + dollyStart.set( event.clientX, event.clientY ); + + } + + function handleMouseDownPan( event ) { + + panStart.set( event.clientX, event.clientY ); + + } + + function handleMouseMoveRotate( event ) { + + rotateEnd.set( event.clientX, event.clientY ); + + rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed ); + + const element = scope.domElement; + + rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height + + rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight ); + + rotateStart.copy( rotateEnd ); + + scope.update(); + + } + + function handleMouseMoveDolly( event ) { + + dollyEnd.set( event.clientX, event.clientY ); + + dollyDelta.subVectors( dollyEnd, dollyStart ); + + if ( dollyDelta.y > 0 ) { + + dollyOut( getZoomScale() ); + + } else if ( dollyDelta.y < 0 ) { + + dollyIn( getZoomScale() ); + + } + + dollyStart.copy( dollyEnd ); + + scope.update(); + + } + + function handleMouseMovePan( event ) { + + panEnd.set( event.clientX, event.clientY ); + + panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed ); + + pan( panDelta.x, panDelta.y ); + + panStart.copy( panEnd ); + + scope.update(); + + } + + function handleMouseUp( /*event*/ ) { + + // no-op + + } + + function handleMouseWheel( event ) { + + if ( event.deltaY < 0 ) { + + dollyIn( getZoomScale() ); + + } else if ( event.deltaY > 0 ) { + + dollyOut( getZoomScale() ); + + } + + scope.update(); + + } + + function handleKeyDown( event ) { + + let needsUpdate = false; + + switch ( event.code ) { + + case scope.keys.UP: + pan( 0, scope.keyPanSpeed ); + needsUpdate = true; + break; + + case scope.keys.BOTTOM: + pan( 0, - scope.keyPanSpeed ); + needsUpdate = true; + break; + + case scope.keys.LEFT: + pan( scope.keyPanSpeed, 0 ); + needsUpdate = true; + break; + + case scope.keys.RIGHT: + pan( - scope.keyPanSpeed, 0 ); + needsUpdate = true; + break; + + } + + if ( needsUpdate ) { + + // prevent the browser from scrolling on cursor keys + event.preventDefault(); + + scope.update(); + + } + + + } + + function handleTouchStartRotate() { + + if ( pointers.length === 1 ) { + + rotateStart.set( pointers[ 0 ].pageX, pointers[ 0 ].pageY ); + + } else { + + const x = 0.5 * ( pointers[ 0 ].pageX + pointers[ 1 ].pageX ); + const y = 0.5 * ( pointers[ 0 ].pageY + pointers[ 1 ].pageY ); + + rotateStart.set( x, y ); + + } + + } + + function handleTouchStartPan() { + + if ( pointers.length === 1 ) { + + panStart.set( pointers[ 0 ].pageX, pointers[ 0 ].pageY ); + + } else { + + const x = 0.5 * ( pointers[ 0 ].pageX + pointers[ 1 ].pageX ); + const y = 0.5 * ( pointers[ 0 ].pageY + pointers[ 1 ].pageY ); + + panStart.set( x, y ); + + } + + } + + function handleTouchStartDolly() { + + const dx = pointers[ 0 ].pageX - pointers[ 1 ].pageX; + const dy = pointers[ 0 ].pageY - pointers[ 1 ].pageY; + + const distance = Math.sqrt( dx * dx + dy * dy ); + + dollyStart.set( 0, distance ); + + } + + function handleTouchStartDollyPan() { + + if ( scope.enableZoom ) handleTouchStartDolly(); + + if ( scope.enablePan ) handleTouchStartPan(); + + } + + function handleTouchStartDollyRotate() { + + if ( scope.enableZoom ) handleTouchStartDolly(); + + if ( scope.enableRotate ) handleTouchStartRotate(); + + } + + function handleTouchMoveRotate( event ) { + + if ( pointers.length == 1 ) { + + rotateEnd.set( event.pageX, event.pageY ); + + } else { + + const position = getSecondPointerPosition( event ); + + const x = 0.5 * ( event.pageX + position.x ); + const y = 0.5 * ( event.pageY + position.y ); + + rotateEnd.set( x, y ); + + } + + rotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed ); + + const element = scope.domElement; + + rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height + + rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight ); + + rotateStart.copy( rotateEnd ); + + } + + function handleTouchMovePan( event ) { + + if ( pointers.length === 1 ) { + + panEnd.set( event.pageX, event.pageY ); + + } else { + + const position = getSecondPointerPosition( event ); + + const x = 0.5 * ( event.pageX + position.x ); + const y = 0.5 * ( event.pageY + position.y ); + + panEnd.set( x, y ); + + } + + panDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed ); + + pan( panDelta.x, panDelta.y ); + + panStart.copy( panEnd ); + + } + + function handleTouchMoveDolly( event ) { + + const position = getSecondPointerPosition( event ); + + const dx = event.pageX - position.x; + const dy = event.pageY - position.y; + + const distance = Math.sqrt( dx * dx + dy * dy ); + + dollyEnd.set( 0, distance ); + + dollyDelta.set( 0, Math.pow( dollyEnd.y / dollyStart.y, scope.zoomSpeed ) ); + + dollyOut( dollyDelta.y ); + + dollyStart.copy( dollyEnd ); + + } + + function handleTouchMoveDollyPan( event ) { + + if ( scope.enableZoom ) handleTouchMoveDolly( event ); + + if ( scope.enablePan ) handleTouchMovePan( event ); + + } + + function handleTouchMoveDollyRotate( event ) { + + if ( scope.enableZoom ) handleTouchMoveDolly( event ); + + if ( scope.enableRotate ) handleTouchMoveRotate( event ); + + } + + function handleTouchEnd( /*event*/ ) { + + // no-op + + } + + // + // event handlers - FSM: listen for events and reset state + // + + function onPointerDown( event ) { + + if ( scope.enabled === false ) return; + + if ( pointers.length === 0 ) { + + scope.domElement.setPointerCapture( event.pointerId ); + + scope.domElement.addEventListener( 'pointermove', onPointerMove ); + scope.domElement.addEventListener( 'pointerup', onPointerUp ); + + } + + // + + addPointer( event ); + + if ( event.pointerType === 'touch' ) { + + onTouchStart( event ); + + } else { + + onMouseDown( event ); + + } + + } + + function onPointerMove( event ) { + + if ( scope.enabled === false ) return; + + if ( event.pointerType === 'touch' ) { + + onTouchMove( event ); + + } else { + + onMouseMove( event ); + + } + + } + + function onPointerUp( event ) { + + if ( scope.enabled === false ) return; + + if ( event.pointerType === 'touch' ) { + + onTouchEnd(); + + } else { + + onMouseUp( event ); + + } + + removePointer( event ); + + // + + if ( pointers.length === 0 ) { + + scope.domElement.releasePointerCapture( event.pointerId ); + + scope.domElement.removeEventListener( 'pointermove', onPointerMove ); + scope.domElement.removeEventListener( 'pointerup', onPointerUp ); + + } + + } + + function onPointerCancel( event ) { + + removePointer( event ); + + } + + function onMouseDown( event ) { + + let mouseAction; + + switch ( event.button ) { + + case 0: + + mouseAction = scope.mouseButtons.LEFT; + break; + + case 1: + + mouseAction = scope.mouseButtons.MIDDLE; + break; + + case 2: + + mouseAction = scope.mouseButtons.RIGHT; + break; + + default: + + mouseAction = - 1; + + } + + switch ( mouseAction ) { + + case MOUSE.DOLLY: + + if ( scope.enableZoom === false ) return; + + handleMouseDownDolly( event ); + + state = STATE.DOLLY; + + break; + + case MOUSE.ROTATE: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + if ( scope.enablePan === false ) return; + + handleMouseDownPan( event ); + + state = STATE.PAN; + + } else { + + if ( scope.enableRotate === false ) return; + + handleMouseDownRotate( event ); + + state = STATE.ROTATE; + + } + + break; + + case MOUSE.PAN: + + if ( event.ctrlKey || event.metaKey || event.shiftKey ) { + + if ( scope.enableRotate === false ) return; + + handleMouseDownRotate( event ); + + state = STATE.ROTATE; + + } else { + + if ( scope.enablePan === false ) return; + + handleMouseDownPan( event ); + + state = STATE.PAN; + + } + + break; + + default: + + state = STATE.NONE; + + } + + if ( state !== STATE.NONE ) { + + scope.dispatchEvent( _startEvent ); + + } + + } + + function onMouseMove( event ) { + + if ( scope.enabled === false ) return; + + switch ( state ) { + + case STATE.ROTATE: + + if ( scope.enableRotate === false ) return; + + handleMouseMoveRotate( event ); + + break; + + case STATE.DOLLY: + + if ( scope.enableZoom === false ) return; + + handleMouseMoveDolly( event ); + + break; + + case STATE.PAN: + + if ( scope.enablePan === false ) return; + + handleMouseMovePan( event ); + + break; + + } + + } + + function onMouseUp( event ) { + + handleMouseUp( event ); + + scope.dispatchEvent( _endEvent ); + + state = STATE.NONE; + + } + + function onMouseWheel( event ) { + + if ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE ) return; + + event.preventDefault(); + + scope.dispatchEvent( _startEvent ); + + handleMouseWheel( event ); + + scope.dispatchEvent( _endEvent ); + + } + + function onKeyDown( event ) { + + if ( scope.enabled === false || scope.enablePan === false ) return; + + handleKeyDown( event ); + + } + + function onTouchStart( event ) { + + trackPointer( event ); + + switch ( pointers.length ) { + + case 1: + + switch ( scope.touches.ONE ) { + + case TOUCH.ROTATE: + + if ( scope.enableRotate === false ) return; + + handleTouchStartRotate(); + + state = STATE.TOUCH_ROTATE; + + break; + + case TOUCH.PAN: + + if ( scope.enablePan === false ) return; + + handleTouchStartPan(); + + state = STATE.TOUCH_PAN; + + break; + + default: + + state = STATE.NONE; + + } + + break; + + case 2: + + switch ( scope.touches.TWO ) { + + case TOUCH.DOLLY_PAN: + + if ( scope.enableZoom === false && scope.enablePan === false ) return; + + handleTouchStartDollyPan(); + + state = STATE.TOUCH_DOLLY_PAN; + + break; + + case TOUCH.DOLLY_ROTATE: + + if ( scope.enableZoom === false && scope.enableRotate === false ) return; + + handleTouchStartDollyRotate(); + + state = STATE.TOUCH_DOLLY_ROTATE; + + break; + + default: + + state = STATE.NONE; + + } + + break; + + default: + + state = STATE.NONE; + + } + + if ( state !== STATE.NONE ) { + + scope.dispatchEvent( _startEvent ); + + } + + } + + function onTouchMove( event ) { + + trackPointer( event ); + + switch ( state ) { + + case STATE.TOUCH_ROTATE: + + if ( scope.enableRotate === false ) return; + + handleTouchMoveRotate( event ); + + scope.update(); + + break; + + case STATE.TOUCH_PAN: + + if ( scope.enablePan === false ) return; + + handleTouchMovePan( event ); + + scope.update(); + + break; + + case STATE.TOUCH_DOLLY_PAN: + + if ( scope.enableZoom === false && scope.enablePan === false ) return; + + handleTouchMoveDollyPan( event ); + + scope.update(); + + break; + + case STATE.TOUCH_DOLLY_ROTATE: + + if ( scope.enableZoom === false && scope.enableRotate === false ) return; + + handleTouchMoveDollyRotate( event ); + + scope.update(); + + break; + + default: + + state = STATE.NONE; + + } + + } + + function onTouchEnd( event ) { + + handleTouchEnd( event ); + + scope.dispatchEvent( _endEvent ); + + state = STATE.NONE; + + } + + function onContextMenu( event ) { + + if ( scope.enabled === false ) return; + + event.preventDefault(); + + } + + function addPointer( event ) { + + pointers.push( event ); + + } + + function removePointer( event ) { + + delete pointerPositions[ event.pointerId ]; + + for ( let i = 0; i < pointers.length; i ++ ) { + + if ( pointers[ i ].pointerId == event.pointerId ) { + + pointers.splice( i, 1 ); + return; + + } + + } + + } + + function trackPointer( event ) { + + let position = pointerPositions[ event.pointerId ]; + + if ( position === undefined ) { + + position = new Vector2(); + pointerPositions[ event.pointerId ] = position; + + } + + position.set( event.pageX, event.pageY ); + + } + + function getSecondPointerPosition( event ) { + + const pointer = ( event.pointerId === pointers[ 0 ].pointerId ) ? pointers[ 1 ] : pointers[ 0 ]; + + return pointerPositions[ pointer.pointerId ]; + + } + + // + + scope.domElement.addEventListener( 'contextmenu', onContextMenu ); + + scope.domElement.addEventListener( 'pointerdown', onPointerDown ); + scope.domElement.addEventListener( 'pointercancel', onPointerCancel ); + scope.domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } ); + + // force an update at start + + this.update(); + + } + +} + + +// This set of controls performs orbiting, dollying (zooming), and panning. +// Unlike TrackballControls, it maintains the "up" direction object.up (+Y by default). +// This is very similar to OrbitControls, another set of touch behavior +// +// Orbit - right mouse, or left mouse + ctrl/meta/shiftKey / touch: two-finger rotate +// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish +// Pan - left mouse, or arrow keys / touch: one-finger move + +class MapControls extends OrbitControls { + + constructor( object, domElement ) { + + super( object, domElement ); + + this.screenSpacePanning = false; // pan orthogonal to world-space direction camera.up + + this.mouseButtons.LEFT = MOUSE.PAN; + this.mouseButtons.RIGHT = MOUSE.ROTATE; + + this.touches.ONE = TOUCH.PAN; + this.touches.TWO = TOUCH.DOLLY_ROTATE; + + } + +} + +export { OrbitControls, MapControls }; diff --git a/node_modules/three/examples/jsm/controls/PointerLockControls.js b/node_modules/three/examples/jsm/controls/PointerLockControls.js new file mode 100644 index 0000000..f612610 --- /dev/null +++ b/node_modules/three/examples/jsm/controls/PointerLockControls.js @@ -0,0 +1,162 @@ +import { + Euler, + EventDispatcher, + Vector3 +} from 'three'; + +const _euler = new Euler( 0, 0, 0, 'YXZ' ); +const _vector = new Vector3(); + +const _changeEvent = { type: 'change' }; +const _lockEvent = { type: 'lock' }; +const _unlockEvent = { type: 'unlock' }; + +const _PI_2 = Math.PI / 2; + +class PointerLockControls extends EventDispatcher { + + constructor( camera, domElement ) { + + super(); + + if ( domElement === undefined ) { + + console.warn( 'THREE.PointerLockControls: The second parameter "domElement" is now mandatory.' ); + domElement = document.body; + + } + + this.domElement = domElement; + this.isLocked = false; + + // Set to constrain the pitch of the camera + // Range is 0 to Math.PI radians + this.minPolarAngle = 0; // radians + this.maxPolarAngle = Math.PI; // radians + + const scope = this; + + function onMouseMove( event ) { + + if ( scope.isLocked === false ) return; + + const movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0; + const movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0; + + _euler.setFromQuaternion( camera.quaternion ); + + _euler.y -= movementX * 0.002; + _euler.x -= movementY * 0.002; + + _euler.x = Math.max( _PI_2 - scope.maxPolarAngle, Math.min( _PI_2 - scope.minPolarAngle, _euler.x ) ); + + camera.quaternion.setFromEuler( _euler ); + + scope.dispatchEvent( _changeEvent ); + + } + + function onPointerlockChange() { + + if ( scope.domElement.ownerDocument.pointerLockElement === scope.domElement ) { + + scope.dispatchEvent( _lockEvent ); + + scope.isLocked = true; + + } else { + + scope.dispatchEvent( _unlockEvent ); + + scope.isLocked = false; + + } + + } + + function onPointerlockError() { + + console.error( 'THREE.PointerLockControls: Unable to use Pointer Lock API' ); + + } + + this.connect = function () { + + scope.domElement.ownerDocument.addEventListener( 'mousemove', onMouseMove ); + scope.domElement.ownerDocument.addEventListener( 'pointerlockchange', onPointerlockChange ); + scope.domElement.ownerDocument.addEventListener( 'pointerlockerror', onPointerlockError ); + + }; + + this.disconnect = function () { + + scope.domElement.ownerDocument.removeEventListener( 'mousemove', onMouseMove ); + scope.domElement.ownerDocument.removeEventListener( 'pointerlockchange', onPointerlockChange ); + scope.domElement.ownerDocument.removeEventListener( 'pointerlockerror', onPointerlockError ); + + }; + + this.dispose = function () { + + this.disconnect(); + + }; + + this.getObject = function () { // retaining this method for backward compatibility + + return camera; + + }; + + this.getDirection = function () { + + const direction = new Vector3( 0, 0, - 1 ); + + return function ( v ) { + + return v.copy( direction ).applyQuaternion( camera.quaternion ); + + }; + + }(); + + this.moveForward = function ( distance ) { + + // move forward parallel to the xz-plane + // assumes camera.up is y-up + + _vector.setFromMatrixColumn( camera.matrix, 0 ); + + _vector.crossVectors( camera.up, _vector ); + + camera.position.addScaledVector( _vector, distance ); + + }; + + this.moveRight = function ( distance ) { + + _vector.setFromMatrixColumn( camera.matrix, 0 ); + + camera.position.addScaledVector( _vector, distance ); + + }; + + this.lock = function () { + + this.domElement.requestPointerLock(); + + }; + + this.unlock = function () { + + scope.domElement.ownerDocument.exitPointerLock(); + + }; + + this.connect(); + + } + +} + +export { PointerLockControls }; diff --git a/node_modules/three/examples/jsm/controls/TrackballControls.js b/node_modules/three/examples/jsm/controls/TrackballControls.js new file mode 100644 index 0000000..e5cc757 --- /dev/null +++ b/node_modules/three/examples/jsm/controls/TrackballControls.js @@ -0,0 +1,808 @@ +import { + EventDispatcher, + MOUSE, + Quaternion, + Vector2, + Vector3 +} from 'three'; + +const _changeEvent = { type: 'change' }; +const _startEvent = { type: 'start' }; +const _endEvent = { type: 'end' }; + +class TrackballControls extends EventDispatcher { + + constructor( object, domElement ) { + + super(); + + if ( domElement === undefined ) console.warn( 'THREE.TrackballControls: The second parameter "domElement" is now mandatory.' ); + if ( domElement === document ) console.error( 'THREE.TrackballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.' ); + + const scope = this; + const STATE = { NONE: - 1, ROTATE: 0, ZOOM: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_ZOOM_PAN: 4 }; + + this.object = object; + this.domElement = domElement; + this.domElement.style.touchAction = 'none'; // disable touch scroll + + // API + + this.enabled = true; + + this.screen = { left: 0, top: 0, width: 0, height: 0 }; + + this.rotateSpeed = 1.0; + this.zoomSpeed = 1.2; + this.panSpeed = 0.3; + + this.noRotate = false; + this.noZoom = false; + this.noPan = false; + + this.staticMoving = false; + this.dynamicDampingFactor = 0.2; + + this.minDistance = 0; + this.maxDistance = Infinity; + + this.keys = [ 'KeyA' /*A*/, 'KeyS' /*S*/, 'KeyD' /*D*/ ]; + + this.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN }; + + // internals + + this.target = new Vector3(); + + const EPS = 0.000001; + + const lastPosition = new Vector3(); + let lastZoom = 1; + + let _state = STATE.NONE, + _keyState = STATE.NONE, + + _touchZoomDistanceStart = 0, + _touchZoomDistanceEnd = 0, + + _lastAngle = 0; + + const _eye = new Vector3(), + + _movePrev = new Vector2(), + _moveCurr = new Vector2(), + + _lastAxis = new Vector3(), + + _zoomStart = new Vector2(), + _zoomEnd = new Vector2(), + + _panStart = new Vector2(), + _panEnd = new Vector2(), + + _pointers = [], + _pointerPositions = {}; + + // for reset + + this.target0 = this.target.clone(); + this.position0 = this.object.position.clone(); + this.up0 = this.object.up.clone(); + this.zoom0 = this.object.zoom; + + // methods + + this.handleResize = function () { + + const box = scope.domElement.getBoundingClientRect(); + // adjustments come from similar code in the jquery offset() function + const d = scope.domElement.ownerDocument.documentElement; + scope.screen.left = box.left + window.pageXOffset - d.clientLeft; + scope.screen.top = box.top + window.pageYOffset - d.clientTop; + scope.screen.width = box.width; + scope.screen.height = box.height; + + }; + + const getMouseOnScreen = ( function () { + + const vector = new Vector2(); + + return function getMouseOnScreen( pageX, pageY ) { + + vector.set( + ( pageX - scope.screen.left ) / scope.screen.width, + ( pageY - scope.screen.top ) / scope.screen.height + ); + + return vector; + + }; + + }() ); + + const getMouseOnCircle = ( function () { + + const vector = new Vector2(); + + return function getMouseOnCircle( pageX, pageY ) { + + vector.set( + ( ( pageX - scope.screen.width * 0.5 - scope.screen.left ) / ( scope.screen.width * 0.5 ) ), + ( ( scope.screen.height + 2 * ( scope.screen.top - pageY ) ) / scope.screen.width ) // screen.width intentional + ); + + return vector; + + }; + + }() ); + + this.rotateCamera = ( function () { + + const axis = new Vector3(), + quaternion = new Quaternion(), + eyeDirection = new Vector3(), + objectUpDirection = new Vector3(), + objectSidewaysDirection = new Vector3(), + moveDirection = new Vector3(); + + return function rotateCamera() { + + moveDirection.set( _moveCurr.x - _movePrev.x, _moveCurr.y - _movePrev.y, 0 ); + let angle = moveDirection.length(); + + if ( angle ) { + + _eye.copy( scope.object.position ).sub( scope.target ); + + eyeDirection.copy( _eye ).normalize(); + objectUpDirection.copy( scope.object.up ).normalize(); + objectSidewaysDirection.crossVectors( objectUpDirection, eyeDirection ).normalize(); + + objectUpDirection.setLength( _moveCurr.y - _movePrev.y ); + objectSidewaysDirection.setLength( _moveCurr.x - _movePrev.x ); + + moveDirection.copy( objectUpDirection.add( objectSidewaysDirection ) ); + + axis.crossVectors( moveDirection, _eye ).normalize(); + + angle *= scope.rotateSpeed; + quaternion.setFromAxisAngle( axis, angle ); + + _eye.applyQuaternion( quaternion ); + scope.object.up.applyQuaternion( quaternion ); + + _lastAxis.copy( axis ); + _lastAngle = angle; + + } else if ( ! scope.staticMoving && _lastAngle ) { + + _lastAngle *= Math.sqrt( 1.0 - scope.dynamicDampingFactor ); + _eye.copy( scope.object.position ).sub( scope.target ); + quaternion.setFromAxisAngle( _lastAxis, _lastAngle ); + _eye.applyQuaternion( quaternion ); + scope.object.up.applyQuaternion( quaternion ); + + } + + _movePrev.copy( _moveCurr ); + + }; + + }() ); + + + this.zoomCamera = function () { + + let factor; + + if ( _state === STATE.TOUCH_ZOOM_PAN ) { + + factor = _touchZoomDistanceStart / _touchZoomDistanceEnd; + _touchZoomDistanceStart = _touchZoomDistanceEnd; + + if ( scope.object.isPerspectiveCamera ) { + + _eye.multiplyScalar( factor ); + + } else if ( scope.object.isOrthographicCamera ) { + + scope.object.zoom /= factor; + scope.object.updateProjectionMatrix(); + + } else { + + console.warn( 'THREE.TrackballControls: Unsupported camera type' ); + + } + + } else { + + factor = 1.0 + ( _zoomEnd.y - _zoomStart.y ) * scope.zoomSpeed; + + if ( factor !== 1.0 && factor > 0.0 ) { + + if ( scope.object.isPerspectiveCamera ) { + + _eye.multiplyScalar( factor ); + + } else if ( scope.object.isOrthographicCamera ) { + + scope.object.zoom /= factor; + scope.object.updateProjectionMatrix(); + + } else { + + console.warn( 'THREE.TrackballControls: Unsupported camera type' ); + + } + + } + + if ( scope.staticMoving ) { + + _zoomStart.copy( _zoomEnd ); + + } else { + + _zoomStart.y += ( _zoomEnd.y - _zoomStart.y ) * this.dynamicDampingFactor; + + } + + } + + }; + + this.panCamera = ( function () { + + const mouseChange = new Vector2(), + objectUp = new Vector3(), + pan = new Vector3(); + + return function panCamera() { + + mouseChange.copy( _panEnd ).sub( _panStart ); + + if ( mouseChange.lengthSq() ) { + + if ( scope.object.isOrthographicCamera ) { + + const scale_x = ( scope.object.right - scope.object.left ) / scope.object.zoom / scope.domElement.clientWidth; + const scale_y = ( scope.object.top - scope.object.bottom ) / scope.object.zoom / scope.domElement.clientWidth; + + mouseChange.x *= scale_x; + mouseChange.y *= scale_y; + + } + + mouseChange.multiplyScalar( _eye.length() * scope.panSpeed ); + + pan.copy( _eye ).cross( scope.object.up ).setLength( mouseChange.x ); + pan.add( objectUp.copy( scope.object.up ).setLength( mouseChange.y ) ); + + scope.object.position.add( pan ); + scope.target.add( pan ); + + if ( scope.staticMoving ) { + + _panStart.copy( _panEnd ); + + } else { + + _panStart.add( mouseChange.subVectors( _panEnd, _panStart ).multiplyScalar( scope.dynamicDampingFactor ) ); + + } + + } + + }; + + }() ); + + this.checkDistances = function () { + + if ( ! scope.noZoom || ! scope.noPan ) { + + if ( _eye.lengthSq() > scope.maxDistance * scope.maxDistance ) { + + scope.object.position.addVectors( scope.target, _eye.setLength( scope.maxDistance ) ); + _zoomStart.copy( _zoomEnd ); + + } + + if ( _eye.lengthSq() < scope.minDistance * scope.minDistance ) { + + scope.object.position.addVectors( scope.target, _eye.setLength( scope.minDistance ) ); + _zoomStart.copy( _zoomEnd ); + + } + + } + + }; + + this.update = function () { + + _eye.subVectors( scope.object.position, scope.target ); + + if ( ! scope.noRotate ) { + + scope.rotateCamera(); + + } + + if ( ! scope.noZoom ) { + + scope.zoomCamera(); + + } + + if ( ! scope.noPan ) { + + scope.panCamera(); + + } + + scope.object.position.addVectors( scope.target, _eye ); + + if ( scope.object.isPerspectiveCamera ) { + + scope.checkDistances(); + + scope.object.lookAt( scope.target ); + + if ( lastPosition.distanceToSquared( scope.object.position ) > EPS ) { + + scope.dispatchEvent( _changeEvent ); + + lastPosition.copy( scope.object.position ); + + } + + } else if ( scope.object.isOrthographicCamera ) { + + scope.object.lookAt( scope.target ); + + if ( lastPosition.distanceToSquared( scope.object.position ) > EPS || lastZoom !== scope.object.zoom ) { + + scope.dispatchEvent( _changeEvent ); + + lastPosition.copy( scope.object.position ); + lastZoom = scope.object.zoom; + + } + + } else { + + console.warn( 'THREE.TrackballControls: Unsupported camera type' ); + + } + + }; + + this.reset = function () { + + _state = STATE.NONE; + _keyState = STATE.NONE; + + scope.target.copy( scope.target0 ); + scope.object.position.copy( scope.position0 ); + scope.object.up.copy( scope.up0 ); + scope.object.zoom = scope.zoom0; + + scope.object.updateProjectionMatrix(); + + _eye.subVectors( scope.object.position, scope.target ); + + scope.object.lookAt( scope.target ); + + scope.dispatchEvent( _changeEvent ); + + lastPosition.copy( scope.object.position ); + lastZoom = scope.object.zoom; + + }; + + // listeners + + function onPointerDown( event ) { + + if ( scope.enabled === false ) return; + + if ( _pointers.length === 0 ) { + + scope.domElement.setPointerCapture( event.pointerId ); + + scope.domElement.addEventListener( 'pointermove', onPointerMove ); + scope.domElement.addEventListener( 'pointerup', onPointerUp ); + + } + + // + + addPointer( event ); + + if ( event.pointerType === 'touch' ) { + + onTouchStart( event ); + + } else { + + onMouseDown( event ); + + } + + } + + function onPointerMove( event ) { + + if ( scope.enabled === false ) return; + + if ( event.pointerType === 'touch' ) { + + onTouchMove( event ); + + } else { + + onMouseMove( event ); + + } + + } + + function onPointerUp( event ) { + + if ( scope.enabled === false ) return; + + if ( event.pointerType === 'touch' ) { + + onTouchEnd( event ); + + } else { + + onMouseUp(); + + } + + // + + removePointer( event ); + + if ( _pointers.length === 0 ) { + + scope.domElement.releasePointerCapture( event.pointerId ); + + scope.domElement.removeEventListener( 'pointermove', onPointerMove ); + scope.domElement.removeEventListener( 'pointerup', onPointerUp ); + + } + + + } + + function onPointerCancel( event ) { + + removePointer( event ); + + } + + function keydown( event ) { + + if ( scope.enabled === false ) return; + + window.removeEventListener( 'keydown', keydown ); + + if ( _keyState !== STATE.NONE ) { + + return; + + } else if ( event.code === scope.keys[ STATE.ROTATE ] && ! scope.noRotate ) { + + _keyState = STATE.ROTATE; + + } else if ( event.code === scope.keys[ STATE.ZOOM ] && ! scope.noZoom ) { + + _keyState = STATE.ZOOM; + + } else if ( event.code === scope.keys[ STATE.PAN ] && ! scope.noPan ) { + + _keyState = STATE.PAN; + + } + + } + + function keyup() { + + if ( scope.enabled === false ) return; + + _keyState = STATE.NONE; + + window.addEventListener( 'keydown', keydown ); + + } + + function onMouseDown( event ) { + + if ( _state === STATE.NONE ) { + + switch ( event.button ) { + + case scope.mouseButtons.LEFT: + _state = STATE.ROTATE; + break; + + case scope.mouseButtons.MIDDLE: + _state = STATE.ZOOM; + break; + + case scope.mouseButtons.RIGHT: + _state = STATE.PAN; + break; + + default: + _state = STATE.NONE; + + } + + } + + const state = ( _keyState !== STATE.NONE ) ? _keyState : _state; + + if ( state === STATE.ROTATE && ! scope.noRotate ) { + + _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); + _movePrev.copy( _moveCurr ); + + } else if ( state === STATE.ZOOM && ! scope.noZoom ) { + + _zoomStart.copy( getMouseOnScreen( event.pageX, event.pageY ) ); + _zoomEnd.copy( _zoomStart ); + + } else if ( state === STATE.PAN && ! scope.noPan ) { + + _panStart.copy( getMouseOnScreen( event.pageX, event.pageY ) ); + _panEnd.copy( _panStart ); + + } + + scope.dispatchEvent( _startEvent ); + + } + + function onMouseMove( event ) { + + const state = ( _keyState !== STATE.NONE ) ? _keyState : _state; + + if ( state === STATE.ROTATE && ! scope.noRotate ) { + + _movePrev.copy( _moveCurr ); + _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); + + } else if ( state === STATE.ZOOM && ! scope.noZoom ) { + + _zoomEnd.copy( getMouseOnScreen( event.pageX, event.pageY ) ); + + } else if ( state === STATE.PAN && ! scope.noPan ) { + + _panEnd.copy( getMouseOnScreen( event.pageX, event.pageY ) ); + + } + + } + + function onMouseUp() { + + _state = STATE.NONE; + + scope.dispatchEvent( _endEvent ); + + } + + function onMouseWheel( event ) { + + if ( scope.enabled === false ) return; + + if ( scope.noZoom === true ) return; + + event.preventDefault(); + + switch ( event.deltaMode ) { + + case 2: + // Zoom in pages + _zoomStart.y -= event.deltaY * 0.025; + break; + + case 1: + // Zoom in lines + _zoomStart.y -= event.deltaY * 0.01; + break; + + default: + // undefined, 0, assume pixels + _zoomStart.y -= event.deltaY * 0.00025; + break; + + } + + scope.dispatchEvent( _startEvent ); + scope.dispatchEvent( _endEvent ); + + } + + function onTouchStart( event ) { + + trackPointer( event ); + + switch ( _pointers.length ) { + + case 1: + _state = STATE.TOUCH_ROTATE; + _moveCurr.copy( getMouseOnCircle( _pointers[ 0 ].pageX, _pointers[ 0 ].pageY ) ); + _movePrev.copy( _moveCurr ); + break; + + default: // 2 or more + _state = STATE.TOUCH_ZOOM_PAN; + const dx = _pointers[ 0 ].pageX - _pointers[ 1 ].pageX; + const dy = _pointers[ 0 ].pageY - _pointers[ 1 ].pageY; + _touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt( dx * dx + dy * dy ); + + const x = ( _pointers[ 0 ].pageX + _pointers[ 1 ].pageX ) / 2; + const y = ( _pointers[ 0 ].pageY + _pointers[ 1 ].pageY ) / 2; + _panStart.copy( getMouseOnScreen( x, y ) ); + _panEnd.copy( _panStart ); + break; + + } + + scope.dispatchEvent( _startEvent ); + + } + + function onTouchMove( event ) { + + trackPointer( event ); + + switch ( _pointers.length ) { + + case 1: + _movePrev.copy( _moveCurr ); + _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); + break; + + default: // 2 or more + + const position = getSecondPointerPosition( event ); + + const dx = event.pageX - position.x; + const dy = event.pageY - position.y; + _touchZoomDistanceEnd = Math.sqrt( dx * dx + dy * dy ); + + const x = ( event.pageX + position.x ) / 2; + const y = ( event.pageY + position.y ) / 2; + _panEnd.copy( getMouseOnScreen( x, y ) ); + break; + + } + + } + + function onTouchEnd( event ) { + + switch ( _pointers.length ) { + + case 0: + _state = STATE.NONE; + break; + + case 1: + _state = STATE.TOUCH_ROTATE; + _moveCurr.copy( getMouseOnCircle( event.pageX, event.pageY ) ); + _movePrev.copy( _moveCurr ); + break; + + case 2: + _state = STATE.TOUCH_ZOOM_PAN; + _moveCurr.copy( getMouseOnCircle( event.pageX - _movePrev.pageX, event.pageY - _movePrev.pageY ) ); + _movePrev.copy( _moveCurr ); + break; + + } + + scope.dispatchEvent( _endEvent ); + + } + + function contextmenu( event ) { + + if ( scope.enabled === false ) return; + + event.preventDefault(); + + } + + function addPointer( event ) { + + _pointers.push( event ); + + } + + function removePointer( event ) { + + delete _pointerPositions[ event.pointerId ]; + + for ( let i = 0; i < _pointers.length; i ++ ) { + + if ( _pointers[ i ].pointerId == event.pointerId ) { + + _pointers.splice( i, 1 ); + return; + + } + + } + + } + + function trackPointer( event ) { + + let position = _pointerPositions[ event.pointerId ]; + + if ( position === undefined ) { + + position = new Vector2(); + _pointerPositions[ event.pointerId ] = position; + + } + + position.set( event.pageX, event.pageY ); + + } + + function getSecondPointerPosition( event ) { + + const pointer = ( event.pointerId === _pointers[ 0 ].pointerId ) ? _pointers[ 1 ] : _pointers[ 0 ]; + + return _pointerPositions[ pointer.pointerId ]; + + } + + this.dispose = function () { + + scope.domElement.removeEventListener( 'contextmenu', contextmenu ); + + scope.domElement.removeEventListener( 'pointerdown', onPointerDown ); + scope.domElement.removeEventListener( 'pointercancel', onPointerCancel ); + scope.domElement.removeEventListener( 'wheel', onMouseWheel ); + + scope.domElement.removeEventListener( 'pointermove', onPointerMove ); + scope.domElement.removeEventListener( 'pointerup', onPointerUp ); + + window.removeEventListener( 'keydown', keydown ); + window.removeEventListener( 'keyup', keyup ); + + }; + + this.domElement.addEventListener( 'contextmenu', contextmenu ); + + this.domElement.addEventListener( 'pointerdown', onPointerDown ); + this.domElement.addEventListener( 'pointercancel', onPointerCancel ); + this.domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } ); + + + window.addEventListener( 'keydown', keydown ); + window.addEventListener( 'keyup', keyup ); + + this.handleResize(); + + // force an update at start + this.update(); + + } + +} + +export { TrackballControls }; diff --git a/node_modules/three/examples/jsm/controls/TransformControls.js b/node_modules/three/examples/jsm/controls/TransformControls.js new file mode 100644 index 0000000..16fe1c1 --- /dev/null +++ b/node_modules/three/examples/jsm/controls/TransformControls.js @@ -0,0 +1,1556 @@ +import { + BoxGeometry, + BufferGeometry, + CylinderGeometry, + DoubleSide, + Euler, + Float32BufferAttribute, + Line, + LineBasicMaterial, + Matrix4, + Mesh, + MeshBasicMaterial, + Object3D, + OctahedronGeometry, + PlaneGeometry, + Quaternion, + Raycaster, + SphereGeometry, + TorusGeometry, + Vector3 +} from 'three'; + +const _raycaster = new Raycaster(); + +const _tempVector = new Vector3(); +const _tempVector2 = new Vector3(); +const _tempQuaternion = new Quaternion(); +const _unit = { + X: new Vector3( 1, 0, 0 ), + Y: new Vector3( 0, 1, 0 ), + Z: new Vector3( 0, 0, 1 ) +}; + +const _changeEvent = { type: 'change' }; +const _mouseDownEvent = { type: 'mouseDown' }; +const _mouseUpEvent = { type: 'mouseUp', mode: null }; +const _objectChangeEvent = { type: 'objectChange' }; + +class TransformControls extends Object3D { + + constructor( camera, domElement ) { + + super(); + + if ( domElement === undefined ) { + + console.warn( 'THREE.TransformControls: The second parameter "domElement" is now mandatory.' ); + domElement = document; + + } + + this.visible = false; + this.domElement = domElement; + this.domElement.style.touchAction = 'none'; // disable touch scroll + + const _gizmo = new TransformControlsGizmo(); + this._gizmo = _gizmo; + this.add( _gizmo ); + + const _plane = new TransformControlsPlane(); + this._plane = _plane; + this.add( _plane ); + + const scope = this; + + // Defined getter, setter and store for a property + function defineProperty( propName, defaultValue ) { + + let propValue = defaultValue; + + Object.defineProperty( scope, propName, { + + get: function () { + + return propValue !== undefined ? propValue : defaultValue; + + }, + + set: function ( value ) { + + if ( propValue !== value ) { + + propValue = value; + _plane[ propName ] = value; + _gizmo[ propName ] = value; + + scope.dispatchEvent( { type: propName + '-changed', value: value } ); + scope.dispatchEvent( _changeEvent ); + + } + + } + + } ); + + scope[ propName ] = defaultValue; + _plane[ propName ] = defaultValue; + _gizmo[ propName ] = defaultValue; + + } + + // Define properties with getters/setter + // Setting the defined property will automatically trigger change event + // Defined properties are passed down to gizmo and plane + + defineProperty( 'camera', camera ); + defineProperty( 'object', undefined ); + defineProperty( 'enabled', true ); + defineProperty( 'axis', null ); + defineProperty( 'mode', 'translate' ); + defineProperty( 'translationSnap', null ); + defineProperty( 'rotationSnap', null ); + defineProperty( 'scaleSnap', null ); + defineProperty( 'space', 'world' ); + defineProperty( 'size', 1 ); + defineProperty( 'dragging', false ); + defineProperty( 'showX', true ); + defineProperty( 'showY', true ); + defineProperty( 'showZ', true ); + + // Reusable utility variables + + const worldPosition = new Vector3(); + const worldPositionStart = new Vector3(); + const worldQuaternion = new Quaternion(); + const worldQuaternionStart = new Quaternion(); + const cameraPosition = new Vector3(); + const cameraQuaternion = new Quaternion(); + const pointStart = new Vector3(); + const pointEnd = new Vector3(); + const rotationAxis = new Vector3(); + const rotationAngle = 0; + const eye = new Vector3(); + + // TODO: remove properties unused in plane and gizmo + + defineProperty( 'worldPosition', worldPosition ); + defineProperty( 'worldPositionStart', worldPositionStart ); + defineProperty( 'worldQuaternion', worldQuaternion ); + defineProperty( 'worldQuaternionStart', worldQuaternionStart ); + defineProperty( 'cameraPosition', cameraPosition ); + defineProperty( 'cameraQuaternion', cameraQuaternion ); + defineProperty( 'pointStart', pointStart ); + defineProperty( 'pointEnd', pointEnd ); + defineProperty( 'rotationAxis', rotationAxis ); + defineProperty( 'rotationAngle', rotationAngle ); + defineProperty( 'eye', eye ); + + this._offset = new Vector3(); + this._startNorm = new Vector3(); + this._endNorm = new Vector3(); + this._cameraScale = new Vector3(); + + this._parentPosition = new Vector3(); + this._parentQuaternion = new Quaternion(); + this._parentQuaternionInv = new Quaternion(); + this._parentScale = new Vector3(); + + this._worldScaleStart = new Vector3(); + this._worldQuaternionInv = new Quaternion(); + this._worldScale = new Vector3(); + + this._positionStart = new Vector3(); + this._quaternionStart = new Quaternion(); + this._scaleStart = new Vector3(); + + this._getPointer = getPointer.bind( this ); + this._onPointerDown = onPointerDown.bind( this ); + this._onPointerHover = onPointerHover.bind( this ); + this._onPointerMove = onPointerMove.bind( this ); + this._onPointerUp = onPointerUp.bind( this ); + + this.domElement.addEventListener( 'pointerdown', this._onPointerDown ); + this.domElement.addEventListener( 'pointermove', this._onPointerHover ); + this.domElement.addEventListener( 'pointerup', this._onPointerUp ); + + } + + // updateMatrixWorld updates key transformation variables + updateMatrixWorld() { + + if ( this.object !== undefined ) { + + this.object.updateMatrixWorld(); + + if ( this.object.parent === null ) { + + console.error( 'TransformControls: The attached 3D object must be a part of the scene graph.' ); + + } else { + + this.object.parent.matrixWorld.decompose( this._parentPosition, this._parentQuaternion, this._parentScale ); + + } + + this.object.matrixWorld.decompose( this.worldPosition, this.worldQuaternion, this._worldScale ); + + this._parentQuaternionInv.copy( this._parentQuaternion ).invert(); + this._worldQuaternionInv.copy( this.worldQuaternion ).invert(); + + } + + this.camera.updateMatrixWorld(); + this.camera.matrixWorld.decompose( this.cameraPosition, this.cameraQuaternion, this._cameraScale ); + + this.eye.copy( this.cameraPosition ).sub( this.worldPosition ).normalize(); + + super.updateMatrixWorld( this ); + + } + + pointerHover( pointer ) { + + if ( this.object === undefined || this.dragging === true ) return; + + _raycaster.setFromCamera( pointer, this.camera ); + + const intersect = intersectObjectWithRay( this._gizmo.picker[ this.mode ], _raycaster ); + + if ( intersect ) { + + this.axis = intersect.object.name; + + } else { + + this.axis = null; + + } + + } + + pointerDown( pointer ) { + + if ( this.object === undefined || this.dragging === true || pointer.button !== 0 ) return; + + if ( this.axis !== null ) { + + _raycaster.setFromCamera( pointer, this.camera ); + + const planeIntersect = intersectObjectWithRay( this._plane, _raycaster, true ); + + if ( planeIntersect ) { + + this.object.updateMatrixWorld(); + this.object.parent.updateMatrixWorld(); + + this._positionStart.copy( this.object.position ); + this._quaternionStart.copy( this.object.quaternion ); + this._scaleStart.copy( this.object.scale ); + + this.object.matrixWorld.decompose( this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart ); + + this.pointStart.copy( planeIntersect.point ).sub( this.worldPositionStart ); + + } + + this.dragging = true; + _mouseDownEvent.mode = this.mode; + this.dispatchEvent( _mouseDownEvent ); + + } + + } + + pointerMove( pointer ) { + + const axis = this.axis; + const mode = this.mode; + const object = this.object; + let space = this.space; + + if ( mode === 'scale' ) { + + space = 'local'; + + } else if ( axis === 'E' || axis === 'XYZE' || axis === 'XYZ' ) { + + space = 'world'; + + } + + if ( object === undefined || axis === null || this.dragging === false || pointer.button !== - 1 ) return; + + _raycaster.setFromCamera( pointer, this.camera ); + + const planeIntersect = intersectObjectWithRay( this._plane, _raycaster, true ); + + if ( ! planeIntersect ) return; + + this.pointEnd.copy( planeIntersect.point ).sub( this.worldPositionStart ); + + if ( mode === 'translate' ) { + + // Apply translate + + this._offset.copy( this.pointEnd ).sub( this.pointStart ); + + if ( space === 'local' && axis !== 'XYZ' ) { + + this._offset.applyQuaternion( this._worldQuaternionInv ); + + } + + if ( axis.indexOf( 'X' ) === - 1 ) this._offset.x = 0; + if ( axis.indexOf( 'Y' ) === - 1 ) this._offset.y = 0; + if ( axis.indexOf( 'Z' ) === - 1 ) this._offset.z = 0; + + if ( space === 'local' && axis !== 'XYZ' ) { + + this._offset.applyQuaternion( this._quaternionStart ).divide( this._parentScale ); + + } else { + + this._offset.applyQuaternion( this._parentQuaternionInv ).divide( this._parentScale ); + + } + + object.position.copy( this._offset ).add( this._positionStart ); + + // Apply translation snap + + if ( this.translationSnap ) { + + if ( space === 'local' ) { + + object.position.applyQuaternion( _tempQuaternion.copy( this._quaternionStart ).invert() ); + + if ( axis.search( 'X' ) !== - 1 ) { + + object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Y' ) !== - 1 ) { + + object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Z' ) !== - 1 ) { + + object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap; + + } + + object.position.applyQuaternion( this._quaternionStart ); + + } + + if ( space === 'world' ) { + + if ( object.parent ) { + + object.position.add( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) ); + + } + + if ( axis.search( 'X' ) !== - 1 ) { + + object.position.x = Math.round( object.position.x / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Y' ) !== - 1 ) { + + object.position.y = Math.round( object.position.y / this.translationSnap ) * this.translationSnap; + + } + + if ( axis.search( 'Z' ) !== - 1 ) { + + object.position.z = Math.round( object.position.z / this.translationSnap ) * this.translationSnap; + + } + + if ( object.parent ) { + + object.position.sub( _tempVector.setFromMatrixPosition( object.parent.matrixWorld ) ); + + } + + } + + } + + } else if ( mode === 'scale' ) { + + if ( axis.search( 'XYZ' ) !== - 1 ) { + + let d = this.pointEnd.length() / this.pointStart.length(); + + if ( this.pointEnd.dot( this.pointStart ) < 0 ) d *= - 1; + + _tempVector2.set( d, d, d ); + + } else { + + _tempVector.copy( this.pointStart ); + _tempVector2.copy( this.pointEnd ); + + _tempVector.applyQuaternion( this._worldQuaternionInv ); + _tempVector2.applyQuaternion( this._worldQuaternionInv ); + + _tempVector2.divide( _tempVector ); + + if ( axis.search( 'X' ) === - 1 ) { + + _tempVector2.x = 1; + + } + + if ( axis.search( 'Y' ) === - 1 ) { + + _tempVector2.y = 1; + + } + + if ( axis.search( 'Z' ) === - 1 ) { + + _tempVector2.z = 1; + + } + + } + + // Apply scale + + object.scale.copy( this._scaleStart ).multiply( _tempVector2 ); + + if ( this.scaleSnap ) { + + if ( axis.search( 'X' ) !== - 1 ) { + + object.scale.x = Math.round( object.scale.x / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + + } + + if ( axis.search( 'Y' ) !== - 1 ) { + + object.scale.y = Math.round( object.scale.y / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + + } + + if ( axis.search( 'Z' ) !== - 1 ) { + + object.scale.z = Math.round( object.scale.z / this.scaleSnap ) * this.scaleSnap || this.scaleSnap; + + } + + } + + } else if ( mode === 'rotate' ) { + + this._offset.copy( this.pointEnd ).sub( this.pointStart ); + + const ROTATION_SPEED = 20 / this.worldPosition.distanceTo( _tempVector.setFromMatrixPosition( this.camera.matrixWorld ) ); + + if ( axis === 'E' ) { + + this.rotationAxis.copy( this.eye ); + this.rotationAngle = this.pointEnd.angleTo( this.pointStart ); + + this._startNorm.copy( this.pointStart ).normalize(); + this._endNorm.copy( this.pointEnd ).normalize(); + + this.rotationAngle *= ( this._endNorm.cross( this._startNorm ).dot( this.eye ) < 0 ? 1 : - 1 ); + + } else if ( axis === 'XYZE' ) { + + this.rotationAxis.copy( this._offset ).cross( this.eye ).normalize(); + this.rotationAngle = this._offset.dot( _tempVector.copy( this.rotationAxis ).cross( this.eye ) ) * ROTATION_SPEED; + + } else if ( axis === 'X' || axis === 'Y' || axis === 'Z' ) { + + this.rotationAxis.copy( _unit[ axis ] ); + + _tempVector.copy( _unit[ axis ] ); + + if ( space === 'local' ) { + + _tempVector.applyQuaternion( this.worldQuaternion ); + + } + + this.rotationAngle = this._offset.dot( _tempVector.cross( this.eye ).normalize() ) * ROTATION_SPEED; + + } + + // Apply rotation snap + + if ( this.rotationSnap ) this.rotationAngle = Math.round( this.rotationAngle / this.rotationSnap ) * this.rotationSnap; + + // Apply rotate + if ( space === 'local' && axis !== 'E' && axis !== 'XYZE' ) { + + object.quaternion.copy( this._quaternionStart ); + object.quaternion.multiply( _tempQuaternion.setFromAxisAngle( this.rotationAxis, this.rotationAngle ) ).normalize(); + + } else { + + this.rotationAxis.applyQuaternion( this._parentQuaternionInv ); + object.quaternion.copy( _tempQuaternion.setFromAxisAngle( this.rotationAxis, this.rotationAngle ) ); + object.quaternion.multiply( this._quaternionStart ).normalize(); + + } + + } + + this.dispatchEvent( _changeEvent ); + this.dispatchEvent( _objectChangeEvent ); + + } + + pointerUp( pointer ) { + + if ( pointer.button !== 0 ) return; + + if ( this.dragging && ( this.axis !== null ) ) { + + _mouseUpEvent.mode = this.mode; + this.dispatchEvent( _mouseUpEvent ); + + } + + this.dragging = false; + this.axis = null; + + } + + dispose() { + + this.domElement.removeEventListener( 'pointerdown', this._onPointerDown ); + this.domElement.removeEventListener( 'pointermove', this._onPointerHover ); + this.domElement.removeEventListener( 'pointermove', this._onPointerMove ); + this.domElement.removeEventListener( 'pointerup', this._onPointerUp ); + + this.traverse( function ( child ) { + + if ( child.geometry ) child.geometry.dispose(); + if ( child.material ) child.material.dispose(); + + } ); + + } + + // Set current object + attach( object ) { + + this.object = object; + this.visible = true; + + return this; + + } + + // Detatch from object + detach() { + + this.object = undefined; + this.visible = false; + this.axis = null; + + return this; + + } + + reset() { + + if ( ! this.enabled ) return; + + if ( this.dragging ) { + + this.object.position.copy( this._positionStart ); + this.object.quaternion.copy( this._quaternionStart ); + this.object.scale.copy( this._scaleStart ); + + this.dispatchEvent( _changeEvent ); + this.dispatchEvent( _objectChangeEvent ); + + this.pointStart.copy( this.pointEnd ); + + } + + } + + getRaycaster() { + + return _raycaster; + + } + + // TODO: deprecate + + getMode() { + + return this.mode; + + } + + setMode( mode ) { + + this.mode = mode; + + } + + setTranslationSnap( translationSnap ) { + + this.translationSnap = translationSnap; + + } + + setRotationSnap( rotationSnap ) { + + this.rotationSnap = rotationSnap; + + } + + setScaleSnap( scaleSnap ) { + + this.scaleSnap = scaleSnap; + + } + + setSize( size ) { + + this.size = size; + + } + + setSpace( space ) { + + this.space = space; + + } + + update() { + + console.warn( 'THREE.TransformControls: update function has no more functionality and therefore has been deprecated.' ); + + } + +} + +TransformControls.prototype.isTransformControls = true; + +// mouse / touch event handlers + +function getPointer( event ) { + + if ( this.domElement.ownerDocument.pointerLockElement ) { + + return { + x: 0, + y: 0, + button: event.button + }; + + } else { + + const rect = this.domElement.getBoundingClientRect(); + + return { + x: ( event.clientX - rect.left ) / rect.width * 2 - 1, + y: - ( event.clientY - rect.top ) / rect.height * 2 + 1, + button: event.button + }; + + } + +} + +function onPointerHover( event ) { + + if ( ! this.enabled ) return; + + switch ( event.pointerType ) { + + case 'mouse': + case 'pen': + this.pointerHover( this._getPointer( event ) ); + break; + + } + +} + +function onPointerDown( event ) { + + if ( ! this.enabled ) return; + + if ( ! document.pointerLockElement ) { + + this.domElement.setPointerCapture( event.pointerId ); + + } + + this.domElement.addEventListener( 'pointermove', this._onPointerMove ); + + this.pointerHover( this._getPointer( event ) ); + this.pointerDown( this._getPointer( event ) ); + +} + +function onPointerMove( event ) { + + if ( ! this.enabled ) return; + + this.pointerMove( this._getPointer( event ) ); + +} + +function onPointerUp( event ) { + + if ( ! this.enabled ) return; + + this.domElement.releasePointerCapture( event.pointerId ); + + this.domElement.removeEventListener( 'pointermove', this._onPointerMove ); + + this.pointerUp( this._getPointer( event ) ); + +} + +function intersectObjectWithRay( object, raycaster, includeInvisible ) { + + const allIntersections = raycaster.intersectObject( object, true ); + + for ( let i = 0; i < allIntersections.length; i ++ ) { + + if ( allIntersections[ i ].object.visible || includeInvisible ) { + + return allIntersections[ i ]; + + } + + } + + return false; + +} + +// + +// Reusable utility variables + +const _tempEuler = new Euler(); +const _alignVector = new Vector3( 0, 1, 0 ); +const _zeroVector = new Vector3( 0, 0, 0 ); +const _lookAtMatrix = new Matrix4(); +const _tempQuaternion2 = new Quaternion(); +const _identityQuaternion = new Quaternion(); +const _dirVector = new Vector3(); +const _tempMatrix = new Matrix4(); + +const _unitX = new Vector3( 1, 0, 0 ); +const _unitY = new Vector3( 0, 1, 0 ); +const _unitZ = new Vector3( 0, 0, 1 ); + +const _v1 = new Vector3(); +const _v2 = new Vector3(); +const _v3 = new Vector3(); + +class TransformControlsGizmo extends Object3D { + + constructor() { + + super(); + + this.type = 'TransformControlsGizmo'; + + // shared materials + + const gizmoMaterial = new MeshBasicMaterial( { + depthTest: false, + depthWrite: false, + fog: false, + toneMapped: false, + transparent: true + } ); + + const gizmoLineMaterial = new LineBasicMaterial( { + depthTest: false, + depthWrite: false, + fog: false, + toneMapped: false, + transparent: true + } ); + + // Make unique material for each axis/color + + const matInvisible = gizmoMaterial.clone(); + matInvisible.opacity = 0.15; + + const matHelper = gizmoLineMaterial.clone(); + matHelper.opacity = 0.5; + + const matRed = gizmoMaterial.clone(); + matRed.color.setHex( 0xff0000 ); + + const matGreen = gizmoMaterial.clone(); + matGreen.color.setHex( 0x00ff00 ); + + const matBlue = gizmoMaterial.clone(); + matBlue.color.setHex( 0x0000ff ); + + const matRedTransparent = gizmoMaterial.clone(); + matRedTransparent.color.setHex( 0xff0000 ); + matRedTransparent.opacity = 0.5; + + const matGreenTransparent = gizmoMaterial.clone(); + matGreenTransparent.color.setHex( 0x00ff00 ); + matGreenTransparent.opacity = 0.5; + + const matBlueTransparent = gizmoMaterial.clone(); + matBlueTransparent.color.setHex( 0x0000ff ); + matBlueTransparent.opacity = 0.5; + + const matWhiteTransparent = gizmoMaterial.clone(); + matWhiteTransparent.opacity = 0.25; + + const matYellowTransparent = gizmoMaterial.clone(); + matYellowTransparent.color.setHex( 0xffff00 ); + matYellowTransparent.opacity = 0.25; + + const matYellow = gizmoMaterial.clone(); + matYellow.color.setHex( 0xffff00 ); + + const matGray = gizmoMaterial.clone(); + matGray.color.setHex( 0x787878 ); + + // reusable geometry + + const arrowGeometry = new CylinderGeometry( 0, 0.04, 0.1, 12 ); + arrowGeometry.translate( 0, 0.05, 0 ); + + const scaleHandleGeometry = new BoxGeometry( 0.08, 0.08, 0.08 ); + scaleHandleGeometry.translate( 0, 0.04, 0 ); + + const lineGeometry = new BufferGeometry(); + lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 1, 0, 0 ], 3 ) ); + + const lineGeometry2 = new CylinderGeometry( 0.0075, 0.0075, 0.5, 3 ); + lineGeometry2.translate( 0, 0.25, 0 ); + + function CircleGeometry( radius, arc ) { + + const geometry = new TorusGeometry( radius, 0.0075, 3, 64, arc * Math.PI * 2 ); + geometry.rotateY( Math.PI / 2 ); + geometry.rotateX( Math.PI / 2 ); + return geometry; + + } + + // Special geometry for transform helper. If scaled with position vector it spans from [0,0,0] to position + + function TranslateHelperGeometry() { + + const geometry = new BufferGeometry(); + + geometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 1, 1, 1 ], 3 ) ); + + return geometry; + + } + + // Gizmo definitions - custom hierarchy definitions for setupGizmo() function + + const gizmoTranslate = { + X: [ + [ new Mesh( arrowGeometry, matRed ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( arrowGeometry, matRed ), [ - 0.5, 0, 0 ], [ 0, 0, Math.PI / 2 ]], + [ new Mesh( lineGeometry2, matRed ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]] + ], + Y: [ + [ new Mesh( arrowGeometry, matGreen ), [ 0, 0.5, 0 ]], + [ new Mesh( arrowGeometry, matGreen ), [ 0, - 0.5, 0 ], [ Math.PI, 0, 0 ]], + [ new Mesh( lineGeometry2, matGreen ) ] + ], + Z: [ + [ new Mesh( arrowGeometry, matBlue ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( arrowGeometry, matBlue ), [ 0, 0, - 0.5 ], [ - Math.PI / 2, 0, 0 ]], + [ new Mesh( lineGeometry2, matBlue ), null, [ Math.PI / 2, 0, 0 ]] + ], + XYZ: [ + [ new Mesh( new OctahedronGeometry( 0.1, 0 ), matWhiteTransparent.clone() ), [ 0, 0, 0 ]] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent.clone() ), [ 0.15, 0.15, 0 ]] + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent.clone() ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent.clone() ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] + ] + }; + + const pickerTranslate = { + X: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0.3, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ - 0.3, 0, 0 ], [ 0, 0, Math.PI / 2 ]] + ], + Y: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0.3, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, - 0.3, 0 ], [ 0, 0, Math.PI ]] + ], + Z: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, 0.3 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, - 0.3 ], [ - Math.PI / 2, 0, 0 ]] + ], + XYZ: [ + [ new Mesh( new OctahedronGeometry( 0.2, 0 ), matInvisible ) ] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0.15, 0 ]] + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] + ] + }; + + const helperTranslate = { + START: [ + [ new Mesh( new OctahedronGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ] + ], + END: [ + [ new Mesh( new OctahedronGeometry( 0.01, 2 ), matHelper ), null, null, null, 'helper' ] + ], + DELTA: [ + [ new Line( TranslateHelperGeometry(), matHelper ), null, null, null, 'helper' ] + ], + X: [ + [ new Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] + ], + Y: [ + [ new Line( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ] + ], + Z: [ + [ new Line( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ] + ] + }; + + const gizmoRotate = { + XYZE: [ + [ new Mesh( CircleGeometry( 0.5, 1 ), matGray ), null, [ 0, Math.PI / 2, 0 ]] + ], + X: [ + [ new Mesh( CircleGeometry( 0.5, 0.5 ), matRed ) ] + ], + Y: [ + [ new Mesh( CircleGeometry( 0.5, 0.5 ), matGreen ), null, [ 0, 0, - Math.PI / 2 ]] + ], + Z: [ + [ new Mesh( CircleGeometry( 0.5, 0.5 ), matBlue ), null, [ 0, Math.PI / 2, 0 ]] + ], + E: [ + [ new Mesh( CircleGeometry( 0.75, 1 ), matYellowTransparent ), null, [ 0, Math.PI / 2, 0 ]] + ] + }; + + const helperRotate = { + AXIS: [ + [ new Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] + ] + }; + + const pickerRotate = { + XYZE: [ + [ new Mesh( new SphereGeometry( 0.25, 10, 8 ), matInvisible ) ] + ], + X: [ + [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, - Math.PI / 2, - Math.PI / 2 ]], + ], + Y: [ + [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ]], + ], + Z: [ + [ new Mesh( new TorusGeometry( 0.5, 0.1, 4, 24 ), matInvisible ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + ], + E: [ + [ new Mesh( new TorusGeometry( 0.75, 0.1, 2, 24 ), matInvisible ) ] + ] + }; + + const gizmoScale = { + X: [ + [ new Mesh( scaleHandleGeometry, matRed ), [ 0.5, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( lineGeometry2, matRed ), [ 0, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( scaleHandleGeometry, matRed ), [ - 0.5, 0, 0 ], [ 0, 0, Math.PI / 2 ]], + ], + Y: [ + [ new Mesh( scaleHandleGeometry, matGreen ), [ 0, 0.5, 0 ]], + [ new Mesh( lineGeometry2, matGreen ) ], + [ new Mesh( scaleHandleGeometry, matGreen ), [ 0, - 0.5, 0 ], [ 0, 0, Math.PI ]], + ], + Z: [ + [ new Mesh( scaleHandleGeometry, matBlue ), [ 0, 0, 0.5 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( lineGeometry2, matBlue ), [ 0, 0, 0 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( scaleHandleGeometry, matBlue ), [ 0, 0, - 0.5 ], [ - Math.PI / 2, 0, 0 ]] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matBlueTransparent ), [ 0.15, 0.15, 0 ]] + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matRedTransparent ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]] + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.15, 0.15, 0.01 ), matGreenTransparent ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]] + ], + XYZ: [ + [ new Mesh( new BoxGeometry( 0.1, 0.1, 0.1 ), matWhiteTransparent.clone() ) ], + ] + }; + + const pickerScale = { + X: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0.3, 0, 0 ], [ 0, 0, - Math.PI / 2 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ - 0.3, 0, 0 ], [ 0, 0, Math.PI / 2 ]] + ], + Y: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0.3, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, - 0.3, 0 ], [ 0, 0, Math.PI ]] + ], + Z: [ + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, 0.3 ], [ Math.PI / 2, 0, 0 ]], + [ new Mesh( new CylinderGeometry( 0.2, 0, 0.6, 4 ), matInvisible ), [ 0, 0, - 0.3 ], [ - Math.PI / 2, 0, 0 ]] + ], + XY: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0.15, 0 ]], + ], + YZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0, 0.15, 0.15 ], [ 0, Math.PI / 2, 0 ]], + ], + XZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.01 ), matInvisible ), [ 0.15, 0, 0.15 ], [ - Math.PI / 2, 0, 0 ]], + ], + XYZ: [ + [ new Mesh( new BoxGeometry( 0.2, 0.2, 0.2 ), matInvisible ), [ 0, 0, 0 ]], + ] + }; + + const helperScale = { + X: [ + [ new Line( lineGeometry, matHelper.clone() ), [ - 1e3, 0, 0 ], null, [ 1e6, 1, 1 ], 'helper' ] + ], + Y: [ + [ new Line( lineGeometry, matHelper.clone() ), [ 0, - 1e3, 0 ], [ 0, 0, Math.PI / 2 ], [ 1e6, 1, 1 ], 'helper' ] + ], + Z: [ + [ new Line( lineGeometry, matHelper.clone() ), [ 0, 0, - 1e3 ], [ 0, - Math.PI / 2, 0 ], [ 1e6, 1, 1 ], 'helper' ] + ] + }; + + // Creates an Object3D with gizmos described in custom hierarchy definition. + + function setupGizmo( gizmoMap ) { + + const gizmo = new Object3D(); + + for ( const name in gizmoMap ) { + + for ( let i = gizmoMap[ name ].length; i --; ) { + + const object = gizmoMap[ name ][ i ][ 0 ].clone(); + const position = gizmoMap[ name ][ i ][ 1 ]; + const rotation = gizmoMap[ name ][ i ][ 2 ]; + const scale = gizmoMap[ name ][ i ][ 3 ]; + const tag = gizmoMap[ name ][ i ][ 4 ]; + + // name and tag properties are essential for picking and updating logic. + object.name = name; + object.tag = tag; + + if ( position ) { + + object.position.set( position[ 0 ], position[ 1 ], position[ 2 ] ); + + } + + if ( rotation ) { + + object.rotation.set( rotation[ 0 ], rotation[ 1 ], rotation[ 2 ] ); + + } + + if ( scale ) { + + object.scale.set( scale[ 0 ], scale[ 1 ], scale[ 2 ] ); + + } + + object.updateMatrix(); + + const tempGeometry = object.geometry.clone(); + tempGeometry.applyMatrix4( object.matrix ); + object.geometry = tempGeometry; + object.renderOrder = Infinity; + + object.position.set( 0, 0, 0 ); + object.rotation.set( 0, 0, 0 ); + object.scale.set( 1, 1, 1 ); + + gizmo.add( object ); + + } + + } + + return gizmo; + + } + + // Gizmo creation + + this.gizmo = {}; + this.picker = {}; + this.helper = {}; + + this.add( this.gizmo[ 'translate' ] = setupGizmo( gizmoTranslate ) ); + this.add( this.gizmo[ 'rotate' ] = setupGizmo( gizmoRotate ) ); + this.add( this.gizmo[ 'scale' ] = setupGizmo( gizmoScale ) ); + this.add( this.picker[ 'translate' ] = setupGizmo( pickerTranslate ) ); + this.add( this.picker[ 'rotate' ] = setupGizmo( pickerRotate ) ); + this.add( this.picker[ 'scale' ] = setupGizmo( pickerScale ) ); + this.add( this.helper[ 'translate' ] = setupGizmo( helperTranslate ) ); + this.add( this.helper[ 'rotate' ] = setupGizmo( helperRotate ) ); + this.add( this.helper[ 'scale' ] = setupGizmo( helperScale ) ); + + // Pickers should be hidden always + + this.picker[ 'translate' ].visible = false; + this.picker[ 'rotate' ].visible = false; + this.picker[ 'scale' ].visible = false; + + } + + // updateMatrixWorld will update transformations and appearance of individual handles + + updateMatrixWorld( force ) { + + const space = ( this.mode === 'scale' ) ? 'local' : this.space; // scale always oriented to local rotation + + const quaternion = ( space === 'local' ) ? this.worldQuaternion : _identityQuaternion; + + // Show only gizmos for current transform mode + + this.gizmo[ 'translate' ].visible = this.mode === 'translate'; + this.gizmo[ 'rotate' ].visible = this.mode === 'rotate'; + this.gizmo[ 'scale' ].visible = this.mode === 'scale'; + + this.helper[ 'translate' ].visible = this.mode === 'translate'; + this.helper[ 'rotate' ].visible = this.mode === 'rotate'; + this.helper[ 'scale' ].visible = this.mode === 'scale'; + + + let handles = []; + handles = handles.concat( this.picker[ this.mode ].children ); + handles = handles.concat( this.gizmo[ this.mode ].children ); + handles = handles.concat( this.helper[ this.mode ].children ); + + for ( let i = 0; i < handles.length; i ++ ) { + + const handle = handles[ i ]; + + // hide aligned to camera + + handle.visible = true; + handle.rotation.set( 0, 0, 0 ); + handle.position.copy( this.worldPosition ); + + let factor; + + if ( this.camera.isOrthographicCamera ) { + + factor = ( this.camera.top - this.camera.bottom ) / this.camera.zoom; + + } else { + + factor = this.worldPosition.distanceTo( this.cameraPosition ) * Math.min( 1.9 * Math.tan( Math.PI * this.camera.fov / 360 ) / this.camera.zoom, 7 ); + + } + + handle.scale.set( 1, 1, 1 ).multiplyScalar( factor * this.size / 4 ); + + // TODO: simplify helpers and consider decoupling from gizmo + + if ( handle.tag === 'helper' ) { + + handle.visible = false; + + if ( handle.name === 'AXIS' ) { + + handle.position.copy( this.worldPositionStart ); + handle.visible = !! this.axis; + + if ( this.axis === 'X' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, 0, 0 ) ); + handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + + if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + + handle.visible = false; + + } + + } + + if ( this.axis === 'Y' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, 0, Math.PI / 2 ) ); + handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + + if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + + handle.visible = false; + + } + + } + + if ( this.axis === 'Z' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, Math.PI / 2, 0 ) ); + handle.quaternion.copy( quaternion ).multiply( _tempQuaternion ); + + if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > 0.9 ) { + + handle.visible = false; + + } + + } + + if ( this.axis === 'XYZE' ) { + + _tempQuaternion.setFromEuler( _tempEuler.set( 0, Math.PI / 2, 0 ) ); + _alignVector.copy( this.rotationAxis ); + handle.quaternion.setFromRotationMatrix( _lookAtMatrix.lookAt( _zeroVector, _alignVector, _unitY ) ); + handle.quaternion.multiply( _tempQuaternion ); + handle.visible = this.dragging; + + } + + if ( this.axis === 'E' ) { + + handle.visible = false; + + } + + + } else if ( handle.name === 'START' ) { + + handle.position.copy( this.worldPositionStart ); + handle.visible = this.dragging; + + } else if ( handle.name === 'END' ) { + + handle.position.copy( this.worldPosition ); + handle.visible = this.dragging; + + } else if ( handle.name === 'DELTA' ) { + + handle.position.copy( this.worldPositionStart ); + handle.quaternion.copy( this.worldQuaternionStart ); + _tempVector.set( 1e-10, 1e-10, 1e-10 ).add( this.worldPositionStart ).sub( this.worldPosition ).multiplyScalar( - 1 ); + _tempVector.applyQuaternion( this.worldQuaternionStart.clone().invert() ); + handle.scale.copy( _tempVector ); + handle.visible = this.dragging; + + } else { + + handle.quaternion.copy( quaternion ); + + if ( this.dragging ) { + + handle.position.copy( this.worldPositionStart ); + + } else { + + handle.position.copy( this.worldPosition ); + + } + + if ( this.axis ) { + + handle.visible = this.axis.search( handle.name ) !== - 1; + + } + + } + + // If updating helper, skip rest of the loop + continue; + + } + + // Align handles to current local or world rotation + + handle.quaternion.copy( quaternion ); + + if ( this.mode === 'translate' || this.mode === 'scale' ) { + + // Hide translate and scale axis facing the camera + + const AXIS_HIDE_TRESHOLD = 0.99; + const PLANE_HIDE_TRESHOLD = 0.2; + + if ( handle.name === 'X' ) { + + if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_TRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'Y' ) { + + if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_TRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'Z' ) { + + if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_TRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'XY' ) { + + if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_TRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'YZ' ) { + + if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_TRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + if ( handle.name === 'XZ' ) { + + if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_TRESHOLD ) { + + handle.scale.set( 1e-10, 1e-10, 1e-10 ); + handle.visible = false; + + } + + } + + } else if ( this.mode === 'rotate' ) { + + // Align handles to current local or world rotation + + _tempQuaternion2.copy( quaternion ); + _alignVector.copy( this.eye ).applyQuaternion( _tempQuaternion.copy( quaternion ).invert() ); + + if ( handle.name.search( 'E' ) !== - 1 ) { + + handle.quaternion.setFromRotationMatrix( _lookAtMatrix.lookAt( this.eye, _zeroVector, _unitY ) ); + + } + + if ( handle.name === 'X' ) { + + _tempQuaternion.setFromAxisAngle( _unitX, Math.atan2( - _alignVector.y, _alignVector.z ) ); + _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); + handle.quaternion.copy( _tempQuaternion ); + + } + + if ( handle.name === 'Y' ) { + + _tempQuaternion.setFromAxisAngle( _unitY, Math.atan2( _alignVector.x, _alignVector.z ) ); + _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); + handle.quaternion.copy( _tempQuaternion ); + + } + + if ( handle.name === 'Z' ) { + + _tempQuaternion.setFromAxisAngle( _unitZ, Math.atan2( _alignVector.y, _alignVector.x ) ); + _tempQuaternion.multiplyQuaternions( _tempQuaternion2, _tempQuaternion ); + handle.quaternion.copy( _tempQuaternion ); + + } + + } + + // Hide disabled axes + handle.visible = handle.visible && ( handle.name.indexOf( 'X' ) === - 1 || this.showX ); + handle.visible = handle.visible && ( handle.name.indexOf( 'Y' ) === - 1 || this.showY ); + handle.visible = handle.visible && ( handle.name.indexOf( 'Z' ) === - 1 || this.showZ ); + handle.visible = handle.visible && ( handle.name.indexOf( 'E' ) === - 1 || ( this.showX && this.showY && this.showZ ) ); + + // highlight selected axis + + handle.material._color = handle.material._color || handle.material.color.clone(); + handle.material._opacity = handle.material._opacity || handle.material.opacity; + + handle.material.color.copy( handle.material._color ); + handle.material.opacity = handle.material._opacity; + + if ( this.enabled && this.axis ) { + + if ( handle.name === this.axis ) { + + handle.material.color.setHex( 0xffff00 ); + handle.material.opacity = 1.0; + + } else if ( this.axis.split( '' ).some( function ( a ) { + + return handle.name === a; + + } ) ) { + + handle.material.color.setHex( 0xffff00 ); + handle.material.opacity = 1.0; + + } + + } + + } + + super.updateMatrixWorld( force ); + + } + +} + +TransformControlsGizmo.prototype.isTransformControlsGizmo = true; + +// + +class TransformControlsPlane extends Mesh { + + constructor() { + + super( + new PlaneGeometry( 100000, 100000, 2, 2 ), + new MeshBasicMaterial( { visible: false, wireframe: true, side: DoubleSide, transparent: true, opacity: 0.1, toneMapped: false } ) + ); + + this.type = 'TransformControlsPlane'; + + } + + updateMatrixWorld( force ) { + + let space = this.space; + + this.position.copy( this.worldPosition ); + + if ( this.mode === 'scale' ) space = 'local'; // scale always oriented to local rotation + + _v1.copy( _unitX ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); + _v2.copy( _unitY ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); + _v3.copy( _unitZ ).applyQuaternion( space === 'local' ? this.worldQuaternion : _identityQuaternion ); + + // Align the plane for current transform mode, axis and space. + + _alignVector.copy( _v2 ); + + switch ( this.mode ) { + + case 'translate': + case 'scale': + switch ( this.axis ) { + + case 'X': + _alignVector.copy( this.eye ).cross( _v1 ); + _dirVector.copy( _v1 ).cross( _alignVector ); + break; + case 'Y': + _alignVector.copy( this.eye ).cross( _v2 ); + _dirVector.copy( _v2 ).cross( _alignVector ); + break; + case 'Z': + _alignVector.copy( this.eye ).cross( _v3 ); + _dirVector.copy( _v3 ).cross( _alignVector ); + break; + case 'XY': + _dirVector.copy( _v3 ); + break; + case 'YZ': + _dirVector.copy( _v1 ); + break; + case 'XZ': + _alignVector.copy( _v3 ); + _dirVector.copy( _v2 ); + break; + case 'XYZ': + case 'E': + _dirVector.set( 0, 0, 0 ); + break; + + } + + break; + case 'rotate': + default: + // special case for rotate + _dirVector.set( 0, 0, 0 ); + + } + + if ( _dirVector.length() === 0 ) { + + // If in rotate mode, make the plane parallel to camera + this.quaternion.copy( this.cameraQuaternion ); + + } else { + + _tempMatrix.lookAt( _tempVector.set( 0, 0, 0 ), _dirVector, _alignVector ); + + this.quaternion.setFromRotationMatrix( _tempMatrix ); + + } + + super.updateMatrixWorld( force ); + + } + +} + +TransformControlsPlane.prototype.isTransformControlsPlane = true; + +export { TransformControls, TransformControlsGizmo, TransformControlsPlane };