BIN_PATH="${WOKSTATION}${ARCH}/${COMPILER}/bin${CASDEB}"
LIBS_PATH="${WOKSTATION}${ARCH}/${COMPILER}/lib${CASDEB}"
-export PATH="${CASROOT}/${BIN_PATH}:${PATH}"
+export PATH="${CASROOT}/${BIN_PATH}:${THRDPARTY_PATH}:${PATH}"
if [ "$LD_LIBRARY_PATH" != "" ]; then
- export LD_LIBRARY_PATH="${CASROOT}/${LIBS_PATH}:${THRDPARTY_PATH}:${LD_LIBRARY_PATH}"
+ export LD_LIBRARY_PATH="${CASROOT}/${LIBS_PATH}:${LD_LIBRARY_PATH}"
else
- export LD_LIBRARY_PATH="${CASROOT}/${LIBS_PATH}:${THRDPARTY_PATH}"
+ export LD_LIBRARY_PATH="${CASROOT}/${LIBS_PATH}"
fi
if [ "$WOKSTATION" == "mac" ]; then
void CGeometryDoc::OnSimplify()
{
CString initfile(((OCC_App*) AfxGetApp())->GetInitDataDir());
- initfile += "\\..\\..\\Data\\";
+ //initfile += "\\..\\..\\Data\\";
+ initfile += "\\..\\Data\\";
initfile += "shell1.brep";
TCollection_AsciiString Path((Standard_CString)(LPCTSTR)initfile);
CASCADE Topology V1, (c) Matra-Datavision
Locations 0
-Curve2ds 402
-7 0 0 4 11 4 0 0.80000288773947181 0.082506784821301721 0.80000284737350258 0.16500777610602574 0.80000240771845865 0.24750487524125581 0.80000169847793945 0.41250104482576389 0.79999999981365855 0.49500011416532824 0.79999901037559229 0.5774991262059479 0.79999801041460517 0.74499494307892655 0.79999622192152875 0.82999186124653601 0.79999544070061257 0.91499285308463163 0.799994927484452 1 0.79999482411761935
- 0 5 0.32999199745130986 3 0.66000767599804422 3 1 5
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-7 0 0 1 2 2 1 0 1 0.66666379241227691
- 0 2 0.66666379241227691 2
-7 0 0 6 7 2 1 0 0.83333413667444856 0 0.66667687112198415 0 0.49999535918337501 0 0.33333865975537458 0 0.16666805388563552 0 -1.1102230246251565e-16 0
- 0 7 0.66666379241227691 7
-7 0 0 1 2 2 1 0.66666379241227691 1 1
- 0.66666379241227691 2 1 2
-7 0 0 9 26 4 1 0 0.94444348250652699 0 0.88888568577234328 0 0.83332751589310783 0 0.77776960343111212 0 0.72221230341370857 0 0.66665569533558444 0 0.61109958315623947 0 0.55554349530216118 0 0.47220827934697207 0 0.44442986552655067 0 0.41665144330219722 0 0.38887301277226194 0 0.3610945740346807 0 0.33331612718787895 0 0.30553767232984247 0 0.27775920955886435 0 0.22220226838727447 0 0.19445959522720205 0 0.16647773750839887 0 0.13924276171556929 0 0.11058525567187498 0 0.083727232704600127 0 0.055334296052716059 0 0.027778530632942087 0 0 0
- 0.66666379241227691 10 0.83333189620613846 8 0.91666594810306923 8 1 10
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-8 0 1
-1 1 1 -0 -1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-8 0 1
-1 1 0 -1 -0
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 1 0
-8 0 1
-1 1 1 -0 -1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-8 0 1
-1 1 1 -0 -1
-1 0 0 0 1
-1 0 0 1 0
-1 1 0 0 1
-8 0 1
-1 1 0 -1 -0
-1 0 0 0 1
-1 1 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-8 0 1
-1 1 1 -1 -0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-7 0 0 4 23 8 0.59999924847956987 0 0.60030110117738122 0.030168275463225706 0.60060378442530837 0.060310479204520276 0.60090599240072529 0.090288957745002604 0.60143717593063895 0.142771814843631 0.60166678063815249 0.16538753016776681 0.60189508855800722 0.18780399268888504 0.6024889932822598 0.24592906239474666 0.60285210907602438 0.28127785929284688 0.6032103953381458 0.31596618294005097 0.60396640953709835 0.38876141802465314 0.60436266948837147 0.42667041677889983 0.60475262380556472 0.46373429012872824 0.60546323518365719 0.53083960507626382 0.60578552259909302 0.56110116886322381 0.60610373951666252 0.59081147110589238 0.60695265717998204 0.66962493448292193 0.60747612556656738 0.71774075350964672 0.60798976382979086 0.76449177500333609 0.60904447429446018 0.85956547531815264 0.60958390959172604 0.90765667059321686 0.6101142405393849 0.95442857272084491 0.61063647489060302 1
- 0 5 0.10111657573905432 3 0.1786166835009988 3 0.30406755137261521 3 0.44694481701160776 3 0.56844488970689189 3 0.77501392243741674 3 1 5
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-7 0 0 6 17 4 0 0.38935001051839579 0.051776242677948496 0.38990305030343914 0.10493999648869651 0.39046534748391631 0.15945760481797328 0.39103623825655198 0.21525147179345527 0.39161464914662347 0.27217126633192856 0.39219887790734403 0.38372284697080689 0.39333284674280206 0.43823015093940459 0.39388209027477539 0.49334784794526998 0.39443270185923013 0.54885286651556642 0.39498255718868419 0.60448691479916672 0.39552935037656234 0.71786924498222482 0.39663556969906261 0.77560830333614528 0.39719455952060351 0.83293368973929827 0.39774553449724304 0.88957193656833833 0.39828632716800261 0.94531118796555014 0.39881541520940039 1 0.39933183104343695
- 0 7 0.34513407089943071 5 0.6657630349877004 5 1 7
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-1 0 0 1 0
-8 0 1
-1 1 1 -0 -1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-8 0 1
-1 1 1 -1 -0
-1 0 0 1 0
-8 0 1
-1 1 1 -0 -1
-1 0 1 1 0
-7 0 0 11 12 2 -1.1102230246251565e-16 0 0.090908963742404411 0 0.18183149294795495 0 0.27272089561572826 0 0.36357692172171707 0 0.45470954108592232 0 0.54522982352270499 0 0.63657220279836402 0 0.72715164861303727 0 0.8182267137121898 0 0.90909035424182993 0 1.0000000000000002 0
- 0 12 1 12
-1 0 0 1 0
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-7 0 0 11 42 5 1 1.3877787807814457e-17 1 0.022727282247066428 0.99999999999999678 0.045443391362605154 1.0000000000000311 0.068181456047979427 0.99999999999991585 0.090911905220744604 1.000000000000131 0.11363179853253789 0.999999999999867 0.13635606076089057 1.0000000000000862 0.15908918597047098 0.99999999999996847 0.18181936875378263 1.0000000000000029 0.20454041128501674 1.0000000000000027 0.22727014633345519 0.99999999999999667 0.26136118854285728 1.0000000000000231 0.27272488563308711 0.99999999999993971 0.28408859302177258 1.000000000000103 0.29545230465415928 0.99999999999986855 0.30681601447434725 1.0000000000001308 0.31817971642820803 0.99999999999989564 0.3295434044594972 1.0000000000000668 0.3409070725139457 0.99999999999996736 0.35227071453583869 1.000000000000012 0.36363432447029187 0.99999999999998224 0.38636146805379823 1.0000000000000921 0.39772537372590211 0.99999999999976152 0.40909563040790853 1.0000000000004241 0.42045500581433021 0.99999999999943312 0.43181132171604941 1.0000000000005833 0.44317775001744009 0.99999999999953892 0.45455032945125196 1.0000000000002693 0.46591303334149786 0.99999999999989619 0.47726582124754202 1.000000000000016 0.48863620974904703 0.99999999999997569 0.5454551610038233 1.0000000000000646 0.59089553636239089 0.99999999999986366 0.63641342285003455 1.0000000000002272 0.68170812363817623 0.9999999999997049 0.72743653938797581 1.0000000000002958 0.77255734093900941 0.99999999999977618 0.81830896324880842 1.0000000000001241 0.86357390412129009 0.99999999999995215 0.9091112277299469 1.0000000000000113 0.95454540541344923 1 0.99999999999999978
- 0 12 0.25 10 0.375 10 0.5 10 1 12
-1 0 0 0 1
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-7 0 0 1 2 2 0 0 0 0.77953843068720752
- 0 2 0.77953843068720752 2
-7 0 0 1 2 2 1 1 0 1
- 0 2 0.77953843068720752 2
-1 0 0 0 1
-1 1 0 0 1
-1 1 0 0 1
-7 0 0 1 2 2 0 0.77953843068720752 0 1
- 0 2 1 2
-1 0 1 1 0
-8 0 1
-1 1 1 -1 -0
-1 0 0 0 1
-8 0 1
-1 0 1 -0 -1
-1 0 0 1 0
-1 0 1 1 0
-8 0 1
-1 1 1 -1 -0
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-7 0 0 1 2 2 0 0.53494362972914533 0 0
- 0 2 1 2
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-7 0 0 1 2 2 0 0.53494362972914533 0 1
- 0.53494362972914533 2 1 2
-7 0 0 1 2 2 1 0 1 1
- 0.53494362972914533 2 1 2
-1 0 0 1 0
-1 0 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 0 0 1
-1 0 0 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 0 1 1 0
-1 1 0 0 1
-1 0 1 1 0
-7 0 0 1 2 2 0.47652841820184022 1 0 1
- 0 2 1 2
-1 1 0 0 1
-1 0 0 0 1
-7 0 0 1 2 2 0.47652841820184022 1 1 1
- 0.47652841820184022 2 1 2
-7 0 0 1 2 2 1 0 1 1
- 0.47652841820184022 2 1 2
-1 0 1 1 0
-8 0 1
-1 1 1 -1 -0
-1 0 0 1 0
-1 0 1 1 0
-8 0 1
-1 1 1 -1 -0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 1 0 0 1
-7 0 0 1 2 2 0 0.87271205534690566 0 1
- 0 2 1 2
-1 0 0 0 1
-8 0 1
-1 1 1 -1 -0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-8 0 1
-1 0 1 -0 -1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-8 0 1
-1 1 1 -1 -0
-7 0 0 6 17 4 0.39406493945201349 0 0.39370812496624913 0.055889186089952594 0.3932751319176811 0.11140346830850339 0.39278280167344187 0.16648860211588551 0.39224667772258737 0.22118517050925404 0.39167914530481612 0.2756147906323751 0.39049912435709389 0.38464818767915759 0.38988690165474771 0.43920806099281845 0.38926490854418921 0.49386178214766013 0.38864346773834518 0.54876980559569444 0.38803326415783546 0.60409047639852997 0.38686953162605475 0.71495709811020558 0.38631574565428234 0.7704325004763084 0.38579588715081098 0.82665002906833118 0.3853237408462824 0.88370123970993286 0.38491725582045833 0.94155019565494058 0.38459484015211276 1
- 0 7 0.33416049776810541 5 0.66993920599046752 5 1 7
-1 0 0 0 1
-8 0 1
-1 1 1 -1 -0
-1 0 0 1 0
-7 0 0 5 14 4 0 0.61540482866382062 0.064973932117215943 0.61529608014518866 0.13064776686473903 0.61519856706943865 0.19684824498858436 0.61510981596479875 0.26336851091513452 0.61502669316638092 0.39619069735911383 0.61486563493702628 0.46249005162546669 0.61478767187235628 0.52869444091174878 0.61470877481729069 0.59459235340812644 0.6146255952545101 0.72952360765932245 0.61443920886150194 0.79849237863143951 0.614335074026781 0.86668275713206988 0.61421935432529573 0.9339005874573546 0.6140891977368973 1 0.61394273110047093
- 0 6 0.32794621259812134 4 0.65372290810370193 4 1 6
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-7 0 0 10 11 2 1.1102230246251565e-16 0 0.1000000967527457 0 0.20001192748109461 0 0.29996390484838387 0 0.40007375759011493 0 0.49990633985362876 0 0.60008485130057809 0 0.69995169457233475 0 0.8000180155580997 0 0.89999980277096903 0 1 0
- 0 11 1 11
-7 0 0 7 20 4 0 0.61394226430657828 0.048852612540844019 0.61389020050825216 0.098068075289743081 0.61371590594544567 0.14668700622763359 0.6134319913266868 0.19421011406102751 0.61306605389677904 0.24046639239653864 0.61264208137587961 0.28558546572239801 0.61217658839294253 0.37885791708496341 0.61113129809822853 0.42669486390700739 0.61054661211712358 0.47382855842686478 0.60994060615491275 0.52049240449598355 0.6093255301633248 0.56691233160170029 0.60871270215490758 0.61331790608526959 0.60811286977463597 0.70700328297756598 0.60695976173890898 0.7540975848821414 0.60640917192561528 0.80178989375567622 0.6058959791305335 0.85031934430830614 0.6054357039597541 0.89970649710058448 0.60505095549354704 0.94976581781263225 0.60477101573933789 1 0.60461941547429454
- 0 8 0.3117494214584467 6 0.6546920582466389 6 1 8
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-7 0 0 6 17 4 0 0.6046244422258531 0.051402166236810085 0.60476797220349554 0.10478012077920598 0.60486543878498022 0.15986949045284715 0.60491697313726578 0.21637467000093014 0.604926986781955 0.27395161750030439 0.60490437067393021 0.38971331871809833 0.60481654071779289 0.44785635589310441 0.60475201444166815 0.50649063205929779 0.60467695459783877 0.56532069555698161 0.60460380290428339 0.62401724809701253 0.60454541843882725 0.73735477619494882 0.60448172662698285 0.79202863338594776 0.6044736945626884 0.84598333702823147 0.60449779646248658 0.89884589317663122 0.60456169294234929 0.95028263702832427 0.60466902066255146 1 0.60481951999240813
- 0 7 0.3430717016492329 5 0.68080943218630496 5 1 7
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-7 0 0 6 17 4 0 0.60481876572300342 0.05095229035545714 0.60531998523779595 0.10382537550260484 0.60578030439461039 0.15845352233036814 0.60619851949256376 0.21460483959783586 0.60657677661692078 0.27192578806405221 0.60692215112284265 0.38434977743498216 0.60754680652692783 0.43935827885918255 0.60782890198368666 0.4947568526549937 0.6080997975979322 0.55021672576506897 0.6083703646651597 0.60539564353217179 0.60865197083796707 0.71985069737128415 0.60928541801493186 0.7790155049570221 0.60964143625304479 0.83699989822910226 0.61003430465191055 0.89334719595266099 0.6104732216992107 0.94775285214168981 0.61096105399514533 1 0.61149609439611585
- 0 7 0.33765129277467348 5 0.65364637575500684 5 1 7
-1 1 0 0 1
-8 0 1
-1 1 1 -0 -1
-1 0 1 1 0
-1 0 0 1 0
-7 0 0 5 14 4 0 0.39924787923265981 0.066688511457922039 0.39861805728956679 0.13301589565275201 0.39797070384509137 0.19899471206471028 0.39730811488861428 0.26464613364180722 0.39663245594483537 0.3965491453396498 0.3952465078978798 0.46278934002823408 0.39453581797881138 0.52875168347902701 0.39381583485151239 0.59447382493311429 0.39308861344407708 0.7283208620462549 0.39159238591189849 0.7964282920275576 0.39082292767785165 0.86437242103195266 0.39004998915462791 0.93220869047210164 0.38927576760000759 1 0.38850251792178125
- 0 6 0.32467375889705741 4 0.65528611948353355 4 1 6
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-7 0 0 10 11 2 2.2204460492503131e-16 1 0.09999999322983523 1.00000000000003 0.20001639458643822 0.99999999999988121 0.29994929207909043 1.0000000000002538 0.40010146633470894 0.99999999999962186 0.49987092630747942 1.0000000000004188 0.60011534344833206 0.99999999999965283 0.69993402733844468 1.0000000000002087 0.80002409418898135 0.99999999999991496 0.89999953633493524 1.0000000000000193 1 1
- 0 11 1 11
-7 0 0 5 14 4 0 0.39811910321246968 0.065166136447414175 0.39825283390891558 0.13088245939307414 0.39836054378927283 0.19700391841560594 0.39844689533514127 0.26340629460961762 0.39851748831495021 0.39580330612509396 0.39863795023588527 0.46178889064610762 0.39868805209958413 0.52787215740647131 0.3987339524230562 0.59396860319005818 0.39878136357133892 0.72835399415420987 0.3988919981555149 0.7966334474354676 0.3989557163445972 0.8647494173768433 0.39903290610201325 0.93258388351332566 0.39912928280985649 1 0.39924959657869541
- 0 6 0.33211359955845798 4 0.6602852667166641 4 1 6
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-7 0 0 6 17 4 0 0.40000133244242564 0.050515922989695941 0.3998764683702018 0.10301222308263144 0.39975651372271098 0.15744526248452495 0.39964166354850666 0.21368621341552818 0.39953189051863292 0.27137519317538034 0.3994266334215254 0.38448263890148304 0.39923022850367612 0.43976970790347769 0.39913861529994504 0.49546779548491116 0.39904914328820412 0.55104937164766721 0.39896060757156615 0.6060120125416647 0.3988717100390905 0.72105934786326342 0.39867927299540235 0.78086733571278433 0.39857534815947826 0.83888130406395778 0.39846812482934041 0.89477935171257128 0.39835651534154326 0.94848615584841078 0.39824007299778436 1 0.39811866668642021
- 0 7 0.33552387596375727 5 0.64734104289112193 5 1 7
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0.40000167120694718 0 1
-7 0 0 5 14 4 0 0.39191774096508264 0.065465144355849408 0.39243753347283067 0.13118475842667088 0.39298400074455109 0.19716994665717724 0.39354950009204082 0.26343524537862489 0.39412650867664017 0.3954152626034656 0.39527841747338266 0.46111584690651436 0.39585314633103141 0.52711894058249698 0.39642450527486095 0.59342197805482499 0.39698505273804635 0.72754872137747451 0.39807716040562774 0.79537568680679072 0.39860813733446615 0.86345775106864042 0.39911218246988495 0.93171250905093006 0.39958083426444491 1 0.40000626220747182
- 0 6 0.33559380390076604 4 0.66539264450876856 4 1 6
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-7 0 0 5 14 4 0 0.39933282174136286 0.066113363033904277 0.39890810347114752 0.13232413674030302 0.39846394169325261 0.19847360696432903 0.39800369935426455 0.26440882952214556 0.39753123864038381 0.3969695162245368 0.39655939610338625 0.46358016635478683 0.39605965776952012 0.52969368667478045 0.39555521588324277 0.59519528289386625 0.39505006529077169 0.72979766856596251 0.3940066812470096 0.79878622220539364 0.39346890277355057 0.86685927309964905 0.39293880302330059 0.9339448486990295 0.39242019579958659 1 0.39191616492488107
- 0 6 0.32044122240090905 4 0.64761656907444154 4 1 6
-1 0 1 1 0
-7 0 0 10 20 3 0 0 0.050000003877265858 0 0.099999959029842669 0 0.14999988340655576 0 0.19999979495561482 0 0.2499997116263597 0 0.2999996513665309 0 0.34999963212564855 0 0.39999967185168028 0 0.4499997884936297 0 0.55000021150637846 0 0.60000405170649884 0 0.64998192739817695 0 0.70004713104247096 0 0.74992531104385074 0 0.80007856438669533 0 0.84995151034043059 0 0.90001924750310724 0 0.94999983311184388 0 1.0000000000000002 0
- 0 11 0.5 9 1 11
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 1 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-1 0 1 1 0
-8 0 1
-1 1 1 -1 -0
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-8 0 1
-1 1 1 -0 -1
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-8 0 1
-1 1 1 -0 -1
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-8 0 1
-1 1 1 -0 -1
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-7 0 0 1 2 2 0 0 0 0.87271205534690566
- 0 2 0.87271205534690566 2
-7 0 0 1 2 2 1 1 0 1
- 0 2 0.87271205534690566 2
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 0 0 0 1
-1 1 0 0 1
-1 1 0 0 1
-8 0 1
-1 1 1 -0 -1
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-1 0 1 1 0
-1 0 1 1 0
-1 0 0 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 1 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 0 0 1 0
-1 0 1 1 0
-1 1 0 0 1
-1 0 0 0 1
-1 0 1 1 0
-1 0 0 1 0
-1 0 0 1 0
-1 0 1 1 0
-1 0 0 0 1
-1 1 0 0 1
-1 1 0 0 1
-1 0 0 0 1
-Curves 216
-7 0 0 4 11 4 91 -8.0271577359569704e-05 0 91 0.048137983974542928 0 91 0.096359624400286378 0 91.000000000000014 0.14458352401486479 0 91.000000000000014 0.24103707641773656 0 90.999999999999986 0.28926672878190884 0 91 0.33749641370464473 0 91 0.43541161333749429 0 90.999999999999986 0.48509706109696005 0 91.000000000000014 0.53478014479136815 0 91.000000000000014 0.58445963413453828 0
- 0 5 0.32999199745130986 3 0.66000767599804422 3 1 5
-7 0 0 3 4 8 77.499912265000006 -9.6523674666657011e-05 0 84.999956765000007 -0.00026420328785997649 0 92.49998728333334 -9.680098099996981e-05 0 99.999984765000008 0.00065140704866670229 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.000054676666679 -0.58420716719999999 0 84.999930061666674 -0.0004168505933333335 0 85.000050863333342 0.5846241315166667 0 85.000034334999995 1.1684163611666669 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 77.500027976666672 0.58578912563133334 0 84.999982200000005 0.58395773519470173 0 92.500031791666657 0.58487348681308338 0 100.00027848333333 0.58304277002050009 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000094096666658 -7.8702866666557902e-06 0 80.000041960000004 -0.00015866724066664062 0 84.999964395000006 -0.00023322334599996941 0 89.999926246666675 -0.00015887743199997917 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000002543333338 -0.59619559850000003 0 80.000033058333344 -0.00029208758333330864 0 80.00000636 0.59648909176666676 0 79.999970754999993 1.1923948924000001 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 93.102831524999999 0.5438144456866667 1.3656666665584627e-08 83.992425281666669 0.60490217801666679 1.1173333334946189e-08 80.927477518333347 0.54307139918333336 -7.4500000023236534e-09 72.297692616666666 0.80086672333333353 3.7283333330362378e-09
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999888099999993 0.00014734250000048021 0 74.999958039999996 -7.8081999998480534e-06 0 80.000026700000006 -0.00015859803333331812 0 85.000076296666663 -0.00023265673333322523 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000054676666679 -2.7417480551666671 0 74.999898275000007 -1.4876350000012084e-05 0 75.000054678333328 2.7417641880000003 0 74.999880469999994 5.4835055671666666 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 67.69368553000001 7.658248820833335 0 75.694348656666662 2.2439476652000003 0 79.528959909999998 -0.18349189561666665 0 86.189840956666671 2.0680790891500003 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000078835000011 0.00023206033333367238 0 70.000024158333332 0.00014648836666686371 0 74.999949138333335 -7.728799999939806e-06 0 79.999881743333333 -0.00015894573333333217 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999991101666666 -6.4429797339999997 0 70.000035601666667 0.00026938816666660648 0 69.999991098333339 6.4427124663333331 0 70.000031149999998 12.885964870333334 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 81.25033696666668 -1.1131350793000001 2.4816666673033172e-09 74.593695326666676 2.8677578368333334 2.4836666667749085e-08 70.374895731666669 6.0926485461666671 -1.116666666772792e-08 63.906762443333342 11.418724852 1.9868333332728749e-08
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999863938333334 0.00017539700000002156 0 64.999964393333329 0.00023150410000005728 0 70.000002545000001 0.00014700490000030264 0 75.000054675000001 -8.3445000000348379e-06 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000080748333332 -10.486415047450002 0 64.999872205000003 0.00041178866666663483 0 65.000084561666668 10.486009438500002 0 65.000070573333332 20.9728589845 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 78.026659651666662 0.094303449000000039 4.2233333330532474e-08 68.986338296666673 7.2169976640000009 -4.9683333350203362e-09 66.028040571666665 9.6947836888333327 1.1166666664258473e-08 56.901523593333337 16.921139081666666 6.5193333353280591e-09
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 55.00006993833334 -9.8626599999818154e-05 0 60.000007629999999 0.00017452246666715965 0 64.999941506666659 0.00023047146666677065 0 69.999880473333334 0.00014513738333343795 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999963756666659 -14.066509723333334 0 60.000031151666668 0.00027540576499999331 0 59.99996058 14.066241740000001 0 59.999962491666665 28.133052825000004 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 52.931085586666661 16.696194787933337 0 60.790880836666673 14.115336297700001 0 63.905304593333334 11.240676720783334 0 73.588181814999999 3.8392653463333337 0
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000001905000005 6.1573905150000003 0.082810300091666678 65.00000636 10.781567730666666 -0.041405139488333333 65.000003813333336 13.633613744333335 0.082810311271666673 65.000001910000009 16.900049528333334 0.70272455610000006
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.99998346666667 11.505401611166668 0.079835154110000001 60.000019074999997 14.245078084999999 -0.039917559670000005 59.999981563333336 15.912519928333335 0.079835144186666679 59.999876658333335 17.886001586666666 0.64388290539999993
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.267403921666656 9.7246716813333336 0.17862254384333337 64.861003874999994 14.036833445000001 0.16440977527833336 60.288604101666671 16.344066775000002 0.15629901674166669 53.984401704999996 16.36805884 0.13370008023166668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999991098333339 2.8597696225 0.11264374855166667 70.000013988333336 6.4967923953333342 -0.056321871158333335 69.999993645000018 9.8101376696666662 0.11264373612 70.000063580000003 13.207793075000001 0.64868400496666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 76.875563305 3.968045542833333 0.18613514678333332 69.383642831666677 10.362374707000001 0.17212536495666669 65.589899700000004 13.527592023333334 0.16830031076666668 58.256676994999999 17.743269923333337 0.14723340988233335
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000005088333324 -0.54244816300000009 0.12589153523166668 75.000001275000002 2.8321656783333338 -0.062945747750000003 75.000003816666677 5.6643302638666668 0.12589154643 75.000001273333339 9.1527911441666667 0.63085696101666666
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 62.424857458333335 16.205428761666667 0.15750167271166668 70.824349723333341 9.1435720926666662 0.17730074000000001 74.277721406666672 6.1654324528333326 0.17623277983166669 82.06476974666667 0.83697565399999996 0.18924556676666671
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000016533333337 -1.9037311573500002 0.12775669370333334 79.999997455000013 0.71136280901666671 -0.063878339404999998 80.000021618333335 2.6363344193666665 0.12775664901833333 79.999930066666678 5.592441798166667 0.63013858596666661
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.879543303333335 0.89840079358333336 0.18106576553666667 79.766370136666666 2.5977034366833336 0.17878899911499999 75.054978688333335 5.5599223775000004 0.1810657705116667 70.013556161666671 9.8048783148333332 0.16842472675
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 84.999996186666664 -0.09540915481666673 0.11753536635333334 85.000003813333336 0.60921447348833335 -0.058767667663333335 84.999998729999987 1.1650458178 0.1175353552 85.000006361666664 3.1794795000000002 0.6500476301
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.497833254999989 1.3183505053383335 0.16919495165500001 84.872954051666667 1.13484170045 0.17797275199333334 80.010355633333333 2.5911599375500001 0.18033542360833332 75.085637410000004 5.3496608340000007 0.17797239620833336
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 89.999998728333338 0.28929957248333332 0.10065904504333334 90.000005086666675 0.58797306321666665 -0.050329494291666665 90.000005084999998 0.86530238386666669 0.10065903886333333 90.000005088333324 2.2164533538333333 0.69656584660000009
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 97.427121479999997 0.67762299874999998 0.19320650056333333 89.239346821666672 1.0879282355833333 0.16949032557333335 85.61552174833335 1.2363000114333333 0.17770470490500001 78.298589069999991 2.41574730445 0.18111215283166668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 4 23 8 91 0.58442303020518105 1.498242259555051e-08 91 0.59189031736704989 3.8130157984444065e-05 91 0.59935778733229028 0.00042769937394222536 91 0.6068640471682788 0.0011802680127149959 91 0.6202574156477072 0.0031396686545457214 91 0.6261133318175649 0.0041994767971997035 91 0.63203096427768146 0.0054661377407165231 91 0.6477323290639353 0.0093091135248666874 91 0.6576422532930748 0.012211148958173454 91 0.66782765487826712 0.015613911327910148 91 0.6903224514792673 0.023899875648713462 91 0.70273008656793357 0.028923347479001389 91 0.71564976257411772 0.03451599681528638 91 0.74060192256247204 0.045850370730147416 91 0.75247805117966404 0.051444624723942851 91 0.76479584907196374 0.057402057935819858 91 0.79930566445865536 0.074418627472423421 91 0.82237356315815879 0.086129133360017707 91 0.84688236085545254 0.098745249898073789 91 0.90118114075129951 0.12685530935858061 90.999999999999986 0.93124856628547281 0.1425052961151925 91.000000000000014 0.96312955166248726 0.15906433678944676 91.000000000000014 0.99683473747747975 0.1764695999315348
- 0 5 0.10111657573905432 3 0.1786166835009988 3 0.30406755137261521 3 0.44694481701160776 3 0.56844488970689189 3 0.77501392243741674 3 1 5
-7 0 0 3 4 8 96.126553853333348 0.82718905804999998 0.20290709536666671 92.118783318333328 0.93913454806666663 0.17844562480500001 90.398331958333344 1.0278922021666668 0.17490848213333335 86.287390391666662 1.2149313191166669 0.17079230150166666
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 6 17 4 90.999999999999986 0.99683640814562335 0.17646954315928798 90.999999999999986 1.0700204855741757 0.21428757124853273 91.000000000000085 1.1417929396955506 0.25142582413998182 90.999999999999929 1.212157971299304 0.28794593965150755 91.000000000000043 1.2811571023079749 0.32394351249845499 91 1.3488960912822372 0.35956445826928485 91 1.4774612407872314 0.42790284545043961 91 1.5384367105908936 0.46064687333078114 91 1.5986057626292687 0.49336877358871883 91 1.658150660427214 0.52624178642486152 91 1.7172923513362999 0.55944996861343443 91 1.8377071834221312 0.62829304067258807 91 1.8989657899423689 0.66397199162290477 91 1.9602711010968203 0.70037788897505782 91 2.0218737513691103 0.73767533993762346 91 2.0839795475478677 0.77597606315328038 91 2.1467439043946834 0.81534729091761293
- 0 7 0.34513407089943071 5 0.6657630349877004 5 1 7
-7 0 0 3 4 8 90.000005090000002 -0.70319635668333347 -0.6102523952833333 90.000006358333337 1.2059935331666667 0.24078234533333334 90.000001271666676 2.1448594130000003 0.69599522151666671 89.999986015000005 3.5923728940000004 1.5843464333333332
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 87.415967308333336 2.4637550116666667 0.6808102876333334 90.027679443333341 2.2214598255000002 0.75908243898333339 92.473312378333333 2.0282097655000002 0.89196962116666667 95.079152426666667 1.8993552524999999 1.1403772234666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 84.999997456666662 -1.4538894815333334 -0.6217175970933333 85.000001268333335 1.7782888416666669 0.28365127493333336 84.999994916666665 2.789609750166667 0.54853417476666655 84.999993641666663 5.1983261905000004 1.3656393885
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.071168263333348 4.7948297856666668 0.6086876443 84.989780425000006 2.7935468457166666 0.62523480385000008 89.969717661666664 2.1660294731833334 0.73379958170000015 95.131365456666657 1.9201370673833336 1.0486774841833335
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.999992371666679 0.28005284069833331 -0.11281120031333336 80.000000001666677 2.8849577307166667 0.15691112228333334 79.999989826666678 5.0292491116666671 0.56245477995000004 80.000005083333335 7.4492739043333334 1.1635911859999999
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.117454530000003 8.0522643721666665 0.53891035793499997 80.007035570000014 4.903862556 0.60112784063333335 84.854403179999991 2.7834994595000002 0.62689840791666673 90.575326286666666 2.0971936388333337 0.73470589019999999
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000003813333336 3.0667154142833333 -0.052285738886666669 75.00000381833334 5.8311984935000005 0.15175150211666666 75.000001273333339 8.2507630985000002 0.51675710578333334 75.000001268333335 10.871014279333334 1.0840076803333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.747809093333331 12.371795653333333 0.50675245066333341 75.119387311666657 8.0795067948333337 0.55072653414666672 79.774679821666666 5.0154530601666671 0.59312882774999998 85.781903585000009 2.3098968634366668 0.64707846852166673
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999992368333324 7.1007479033333327 -0.055039818256666671 69.999998731666665 9.9427398051666671 0.15765595556666667 69.999990463333333 12.073442461166668 0.46735340853333329 69.999999366666671 14.620213825 1.0681512158333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 61.616278333333341 18.521273611666668 0.46810645355000008 71.079527538333338 11.367264745833335 0.52181537941666667 74.065577184999995 8.8663869694999988 0.53985313080333341 82.658161161666669 2.8724473320000001 0.62155920258333341
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 64.999997453333336 11.226362587666667 -0.08142945883833333 65.000008268333346 13.889535265000001 0.16099527976666667 65.000004448333328 15.431573071666669 0.43000897765000001 65.000002539999997 17.507306096666667 1.0976768331666666
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.455086390000005 17.723713078333333 0.48777215186666667 65.107601166666669 15.821959495 0.49444782478333338 70.114529930000003 12.111495651666667 0.51314360643333334 74.434302009999996 8.588731448499999 0.54819940781666665
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999994911666668 14.641131876666668 -0.016308245094000001 59.999994275000006 16.000726066666665 0.12178873023333334 59.999996186666671 17.137056985000001 0.45245906713333334 59.999982838333338 18.289672213333333 1.0339275996666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 54.43405215166667 17.289323488333334 0.50596023973000004 60.116200129999996 17.438869795000002 0.49156697583333336 65.101165769999994 15.793744085000002 0.49332201971666667 69.479165391666669 12.509287513333334 0.51385296883333331
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 60.000009536666667 16.015827339999998 0.13195341825000001 60.000003176666667 17.158510843333332 0.45893757043333333 60.000002541666674 18.188673338333334 0.99784649401666681 59.999990466666667 19.107659976666667 1.7730142080000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 53.935722351666669 18.335185684999999 1.0306974648666665 60.288023635000002 18.331195829999999 1.0345460772999999 64.91219838666666 17.360911370000004 1.0544556976499999 70.063205716666673 14.615341663333332 1.1082380016333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000002541666674 13.850750605 0.16865417606666669 65.000003174999989 15.548039753333335 0.45131523909999999 65.000004446666665 17.080157758333332 1.0047921340000001 65.000003813333336 18.521506944999999 1.8901209434999999
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999993008333327 17.345290820000002 0.54852603869999994 59.999992371666664 18.191667238333331 1.0180358489999999 59.999991100000003 18.908889138333336 1.6026686228333333 59.999981559999995 19.543534281666666 2.3707761766666664
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 54.908419924999997 18.944985386666666 1.621115804 60.009686791666667 19.042915978333333 1.635007044 65.052839914999993 18.254096033333333 1.6383424201666668 69.778966265000008 16.179483256666664 1.6814502675000003
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000003816666663 15.977173329999999 0.60575650136666659 65.000003816666663 17.087065854999999 1.0347400904999999 65.000003814999999 18.064746223333337 1.6158900061666668 64.999993640000014 18.892732619999997 2.371526877
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.99999618333333 17.94433403 0.82287200290000007 59.999997454999999 18.941385905000001 1.6090109948333333 59.999994916666665 19.660878180000005 2.5405698616666665 59.999988558333342 20.028870580000003 3.6736979884999998
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 55.006737388333342 19.600444795000001 2.5513200560000002 59.989109675000009 19.716109913333334 2.5670631926666667 65.036842350000001 19.148789721666667 2.6254177690000002 69.863549550000002 17.984759331666666 2.7901668750000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000003815000014 16.812085786666668 0.88969944911666665 65.000002543333324 18.079877853333336 1.5978241366666666 64.999997454999999 19.107170103333335 2.5888252655000001 65.000008263333328 19.787462556666668 3.9057759446666669
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 60.000004450000006 18.960781095000002 1.6115916966666666 60.000002543333338 19.660059930000003 2.5561520260000004 60.000003814999999 20.012653355000001 3.608790795 59.999991098333339 20.012923239999999 4.8455034888333337
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 55.012204491666665 19.943566643333334 3.5922133528333333 59.992643993333331 20.017457010000001 3.6324261425000004 65.017261505000008 19.710205711666667 3.7149043878333337 69.938377380000006 19.009941098333336 3.9234264392666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000002543333324 18.211459158333334 1.6952369214999998 65.000005725000008 19.096501666666668 2.6146200896666669 65.000003181666671 19.698562306666666 3.7051838634999998 64.999999365000008 19.977547961666666 4.9801239966666664
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999998728333338 19.821452145000002 3.0335708853333334 59.999998096666673 19.972042723333335 3.6301472978333336 59.999998096666666 20.013978321666666 4.2826574248333333 59.999984108333337 19.972024283333333 5.0650742849999997
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 72.866372424999994 20.000000633333336 8.5534596444999984 64.126763661666672 20.000000003333334 5.5354603928333344 60.626606621666667 20.000001906666668 4.2444163360000005 53.366799669999999 19.999998730000002 3.3126986818333339
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000006361666664 18.621678671666668 1.7251329621666667 65.000009536666667 19.78472837 3.7438517409999998 65.00000636 20.107636769999999 5.7149354616666663 65.000006994999993 19.784732179999999 8.3361342749999991
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000008261666665 20.00000063666667 1.6965761978333334 65.000011443333335 20.000001271666669 5.8232872489999998 65.000006993333329 20.00000063666667 9.9500048954999993 64.999885556666669 19.999996821666667 14.076764425
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999998096666673 20.00000063666667 -1.3413923583333336 59.999998090000005 20.000001271666669 4.3043045995 59.999999361666667 20.00000063666667 9.9499983790000002 59.999802271666667 19.999996821666667 15.595704715
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999998730000002 20.000916161666666 9.9499986968333332 65.000011444999998 19.999694508333334 9.9499985385000009 59.999979651666663 20.000306129999998 9.9499980611666672 54.999867756666667 19.999081611666668 9.9500120473333347
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999994909999998 20.00000063666667 5.8361761575000006 70.000012714999997 20.000000320000002 7.8930899310000004 69.999992368333324 20.00000063666667 9.9500012401666673 70.000008903333338 19.999997458333333 12.006911279666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.230925241666654 20.000000633333336 10.680456800000002 69.878613788333325 20.000000003333334 7.7127815884999995 65.25465774333334 20.000001906666668 5.8269539676666673 59.102816266666672 19.999998730000002 3.9191326301666671
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.999997456666676 20.000916161666666 9.9500055330000006 69.999998726666661 19.999694508333334 9.9499991741666669 64.999998728333338 20.000306129999998 9.950003941666667 59.999931333333336 19.999081611666668 9.9500563151666661
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 77.795440673333331 20.000718113333335 9.9500007640000003 73.897720336666666 19.99975586 9.9499991733333335 69.999997456666662 20.000243189999999 9.9500005251666668 66.10225423 19.999285065000002 9.949998299333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.220184325000005 19.999990779999997 12.919017158333334 73.436279294999991 19.999999043333332 9.6858895621666665 70.421059925000009 19.999989828333334 8.0374244053333328 64.87940724500001 19.999946914999999 5.5230200288333329
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 73.897691091666658 20.107813835000002 7.8999965191666668 73.897734323333339 20.000024160000002 9.9500004450000006 73.897691091666658 19.892074268333332 11.999999683333332 73.897701259999991 19.784280774999999 14.050007341666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000025429999994 20.107813518333334 7.9000047840000009 69.999978383333328 20.000031475 9.9499983790000002 70.000025429999994 19.892074266666665 12.000001273333332 70.000174201666681 19.784182546666667 14.050000193333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65 19.892101605000001 11.999999843666668 69.999997456666676 19.892110823333336 12.0000015915 75.000007629999999 19.892100333333332 11.999999843666668 79.999994913333339 19.892101926666665 11.999999203333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 72.624047596666671 20.03689193666667 9.2487008576666661 73.935354868333349 19.999124211666668 9.9672303203333357 75.020806631666673 19.966601051666668 10.582380772833334 75.981430053333327 19.93725586 11.150118348333335
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 72.795417788333339 19.892102556666668 11.9999973 73.897683465 19.892101288333333 12.000003020833333 75.000022888333334 19.892101921666669 11.999997455000001 76.102305093333342 19.892105736666668 12.000024
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000013991666663 20.04210599 9.1489588416666674 74.999994913333339 19.967148144999999 10.574478150833333 75.000017803333321 19.892085708333333 12.000000315000001 75.00001398500001 19.817123733333332 13.425537430000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 76.321100873333336 19.920411426666668 9.9499990146666679 74.928593953333333 19.985733983333333 9.9499993324999991 73.964585620000008 20.007129984999999 9.9500001278333343 72.59942499666667 19.985722858333332 9.9499999685000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000003811666673 19.915888151666664 11.254576759000001 75.000002545000001 19.975837708333337 10.555942690333335 75.000006358333337 19.983557066666666 9.968509833333334 75.000092823333347 19.960457801666667 9.2700303396666683
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000001268333349 19.918621698333332 12.602852821666666 75.000013988333336 20.021813390000002 9.7505448661666669 75.000005084999998 19.864602086666668 8.094964186166667 75.000004448333343 19.086761158333331 5.9235880371666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 81.284189861666675 18.647739091666669 8.2372131344999993 74.512664793333329 19.976928708333332 7.9785313604999999 70.665189741666666 20.011528970000001 7.9026510714999993 62.826502480000009 19.976860683333335 7.7694715658333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.743269604999995 20.007128398333332 9.9500002878333333 77.430156710000006 19.864320436666667 9.9499990965000009 79.921784716666679 19.447689691666667 9.9499999676666668 82.882855733333329 18.574455581666669 9.9499986973333314
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.999998728333338 19.873792014999999 11.859541573333333 79.999993640000014 19.447972935000003 9.9137139325000003 80.000000003333341 18.563919383333335 8.1855975785000012 79.999986015000005 17.307902333333331 6.6745537123333332
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 84.545899711666664 16.354208631666669 8.4990113580000006 80.116334281666667 18.669340448333337 8.210831403666667 74.988742830000007 19.979982376666666 7.9883209861666673 69.928698221666679 19.977797825 7.8898663516666669
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.643400831666668 17.634189290000002 9.949998539000001 79.726552325000014 19.637525241666665 9.9499994909999998 75.450363159999995 20.045312881666668 9.9499983788333335 68.472019193333338 20.051702814999999 9.9500007621666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 77.412225085000003 19.667841911666667 15.153408048333333 77.367932638333329 19.93760554166667 11.690339878333333 77.412391661666675 19.934362408333335 10.085234006333334 77.368064880000006 19.237054190000002 7.6687201658333342
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.308339435000008 19.847662925000002 12.000000631666667 77.527943929999992 19.914322216666669 11.999999520000001 79.876234691666667 19.847660703333332 12.000000475 82.967128756666668 19.495043756666668 11.999999520000001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000011446666662 19.804616295000002 14.33033927 80.000015258333349 19.881638845000001 11.930483498333334 80.00000636 19.468810718333334 9.9477219579999989 80.000015258333335 18.472563746666665 7.9785711765000009
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.139684040000006 19.804468153333335 13.689129189999999 77.258800506666674 19.895794551666668 11.921718434999999 75.121461233333335 19.964980126666667 10.623998638 72.25537491 20.047080993333331 9.0291443666666673
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.76544443666667 19.892103196666667 11.999996187500001 77.382728573333338 19.892105106666669 12.000002543333334 75.000005083333335 19.892103830000003 11.999995865500001 72.617268879999997 19.892103196666667 11.999994754999999
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 77.382597608333327 19.997309686666664 9.9999964248333324 77.382779440000007 19.892120998333333 12.000002068333334 77.38259506 19.786829633333333 14.00000127 77.38276672500001 19.681656520000001 16.000004926666666
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000003814999999 19.997297606666663 9.9999982511666676 75.000003814999999 19.892124810000002 11.999999366666668 75.000003814999999 19.786817236666664 14.000004451666667 74.999987283333326 19.681645395 16.000028450000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.76529566166667 19.786770818333334 14.000000001666667 77.382686613333334 19.786855698333333 14.000001749999999 74.999972025000005 19.786915143333331 14.000000314999999 72.617225648333331 19.786590898333337 13.999977745000001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.770088196666663 19.975269954999998 10.396016753166666 77.381736758333346 19.892332713333332 12.003491240000002 79.999308264999996 19.808005333333334 13.590019703333333 82.621042886666672 19.726419446666668 15.170161563333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000027971666668 19.785921416666667 13.999999206666667 74.999994911666661 19.787142753333335 14.000006356666667 80.000019070000008 19.786530491666667 13.999999045000001 85.000293731666673 19.787749928333334 13.999995864999999
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000008905000001 19.765223821666666 14.411044278333335 80.000002545000001 19.786836306666668 14.000001905 80.000011443333335 19.808480578333331 13.588953333333334 80.000005084999998 19.830059366666667 13.17791875
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.999988558333342 19.660523415 15.558145841666667 80.000013983333332 19.836622553333335 13.475462915 79.999986010000015 19.843871433333334 12.073727290000001 80.000045779999994 19.587960239999997 10.229616961166668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 81.347170510000012 19.765781406666669 14.402348838333335 80.683480578333331 19.786726631666667 14.001300175000001 80.005166368333335 19.80837472 13.592446806666665 79.295884450000003 19.83065955 13.16263739
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.704826356666672 19.578909240000002 16.847473465 80.669106800000009 19.82872867333333 13.756750743333331 80.704981488333345 19.827224098333335 12.125519595 80.669240313333333 19.285097758333333 9.7411678638333328
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 81.362293241666663 19.6597449 11.999999999 80.697625479999999 19.740083054999999 12.000002544500001 80.005502061666675 19.802655218333335 11.999998569999999 79.280370076666657 19.849364598333331 11.999992211666665
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 81.362064358333328 19.78686968666667 14.000001910000002 80.681045533333332 19.786827723333332 14.00000159 80.000003816666677 19.786869048333333 14.00000095 79.318969728333343 19.786745709999998 13.999999841666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000006358333337 19.613210680000002 17.300001779999999 80.000010169999996 19.699983596666669 15.650000891666668 80.000003814999999 19.786854424999998 14.000000956666668 79.999994915000002 19.873612401666669 12.34999625
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 76.578479763333334 19.699513751666665 15.650001843333332 80.000015256666671 19.700138093333333 15.650000415000001 83.421510063333329 19.699933366666667 15.650002800000001 86.843068443333323 19.700137453333333 15.649998665000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 86.720083875 19.595262206666668 17.636189776666669 83.272935233333328 19.704792019999999 15.559943838333334 80.717299144999998 19.785578726666664 14.024045150000001 77.943749746666668 19.873897868333334 12.343903065000001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000013988333336 19.613218621666668 17.299997013333332 74.999993641666663 19.699982641666665 15.649998505000001 75.000013988333336 19.786863006666668 13.999998730000002 74.999986011666664 19.873704911666668 12.350003558333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000025429999994 19.699083963333333 15.649998350000001 75.000005083333335 19.700305936666666 15.650000414999999 80.000005083333335 19.699696860000003 15.649998345 84.99998728333334 19.700914068333336 15.649998026666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000002543333324 19.613218941666666 17.300000506666663 70.000001271666662 19.69998137 15.64999819 70.000002543333324 19.786862370000001 13.999999048333335 69.999992370000001 19.873626388333332 12.350003401666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 64.999994913333339 19.699084918333334 15.649998188333331 70.000002543333338 19.700310068333334 15.650000731666667 74.999997456666676 19.699694313333332 15.649998028333334 80.000010173333337 19.700924873333335 15.649996918333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000007629999999 19.785925546666668 13.999998250000001 69.999996185000001 19.787153241666665 14.000006515000001 75.000010173333337 19.786535578333332 13.999998570000001 79.999998728333338 19.787844025000002 13.999996188333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 64.999999365000008 19.613218941666666 17.300000506666663 65.000014623333328 19.69998137 15.64999819 64.999999365000008 19.786862370000001 13.999999048333335 65.000002543333338 19.873626388333332 12.350003401666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 60.000005086666661 19.699085233333335 15.649998029999999 65.000007629999999 19.700307531666667 15.650001210000001 70 19.699695901666665 15.649998029999999 75.000002543333338 19.700915653333333 15.649998985
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 60.000000000000007 19.785937626666666 14.000005724999999 65.000001271666662 19.787143071666669 13.999998885 70.000003815000014 19.786547343333332 14.000005724999999 74.99998728333334 19.787809053333334 14.000038625
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999993645000004 19.613220533333333 17.300005593333331 60.000007626666672 19.699981691666665 15.649997713333335 59.999993645000004 19.786863961666668 14.000004453333332 59.999989191666671 19.873627341666669 12.3500096
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 55.000005086666675 19.699085233333335 15.649998029999999 59.999998726666661 19.700307531666667 15.650001210000001 65.000017803333321 19.699695901666665 15.649998029999999 69.999987283333326 19.700915653333333 15.649998985
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 54.999999365000001 19.785927453333336 13.999998253333334 59.999990464999996 19.787150065000002 14.000007155 65.000010173333337 19.786537166666669 13.999998253333334 69.99998346833334 19.787758506666666 13.999997616666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999994913333325 19.893019676666668 12.000000479833332 65.000006358333337 19.891798016666669 12.0000023865 59.99999682166667 19.892410596666664 12.000000479833332 55.000005086666661 19.891185440000001 12.000000161500001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.999989193333334 19.997300151666668 10.000000953499999 59.999989830000004 19.892122585000003 11.999998411666667 59.999989193333334 19.786822315000002 14.000005401666666 59.999981564999999 19.681650480000002 16.000037988333332
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000001906666668 19.997299830000003 10.000000953499999 65.000007629999999 19.892122901666667 11.999998411666667 65.000001906666668 19.786821366666665 14.000005401666666 65 19.681650158333333 16.000037988333332
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 65.000005723333345 20.107821784999999 7.8999964393333331 65.000004450000006 20.000024796666665 9.9499990143333328 65.000005723333345 19.892081895 12.000000475 64.999991733333331 19.784328461666668 14.050017678333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 60.000001271666676 20.107819560000003 7.8999969958333338 59.999997456666662 20.000028295 9.9499998090000012 60.000001271666676 19.892080623333335 11.999999526666667 59.999996188333334 19.784275055000002 14.050006551666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000012716666674 19.892306011666669 12.000006037333335 69.999997456666662 19.892006238333337 11.999995229166668 65.000007629999999 19.892308551666666 12.000005721000001 59.999991100000003 19.891440393333333 12.000000479499999
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000002543333338 19.997308091666667 9.9999918936666674 69.999996185000001 19.892125764999999 12.000001588333333 70.000002543333338 19.786829948333335 14.000003181666667 69.999997456666676 19.681695939999997 16.000046095000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 81.830370584999997 19.658942539999998 15.650001049999998 83.423938753333346 19.720532731666665 15.649999301666668 85.003053030000018 19.658943175000001 15.650000728333334 86.563869473333341 19.474575041666668 15.649998506666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.000013988333336 19.645520845 17.922399840000001 85.000002541666674 19.659609793333331 15.471674121666666 85.000010176666677 19.546931265000001 14.090920608333334 85.000005088333339 18.989058493333335 12.164665383333332
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.637713113333348 19.70449352166667 13.999998408333333 81.196005503333339 19.828015008333331 13.999999843333333 84.664499918333334 19.704494476666667 13.999998251666666 90.145987193333355 18.190411248333334 14.000002541666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 78.340597786666677 19.822519940000003 15.650001844999998 85.455888111666667 19.771555580000001 15.650003113333334 89.835884098333338 18.922149023333333 15.650002636666668 95.200608571666663 15.895028275 15.650000093333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 89.999992370000001 19.716789246666664 18.007960321666665 90.000001271666662 18.488131840000001 15.455656371666667 90.000003811666659 17.685857930000001 14.069426855 89.999999998333351 16.204810143333333 12.26665942
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 94.3871994 14.373143831666667 14.000001906666668 90.12460072833332 17.812547686666669 14.000000953333334 85.114438378333332 19.813052811666665 14.000001906666668 79.417677558333338 19.771631559999999 13.999999368333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 6 17 4 91 18.117573531795713 15.650001895174981 91 18.047410984239633 15.539769268481171 91 17.980111459165968 15.434645197804043 91 17.915237430029212 15.334135390999631 91 17.852245689144837 15.237567093875596 91 17.790562566329147 15.144212307680121 91 17.668175966928672 14.961824927070595 91 17.607527554485049 14.872887959666897 91 17.546937916979132 14.78565117091371 91 17.48581407498564 14.699428094511562 91 17.423536699327158 14.613543196634986 91 17.296341232173585 14.442431144341597 91 17.231544278633425 14.357296147587798 91 17.1642613210091 14.271050999264475 91 17.093832544669173 14.183076709171203 91 17.019624892173425 14.092831821529993 91 16.941231518211016 14.000003795015065
- 0 7 0.33416049776810541 5 0.66993920599046752 5 1 7
-7 0 0 3 4 8 94.821545921666669 13.697966576666667 14.000002700000001 92.524745943333329 15.885800998333334 13.999999996666666 90.079518636666677 17.628967286666665 14.000002226666666 87.157160441666662 19.034695308333333 13.999999840000001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 86.935577393333332 19.583841956666667 15.650001524999999 90.182530720000003 18.583785691666669 15.650002483333335 92.334300995000007 17.436189813333332 15.650001205000002 95.480323795000004 15.453771116666669 15.649999781666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 5 14 4 91 16.941230313222093 14.000001236460124 91 16.817836058099253 13.853438804912773 91 16.692309126624274 13.70974721895983 91 16.564411766091595 13.568943360320054 91 16.433912941604738 13.430943462712257 91 16.168238795519855 13.161100924382879 91 16.033102628268995 13.029226107981756 91 15.89504968544232 12.899780787757491 91 15.753974658656922 12.772528322042469 91 15.456674338557903 12.514005547458519 90.999999999999972 15.300056499768672 12.38298843895136 91.000000000000057 15.139984218790739 12.253850813130693 90.999999999999986 14.976563596574282 12.126276341725253 90.999999999999986 14.809999271626081 12.000001138219609
- 0 6 0.32794621259812134 4 0.65372290810370193 4 1 6
-7 0 0 3 4 8 94.913678488333332 10.502762714999999 12.000000793333335 92.498484293333334 13.370875993333334 12.000000633333334 90.092422483333337 15.735814095 12.000000475 87.131791433333348 17.893672783333333 12.000000320000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 89.999998730000016 19.046408016666668 16.488840100000001 89.999996186666664 17.638707798333336 13.876842023333335 89.999997454999999 15.835126243333335 12.003800550000001 89.999983471666667 13.228568235000001 10.107977710666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 7 20 4 91 14.809999425274031 12.000000536270353 91 14.656599870775626 11.884076953550558 91 14.507765211890435 11.773071400090787 91.000000000000028 14.36564768551046 11.668595502164091 91 14.230219984028395 11.570432836560485 90.999999999999957 14.100730994518377 11.477805375395317 91 13.975883702076271 11.389585182458152 91 13.719299448086748 11.2103603390944 90.999999999999986 13.588585947085623 11.120283642903429 91.000000000000043 13.459632930771647 11.032447964907092 90.999999999999943 13.330965685307348 10.945676794060381 91.000000000000028 13.201164729611659 10.858860168538024 91 13.068801181345318 10.770907116391887 91 12.794437636639174 10.589463067832659 91 12.652931545961723 10.496304457574956 90.999999999999943 12.505188335535992 10.399295000587575 91.000000000000114 12.349349477019762 10.297077405852283 90.999999999999929 12.183952436107104 10.188521154919584 91.000000000000014 12.007991317016732 10.07274804930379 91.000000000000014 11.822123276265646 9.9499998625228212
- 0 8 0.3117494214584467 6 0.6546920582466389 6 1 8
-7 0 0 3 4 8 95.947221118333346 5.9817469316666667 9.9499990143333328 92.187797548333322 10.437230428500001 9.9500006833333341 90.301603950000001 12.670882466333333 9.9499983761666666 86.605723063333343 16.459219613333335 9.9500127666666671
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.000005086666675 18.743230181666668 14.836574396666666 90.000003816666663 15.518799463333334 11.725559391666668 90.000008899999997 13.389372666 10.261192482166667 89.99999491666668 8.5035770369999995 6.9296719231666675
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 6 17 4 90.999999999999986 11.822130629932968 9.9499996963336361 90.999999999999986 11.728576160344785 9.8880026610741112 90.999999999999986 11.635653286569692 9.8264899728043602 90.999999999999972 11.543898273083931 9.7657690332496543 90.999999999999986 11.45358731848177 9.7059492702845915 90.999999999999986 11.364726261150849 9.6469398976983616 90.999999999999986 11.190813642466534 9.5309568121971662 90.999999999999986 11.105751568158468 9.473983800965307 90.999999999999972 11.021572376857328 9.4172637422300038 90.999999999999986 10.937888038978073 9.360441303657046 90.999999999999986 10.854286122137427 9.3031591766121977 90.999999999999986 10.691128591380995 9.1902671324359151 90.999999999999986 10.611620839310021 9.1347505278198433 91 10.53168377241481 9.0783937230199054 90.999999999999986 10.45126336059575 9.0211436760048436 90.999999999999986 10.370492027486197 8.9631141303819017 90.999999999999986 10.289703398399681 8.9045868747755499
- 0 7 0.3430717016492329 5 0.68080943218630496 5 1 7
-7 0 0 3 4 8 95.629339851666671 5.2581777573333337 9.1083439189999993 92.288958230000006 8.9026918408333344 8.9727098939999994 90.214884441666669 11.152431328 8.8658007778333321 86.851496381666664 14.505141101666666 8.6569850445000007
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.000002540000011 15.362396718333333 11.625525633333334 89.999997456666676 12.668448286666667 9.7648919425000003 90.000000001666677 11.543696247333333 9.0149051349999993 89.999992373333328 9.1742726156666663 7.2684027355000005
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 6 17 4 91 10.289697224466467 8.9045861043098498 91 10.199322405201043 8.8393686369726687 90.999999999999986 10.107487884495566 8.7724737912056927 91 10.014556609238982 8.7040625694244742 91.000000000000014 9.9209104530806176 8.6343103580303762 91 9.8269844117941467 8.5634512959680151 91 9.6454388610274027 8.4246637250261536 91 9.5578028520447944 8.3568399014511723 91 9.4705299372234499 8.288422401532916 91 9.3838760457083126 8.2195893636928314 91 9.2980786090387042 8.1505474419892181 91 9.1204271405160284 8.0058029622874933 91.000000000000014 9.0287762370443456 7.9300922406210654 90.999999999999972 8.9387841642139367 7.8547528501561237 91 8.8508307179136398 7.7802109082150697 91 8.7651900300566314 7.7068353087998389 91 8.6821044282767836 7.6349674428480494
- 0 7 0.33765129277467348 5 0.65364637575500684 5 1 7
-7 0 0 3 4 8 86.013153078333346 13.41472705 7.2771612801666672 90.492965701666662 9.174539089166668 7.6040373639999999 92.01499684833334 7.7036640641666674 7.7016617456666658 96.44715372666667 3.5180633665166665 7.9774507681666673
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.000003816666663 13.448828060000002 10.331043561666668 89.999997460000003 11.217268464833333 8.7773866653333332 90.000005088333339 9.6995870271666682 7.6523121198333337 89.999975840000005 7.8009262078333341 6.0083131789999999
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 5 14 4 91.000000000000028 7.6163696240789829 6.6169437935621973 91.000000000000028 7.683648452601477 6.6891511366332166 91 7.7512528602397053 6.75998241836768 90.999999999999972 7.8191703738067471 6.8295624458359168 91 7.8873944682472654 6.8980167768907776 91 8.02570814778365 7.0341604805581905 91 8.0958086288250861 7.101812618970575 91 8.1662251117993545 7.1685608312322255 91 8.2369604893920378 7.2345366636656294 91 8.3821133442703513 7.3679910295857551 91 8.4565587826718591 7.4354133549213186 91 8.5313655611758072 7.5022859835967406 91 8.6065434376976047 7.5687548026610409 91 8.6821062941937761 7.6349692365526245
- 0 6 0.32467375889705741 4 0.65528611948353355 4 1 6
-7 0 0 3 4 8 87.338915508333343 10.453726291000001 6.082368533166667 90.054447171666666 8.3480386734999996 6.4901692870000005 92.443299613333338 6.4987281163333339 6.8154549600000003 95.172415411666663 4.4043064909999998 7.1299815971666671
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.000007626666658 7.2102719148333332 5.2932269571666666 90.000007631666676 8.379071157000002 6.4973107971666675 90.000001275000002 9.6180479518333328 7.576034068666667 90.000000001666677 10.9652845065 8.5935254099999998
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 5 14 4 91 6.5797055342620245 5.4157604521147293 91 6.645255396507455 5.4998558653240561 90.999999999999986 6.7114290091509723 5.5832655890925995 91 6.7781678890878156 5.6659017509573699 91 6.8454410834793995 5.7477421097595283 91 6.9802536636663444 5.908938655821304 91 7.0477758125300811 5.9883072909330872 91 7.1158194553953873 6.0669636884747344 91 7.1843855188718297 6.1449586467345512 91 7.3249907984494254 6.3024697361842987 91 7.3970623061549556 6.3819372493052748 91 7.4696842967604287 6.4608204957978597 91 7.5428137081225515 6.5391546812271732 91 7.6163665955497883 6.6169436399646093
- 0 6 0.33211359955845798 4 0.6602852667166641 4 1 6
-7 0 0 3 4 8 86.801284791666674 9.1107216671666666 4.5868153176666659 90.239880881666664 7.0138104755000006 5.2589642205000002 92.239192959999997 5.8611586888333331 5.6698081496666664 95.803398128333342 3.8027004401666664 6.3399622439999996
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.000001269999998 5.9680361749999999 3.7965519429999999 90.000003815000014 7.1726730659999998 5.2514123913333339 90.000000001666663 8.3683969183333318 6.49027435 90.000007629999999 9.6983373558333348 7.6460250218333341
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 6 17 4 91 5.3271750242298257 3.7290621470662795 91 5.4031035209815359 3.8270660227912945 90.999999999999986 5.476915827864353 3.9236678852662492 91.000000000000014 5.5486155716231851 4.0188621681485763 91 5.6183328039221241 4.1127423495876716 91 5.6864481043498287 4.205571811559861 91 5.8158527094829573 4.3833869720085614 90.999999999999986 5.8772803114685352 4.4684578837484645 91.000000000000028 5.9382565745116507 4.5532696324830066 91 5.9993594478565857 4.6382177947304868 91 6.0611421426105219 4.723677495686756 91 6.1951305926575921 4.9074901951472079 91 6.2676362773191725 5.0060584505307517 91 6.3421245135305595 5.1060322462423668 91 6.4189401835716255 5.2076338242582123 91 6.4981539595628748 5.3108985261098276 91 6.5797076510958714 5.4157581913373409
- 0 7 0.33552387596375727 5 0.64734104289112193 5 1 7
-7 0 0 3 4 8 87.488463085000006 6.7626683316666671 3.1663270196666669 90.004053751666675 5.7370700833333332 3.5633858441666666 92.495351155000009 4.7097649576666676 3.9759152330166669 95.014634448333339 3.7846282325000002 4.3984814979833331
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.000008903333338 3.5177243149999997 1.3462664878499999 90.000003814999999 6.0261777241666667 3.7963888248333331 90.000005083333335 6.7982784110000001 4.8639638421666671 89.999992371666679 9.8078381229999998 8.0402228830000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 5 14 4 91 3.8817542861799206 2.1589308753567038 91 3.9892348407184421 2.2587878423394372 91 4.0937698171513173 2.3578815325649676 91 4.1957292788297282 2.4567438397818817 91 4.295507271522105 2.5559356261029595 91 4.4898577271779043 2.7544481765172408 91 4.5844847141786662 2.8537314478164393 91 4.6778114836555522 2.9544726408607813 91 4.7702358226010606 3.0572415317711488 91 4.9554189381992693 3.2694895449255461 91.000000000000014 5.0481564982310019 3.3790372615694539 90.999999999999957 5.1407889071543345 3.4918256469310731 91.000000000000014 5.2336928466850052 3.608378983270482 91.000000000000014 5.3271709474140154 3.7290643182911913
- 0 6 0.33559380390076604 4 0.66539264450876856 4 1 6
-7 0 0 3 4 8 86.054364525000011 4.8524344163500004 1.5513952487966669 90.486749011666674 3.942206700666667 2.0824114577833335 91.998577116666667 3.738252361666667 2.2939484518833333 96.518967948333341 2.8379676341666666 3.0623082323333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.000008905000001 1.9212210974333335 0.41745378083333329 90.000003816666663 4.1768059329999998 2.0717415211666665 90.000007631666676 5.7310673398333343 3.4705700871666663 89.99999364333334 7.3196550606666673 5.4417666596666665
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 5 14 4 91 2.1467438814484199 0.8153475852730534 91 2.2708455609389797 0.89314151402672171 90.999999999999943 2.3917656303648651 0.97155854808070352 91.000000000000014 2.5097822609960092 1.050846959049631 90.999999999999986 2.6252612109462716 1.131258979298138 90.999999999999986 2.8543127220024718 1.296499775185552 90.999999999999986 2.9677937244456176 1.3813855561572126 90.999999999999986 3.0794595593342886 1.4679195230125925 90.999999999999986 3.1897543836311097 1.5563116318574399 90.999999999999986 3.4168563622264667 1.7441125751978119 90.999999999999986 3.5335093253099368 1.8438445693137802 90.999999999999986 3.6495736398989695 1.9461354566905147 90.999999999999986 3.7655224298162562 2.0511322192056527 90.999999999999986 3.8817540956097547 2.1589296882091888
- 0 6 0.32044122240090905 4 0.64761656907444154 4 1 6
-7 0 0 3 4 8 90.000007633333325 0.002150167999999994 -0.34047671033333338 89.999999998333337 2.3653433719999999 0.77187090116666668 90.000008901666689 3.9142781498333332 1.8621037205000002 90.000010175 6.3370721343333338 3.9547190663333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.00000636 0.49837640921666665 -0.05653652053333335 84.999997454999999 3.0587390663333331 0.60131104790000012 85.000011445000013 5.4017139671666659 1.4947187703333333 85.000006361666678 7.682835737833333 2.7456341581666663
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.167915346666675 7.3923118116666675 1.2825946214833335 84.962730408333329 5.2544638313333332 1.5189869901000002 89.981212616666681 3.9382635358333333 1.967277705516667 95.11246490500001 3.3520101310000001 2.7869070373333331
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000005086666675 2.3525551209166666 0.088927402475 79.99999745833334 5.097779830166667 0.55284952121666664 80.000007626666672 7.7075410693333328 1.2699944971666668 79.999984745000006 10.337946732166667 2.2783865931666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.088962556666672 10.973492783166668 1.1991200248 80.036847434999999 7.4996134443333338 1.3057917557666667 84.763680776666661 5.2939405438333331 1.4889284916666667 90.90845998333333 3.6730603773333339 2.0643156020833335
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000006358333337 5.3140192421666672 0.082278183966666668 75.000007633333325 8.3321053185 0.51870668930000008 75.000001269999984 11.062835376666667 1.1456824738333333 74.999998726666675 13.883149783333334 2.0911484754999998
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.909001668333332 14.637135505 1.0937744378000001 75.053497313333324 11.068247955666667 1.19965070465 79.877020518333339 7.5564692808333334 1.3002078037333336 85.43841552666666 4.9717653193333344 1.5107344987166667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000002541666674 9.6962811166666683 0.13223005082833333 69.999999996666659 12.174772741333333 0.47580367821666669 70.000003814999985 14.461350281666668 1.0597763460166667 70.000003811666659 16.746792474999999 1.9606785575000001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 63.833620070000002 18.188989003333333 1.0337811508833334 70.385683698333338 14.301446278333334 1.1140660940333333 74.623644510000005 11.372135794666667 1.1855387988666668 81.119796751666669 6.6766039528333341 1.3363639609833335
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.609960556666664 18.498228075 1.0285666783666667 65.070509595000004 17.346089043333336 1.0560830734666666 70.108016969999994 14.507603965000001 1.1077079772833334 74.497412359999998 11.390416464166666 1.1886689660500001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.061998366666664 19.357874549999998 1.6265960931500003 65.298034666666666 18.163630484999999 1.6414608955000003 69.745881400000002 16.226383370000001 1.6773822110000003 75.718460083333326 12.803629875 1.871109286666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999991731666668 12.748884999666668 0.61510476471666675 70.000003181666671 14.507703301666666 1.0984109639999999 69.999994915000002 15.987211705000002 1.6668357051666667 69.999996185000001 17.416280748333335 2.456348895833333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.258344648333335 19.845291136666667 2.5460139516666667 65.211922963333336 19.117561021666667 2.6316423019999999 69.893997191666671 17.980470018333335 2.7863153418333333 75.212137859999999 15.797501881666669 3.120509624666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000002543333338 13.488144081166666 0.67078998686666669 70.000002545000001 16.144627096666667 1.7161365348333335 69.99999745333335 17.806184770000002 2.6867657898333333 70.000012713333334 19.467642151666666 4.4342143536666665
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.336096444999995 20.074801441666668 3.6094839178333333 65.201025646666665 19.69616572 3.7221465906666666 69.859844208333328 19.008741376666666 3.9173973403333333 75.35966110166666 17.565535861666667 4.3517882428333339
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.999992368333338 16.479190983333332 1.8925623296666667 70.000001275000002 17.854279518333335 2.7747291328333334 69.999998725000012 18.940636633333334 3.9059394596666666 69.999994913333339 19.679895716666667 5.3450478711666669
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 59.391712185000003 19.835763931666669 5.8955676156666676 65.211950941666657 20.081720669999999 5.8118306796666666 69.76052602 19.837361018333333 5.7968375283333344 75.746008556666666 19.122179986666666 6.1379414398333338
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000008903333338 17.409436546666669 2.2974594436666669 70.000006355000011 19.010780018333335 3.9301710920000001 70.000011445000013 19.844179471666667 5.7253940898333333 70.000011443333335 20.165846825000003 8.3053747814999994
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 70.000006996666656 19.869708695 10.451876323333334 70.000003183333334 20.065141356666665 7.749323367833334 70.000008898333334 19.869711558333332 5.9093479318333335 70.000002545000001 19.009275119999998 3.7502939303333336
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000005090000002 20.085418383333334 10.224239665000001 75.000005083333335 19.850114185000002 7.9289580183333328 75.000010171666659 19.081128440000001 6.1139143308333335 74.99998728333334 17.706985151666665 4.4641058049999991
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 64.989457451666667 20.081202191666669 5.7967049678333336 69.986818951666663 19.827145893333331 5.8079573709999996 75.063243863333327 19.163615863333334 6.1085495951666671 79.760220844999992 17.400093875000003 6.6065367063333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000017803333336 19.567839301666666 10.109895386666667 80.00001398500001 18.539273900000001 8.1409184136666681 80.000019076666661 17.286614735000001 6.6570806503333335 80.000008900000012 15.485410375000001 5.0715403556666665
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.277907053333337 20.007292113333335 5.7617298361666673 75.223191576666665 19.121847473333332 6.1157723266666668 79.829374951666665 17.38698625833333 6.6238918303333341 85.459363301666656 14.501372180000001 7.2294649285000006
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 89.651551565000005 11.914568741333333 8.8457519214999998 85.012297316666675 16.061971348333334 8.519604206166667 80.299271903333334 18.657605490000002 8.2227693398333344 73.790668488333338 20.319252333333335 7.9199641549999997
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.000011443333335 17.502166908333333 10.097775936666668 85.000008901666661 15.772496225000001 8.463083267 85.000012718333323 14.227886355000001 7.1968269346666673 84.999997453333336 12.256928842166667 5.6886742908333332
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.445053101666673 19.279773711666667 6.0242670373333338 80.096318560000014 17.363144236666667 6.6563597516666668 85.169717153333323 14.438814799999999 7.1911081473333329 89.224817910000013 9.8225622174999998 7.5183184148333329
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 89.560980480000012 13.718303998333333 9.9499999680000002 85.039505008333336 17.551914535000002 9.9500004448333321 80.281012216666667 19.618939716666667 9.9499996510000006 73.836495715000012 20.201951663333332 9.9499998911666676
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.000005083333335 18.637953761666665 11.619626365000002 85.000001269999998 17.257906591666668 9.8815779695000003 85.000006361666664 15.875300091666666 8.554058233666666 84.999977115000007 14.060887970000001 7.0491486391666669
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 90.110006966666674 16.232307594999998 11.999998568166667 84.887573239999995 19.043909711666668 12.000001109333333 80.339733125000009 19.963479360000001 11.999998727333335 73.753573099999997 19.902155241666669 11.999999202666668
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.000000003333341 19.783878961666666 14.419864975000001 85.000002545000015 18.806727091666666 11.908886430000001 85.000005088333324 17.360662775000002 9.9445986755 84.999983473333344 15.295541448333333 8.0126832323333339
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 84.999986013333341 19.685453100000004 16.213190716666666 85.000005084999998 19.579738933333331 13.945662338333332 84.999986016666682 18.831995329999998 12.004155321666667 84.99995040666667 17.463647686666668 10.037697475833333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 94.179958346666666 11.512120087666666 12.000001588333333 90.155138651666675 15.903816540000001 12.000000158333334 85.199516299999999 19.080414453333333 12.000002223833334 79.046811419999997 20.145975749999998 12.000000316833335
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 94.836764021666653 7.2460498409999996 9.9499961533333341 89.954533893333334 13.212057750000001 9.9500021944999997 85.345134738333343 17.485586323333337 9.9499963121666681 78.664933525000009 20.390516596666664 9.949976921166666
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 95.821200056666669 5.1207256316666676 9.1506155324999998 89.681991580000002 11.772761978333333 8.8484536800000022 85.45080693333334 15.805725735000001 8.5484762183333345 78.514761606666667 19.824387866666665 8.1045691968333333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 96.990455631666663 2.9757633009999997 8.0367802778333335 89.35079574833334 10.258111634500001 7.5316449004999999 85.606334688333334 13.80834325 7.2315990126666669 78.223834993333327 19.449567158333334 6.4810236298333344
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.931559241666676 15.998696325000001 4.9137417875000002 85.019948326666679 12.261293093333334 5.7278006870000002 89.98867289333333 8.3936160406666662 6.4914854368333339 95.025371551666666 4.5088408391666661 7.164792378833333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 84.999999998333337 10.151367027833333 4.265517036166667 84.999998730000002 12.286506491499999 5.7335302033333342 85.000003813333336 14.140102228166665 7.1167925993333334 84.999991100000003 16.094050250000002 8.7384101551666671
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.872553506666662 13.101259308333335 3.5784187515000001 85.039713541666671 10.242701846000001 4.2730262278333342 89.968607585000001 7.136267106 5.1864168245000002 95.085872650000013 4.2393550873333332 6.2737823324999997
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.000001268333335 8.039491812333333 2.8952768443333334 85.000002543333338 10.239255902 4.3192430733333342 85.000003816666663 12.211818378 5.6846913496666671 85.000007631666676 14.350955325000001 7.2584215003333341
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 77.739985146666669 11.030140242 1.9211956165666668 85.776369733333325 7.4458853405000003 2.8997826976666667 89.154544833333333 6.0947621660000006 3.4208803970000004 97.605447136666669 2.5957759816666668 4.8124847610000003
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 84.999994915000002 5.1718157135 1.3742225371500001 85.000002543333324 7.9019922404999994 2.8342857358333333 84.999992370000001 10.128662746833333 4.2298361458333336 84.999986009999986 12.791729607333334 6.1033214726666669
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 85.000012718333338 2.6128341558999999 0.36145627001666669 85.000005088333339 5.5117722351666671 1.5622939066666666 85.000013986666673 7.6885112919999994 2.7151898541666668 85.00000254166666 10.642628032999999 4.518154263833333
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000012716666674 4.8349478245000004 0.45257636284166669 79.999989830000004 7.8452525131666668 1.3222053053333334 80.000001268333335 10.049923338833334 2.1698179844999999 80.000001270000013 13.248870375833333 3.5968225398333331
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.175078073333339 13.07125044 1.8686962326666667 79.960042321666663 10.114079554 2.2363994121666666 84.984769183333327 7.7662319334999994 2.7840176816666666 90.100869496666661 5.7293991245000004 3.5687521693333331
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.999996185000001 8.8349285136666662 0.62882828715000005 75.000015258333335 11.1238309505 1.1791169248333335 75.000001271666662 13.136341094166667 1.847289264 74.999997454999999 15.225590231666667 2.7854312658333336
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 67.173454283333342 17.802781738333337 1.5042221946500001 75.905719756666684 12.637376149833333 1.9186332621666669 79.203709918333345 10.5424776055 2.1749455429166669 87.279467266666671 6.486509104833333 2.979894419666667
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 63.674343746666665 19.041255 1.5984044023500001 70.444248198333327 15.845935661666665 1.6964101891166667 74.548633574999997 13.447834970000001 1.8380562070499999 81.361251828333337 9.2574969136666674 2.3050649165000001
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 64.373423261666673 19.372778893333333 2.5904163916666665 70.187716168333338 17.894527435000001 2.8007924951666672 74.875673930000005 15.886047043333333 3.1038271786666667 80.309599558333332 12.880641144 3.6249181428333337
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000010171666673 10.292603731 0.91983279581666655 75.000005084999998 13.216039500666668 1.8453803463333331 75.000003814999999 15.738010721666667 3.0523457526666666 74.999991101666666 18.151274364999999 4.7862559956666662
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 64.114947003333342 19.894140565000001 3.6572821340000004 70.250236513333334 18.94177405166667 3.940370003 74.884087876666669 17.635490101666669 4.3247672718333332 80.213437396666663 15.155744871666668 4.9632906911666677
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 75.000012714999997 13.641355513333334 2.0165537593333331 75.000006355000011 15.798321405000001 3.1294248498333328 75.000012713333334 17.484653154999997 4.3067750931666673 75.000006355000011 18.902546248333334 5.8462126258333331
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 74.999999998333323 15.329990706666667 2.7580665748333333 75.000005083333335 17.560282868333335 4.3537068763333338 75.000005084999998 19.068357150000001 6.0298357013333339 74.999989826666663 20.047991753333335 8.3756427763333328
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.722384136666676 19.103997551666669 3.8890612126666673 75.067419688333331 17.585011166666668 4.3421471518333332 80.007991794999995 15.195469856666667 4.9450866775000009 84.900657655000003 12.744432768333334 5.6928963661666669
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000007626666672 12.548254966666667 3.2267275058333338 80.000008898333334 15.343433696666668 5.0185574688333334 80.00001017000001 17.189319926666663 6.5144350524999997 79.99999491666668 19.070452055000001 8.7645165125000002
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 69.807629901666672 18.087428408333338 2.7645130555000001 75.045455934999993 15.799630481666668 3.1203175781666666 80.010571798333331 13.033340133333333 3.5952469508333333 84.912277223333334 10.317481279333334 4.2573906186666672
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 80.000008903333338 10.750824766833334 2.4565565588333333 80.000007626666672 13.075450423333333 3.5961583456666668 80.000010173333337 15.197934153333334 4.9175013701666677 80.000007626666658 17.244124733333337 6.5492369333333338
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 79.999998728333338 6.9814510745000007 1.0008802513666666 80.000007629999999 10.324784751999999 2.2643759248333333 80.000002543333324 13.013214905 3.5399264100000001 79.999993641666663 15.872926710000002 5.334613641333334
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 72.517627716666667 17.204993406666667 2.8144831261666665 80.789984386666674 12.599861148333334 3.6923290886666669 84.322479246666674 10.646140258666668 4.1748976706666667 91.920101168333332 6.0239154493333338 5.4650201000000003
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
-7 0 0 3 4 8 72.050647734999998 18.973474185000001 3.9415725470000003 80.813400268333339 14.847286386666667 5.0488105218333335 84.695789338333341 12.748697443333334 5.678580999666667 90.403438571666669 7.5953784780000007 6.5532512663333335
- -3 1 -2 1 -1 1 0 1 1 1 2 1 3 1 4 1
+Curve2ds 39
+7 0 0 3 91 89 2.3503019887871592 5.8123978260946148 2.3431845034729579 5.8105845778707685 2.329041135334132 5.806951204515201 2.3077442775852468 5.8013819342133095 2.2863447011222182 5.7956878989067944 2.2636465433459563 5.7895379570286147 2.2402222603259405 5.7830688665690424 2.216291634918873 5.7763305451677232 2.1922380630305422 5.7694242792854258 2.1681977713285847 5.7623880648102794 2.143799917526322 5.7551060939716141 2.1191799382535077 5.7476109661394181 2.0943399571384722 5.7398970270818817 2.0693334010054207 5.7319747330631188 2.0440539274406189 5.7238050103888645 2.0184576013086297 5.7153622357050988 1.9934409089566982 5.7069486521582471 1.9661478197891264 5.6975871700947049 1.9395234894334048 5.6882856520078464 1.912949823756013 5.6788531902914468 1.8864869166528784 5.6693217526657484 1.8600170307324666 5.6596618564129129 1.8334346922567355 5.6498446418765997 1.8067411391094534 5.6398810292105237 1.7794440156706592 5.6295943711904775 1.7515161851176289 5.6189785798956926 1.7231169214636388 5.6081016773574062 1.6943426444764129 5.5970098780955464 1.6653977041977903 5.5857923256249453 1.6361628630595757 5.5744133952117476 1.606415355061233 5.5627987636136558 1.5762711232101629 5.551006339440792 1.5457614858333693 5.5390624559258299 1.5149398396865468 5.5270021680508412 1.4841830869137331 5.5149916874084139 1.4534270775911184 5.5030210649892481 1.422682400745144 5.4911097797916533 1.3919397133821578 5.4792691320590654 1.3611950541263651 5.4675123675224357 1.3304430125036746 5.4558520115200073 1.2996785202912868 5.4443006318456453 1.268896345753459 5.4328706860870186 1.2380912202342202 5.4215746202616755 1.2072578170657258 5.4104249017053743 1.1763907891050929 5.3994340894272081 1.1454848296958826 5.3886148428355831 1.1145346937921601 5.3779801531669795 1.0835354606381409 5.3675427453235622 1.052481959587257 5.3573175567986873 1.0220881813216061 5.3475481439029391 0.99219086663615352 5.3381816373206368 0.96277645345579355 5.3292121174792433 0.93375987281891981 5.3205965570060432 0.90508145505737425 5.3123077851377767 0.87666122891009046 5.3043154344260195 0.84850154303465231 5.296619390149421 0.82073202240150123 5.2892547731658066 0.79326307136490137 5.2821942395321191 0.76607277915463612 5.2754260996569107 0.73918177018646225 5.2689491423759449 0.71263101734296264 5.2627653897164883 0.68620018338527955 5.256819129653783 0.65995926668755833 5.2511247295830827 0.63394868423699136 5.2456867760088848 0.60821486215191134 5.2405097979031057 0.58280251303354136 5.2355962939979541 0.55775081848892383 5.2309463959028104 0.53311734042559511 5.226562592593603 0.50887699062679959 5.2224338210460379 0.48491263120227607 5.2185302684334838 0.46113109386008844 5.2148315959156513 0.43743686613655192 5.211320241685196 0.41373868701926081 5.2079827105608034 0.38994779914544031 5.2048088478375165 0.36597685758774839 5.2017915945497863 0.34174473318907245 5.1989271759677154 0.31715723941545543 5.1962133668714454 0.29217840915968918 5.1936552645040441 0.26656376910973067 5.191243167014961 0.24123043876000247 5.1890684564574023 0.21606124381965203 5.1871139725101401 0.19094518974281519 5.1853703929936863 0.16602563572405724 5.183845556487503 0.14124429780325196 5.1825328956379062 0.11657273800342172 5.1814301693443854 0.092010629348598993 5.1805349952285304 0.067450450657838112 5.1798490895379414 0.043405306814596513 5.1793719622052192 0.017931227115678624 5.1791069379649395 0.0048194094228698522 5.1790671519618208 0 5.1790808369801216
+ 2.03784942368079 4 2.0960425650285792 1 2.1542357063763689 1 2.212428847724158 1 2.2706219890719472 1 2.3288151304197364 1 2.3870082717675261 1 2.4452014131153152 1 2.5033945544631044 1 2.5615876958108936 1 2.6197808371586833 1 2.6779739785064725 1 2.7361671198542616 1 2.7943602612020513 1 2.8525534025498405 1 2.9107465438976297 1 2.9689396852454188 1 3.027132826593208 1 3.0853259679409977 1 3.1435191092887869 1 3.2017122506365761 1 3.2599053919843657 1 3.3180985333321549 1 3.3762916746799441 1 3.4344848160277337 1 3.4926779573755224 1 3.5508710987233121 1 3.6090642400711013 1 3.6672573814188905 1 3.7254505227666801 1 3.7836436641144693 1 3.8418368054622585 1 3.9000299468100481 1 3.9582230881578373 1 4.0164162295056265 1 4.0746093708534161 1 4.1328025122012058 1 4.1909956535489945 1 4.2491887948967833 1 4.3073819362445729 1 4.3655750775923625 1 4.4237682189401522 1 4.4819613602879409 1 4.5401545016357296 1 4.5983476429835193 1 4.6565407843313089 1 4.7147339256790985 1 4.7729270670268873 1 4.8311202083746769 1 4.8893133497224657 1 4.9475064910702553 1 5.0056996324180449 1 5.0638927737658346 1 5.1220859151136233 1 5.1802790564614121 1 5.2384721978092017 1 5.2966653391569913 1 5.354858480504781 1 5.4130516218525697 1 5.4712447632003594 1 5.5294379045481481 1 5.5876310458959377 1 5.6458241872437274 1 5.704017328591517 1 5.7622104699393057 1 5.8204036112870945 1 5.8785967526348841 1 5.9367898939826738 1 5.9949830353304634 1 6.053176176678253 1 6.1113693180260409 1 6.1695624593738305 1 6.2277556007216202 1 6.2859487420694098 1 6.3441418834171994 1 6.4023350247649873 1 6.4605281661127769 1 6.5187213074605665 1 6.5769144488083562 1 6.6351075901561458 1 6.6933007315039355 1 6.7514938728517233 1 6.8096870141995129 1 6.8678801555473026 1 6.9260732968950922 1 6.9842664382428818 1 7.0424595795906697 1 7.1006527209384593 1 7.158845862286249 4
+8 -5.1790808369767198 -4.6606686162644397
+1 0 0 0 -1
+7 0 0 3 25 23 0 4.6606686162644362 0.046597678258160628 4.6606731806397717 0.1401419970500033 4.661910487106474 0.2811676011006714 4.6675997654550878 0.42257070211153819 4.6772535023137047 0.56399820896655772 4.691064597280346 0.70548111241145073 4.7092518495356313 0.84588957824955968 4.7320311025347657 0.97297228524009771 4.7568381659322307 1.0947807721781682 4.7844719447453476 1.2172889645387392 4.8156741641363103 1.3386175395402629 4.8493324391575525 1.4580661854635568 4.8844441398624534 1.5750600546092177 4.9199979223419099 1.6906654794915053 4.9554879508080703 1.7985265765332537 4.9881748162820427 1.9049578398779494 5.0194101970106626 2.0247312362027277 5.0525678342686922 2.1671747139268644 5.0882436582376922 2.3466564788282529 5.1277057912515378 2.5145638939049686 5.1601568856486635 2.6788231642086004 5.1892049386326624 2.8400255474284593 5.2160334774713633 2.946653802438898 5.2334195569092943 3 5.2422190630349368
+ -12.791400672854561 4 -12.20997336954299 1 -11.628546066231419 1 -11.047118762919848 1 -10.465691459608276 1 -9.8842641562967053 1 -9.3028368529851342 1 -8.7214095496735631 1 -8.139982246361992 1 -7.5585549430504217 1 -6.9771276397388506 1 -6.3957003364272795 1 -5.8142730331157093 1 -5.2328457298041382 1 -4.6514184264925671 1 -4.069991123180996 1 -3.4885638198694249 1 -2.9071365165578538 1 -2.3257092132462827 1 -1.7442819099347115 1 -1.1628546066231404 1 -0.58142730331156933 1 0 4
+8 5.2422190630349403 5.9443342009550602
+1 3 8.8817841970012523e-016 0 1
+7 0 0 3 25 23 3 5.9443342009550628 2.9939357141661089 5.9432956616307617 2.9810653968779564 5.9410905162502248 2.9595276190702107 5.9373863902514561 2.9357138351993832 5.9332682352691029 2.9097085781839618 5.9287373768796412 2.8811007510557061 5.9237038003127669 2.8513143408837802 5.9183983658747774 2.8216500541264504 5.9130429073562611 2.7917465380540185 5.9075642319249946 2.7616861806091317 5.9019675537377081 2.7314343728934123 5.8962371079079734 2.7009763791996986 5.8903599938880093 2.6703302815366441 5.8843298906525687 2.6393579814912149 5.878108021209921 2.608560160047833 5.8717858460954364 2.5778890139064026 5.8653477716107068 2.5470994680578891 5.8587345123816794 2.5159948619017731 5.8518931798543043 2.4843430230664265 5.8447585095427765 2.4519623998029387 5.837271678658011 2.4184560421969588 5.8293164310309962 2.3841822390743426 5.820946771965759 2.3614808816080699 5.8152471213093362 2.350301988787157 5.8123978260946148
+ 0 4 0.092629519258217732 1 0.18525903851643546 1 0.27788855777465321 1 0.37051807703287093 1 0.46314759629108865 1 0.55577711554930642 1 0.64840663480752414 1 0.74103615406574186 1 0.83366567332395958 1 0.9262951925821773 1 1.018924711840395 1 1.1115542310986128 1 1.2041837503568305 1 1.2968132696150483 1 1.3894427888732659 1 1.4820723081314837 1 1.5747018273897015 1 1.6673313466479192 1 1.759960865906137 1 1.8525903851643546 1 1.9452199044225724 1 2.03784942368079 4
+7 0 0 3 25 23 5.606125880534325 12.641482464459381 5.6148708874527493 12.641774516005446 5.6323605606170881 12.642365599125217 5.6585943718678138 12.643271706996694 5.684827521651779 12.644195852854539 5.7110610497224545 12.645136550593463 5.7372922478628006 12.646092423136961 5.7635323748788618 12.647061650559719 5.7897313863169568 12.648044349877246 5.8158947103300198 12.649037712446386 5.8420374974243741 12.650039191122836 5.8681722928803506 12.651046713222893 5.8943123357268963 12.652058600407635 5.9204706960068938 12.653073570583871 5.9466604334869455 12.654090706577236 5.9728948334272864 12.655109477367359 5.9991863137831318 12.656129583885868 6.0255505707429373 12.657151455493901 6.0519482885409905 12.658168212049036 6.0783684805652518 12.659173876662152 6.1046759508355821 12.660152126521732 6.1307934478108699 12.661098939312966 6.156676832413579 12.662011257081144 6.1737450969607091 12.66259372788058 6.1822247156705501 12.662877892336912
+ 2.0379657823515802 4 2.1832443628929088 1 2.3285229434342374 1 2.473801523975566 1 2.619080104516895 1 2.7643586850582231 1 2.9096372655995522 1 3.0549158461408807 1 3.2001944266822093 1 3.3454730072235379 1 3.4907515877648665 1 3.6360301683061955 1 3.7813087488475237 1 3.9265873293888527 1 4.0718659099301817 1 4.2171444904715099 1 4.362423071012838 1 4.507701651554167 1 4.652980232095496 1 4.7982588126368242 1 4.9435373931781523 1 5.0888159737194822 1 5.2340945542608104 4
+7 0 0 3 25 23 6.1822242643724552 12.662854167309284 6.180975539339693 12.702464593825521 6.1784402373638372 12.781624918783647 6.1745234894798839 12.900219245631684 6.1704916462824135 13.018722958542471 6.1663471215926835 13.137121173604898 6.162091312851488 13.255417776052957 6.1577258730075117 13.37361151188462 6.1532523737915561 13.491702385879584 6.1486723997530772 13.609689938087865 6.1439875265984831 13.727573695384969 6.139199330249336 13.845353038988014 6.1343093873655636 13.963027227075045 6.1293192778978209 14.080595374330189 6.1242305866361573 14.19805644123948 6.1190449052995088 14.315409219242111 6.1137638320077867 14.43265231369721 6.108388979224725 14.549784129900738 6.1029219489927611 14.666802838415123 6.0973644291227291 14.78370640858285 6.0917178369257607 14.900492377618693 6.0859846505661288 15.017158595992051 6.0801625663747929 15.133698574768772 6.0762203828796224 15.211285013535608 6.0742337099225949 15.250047146552292
+ 10.57202445903739 4 10.81829024350241 1 11.064556027967429 1 11.310821812432449 1 11.557087596897468 1 11.803353381362488 1 12.049619165827508 1 12.295884950292526 1 12.542150734757547 1 12.788416519222565 1 13.034682303687585 1 13.280948088152606 1 13.527213872617624 1 13.773479657082644 1 14.019745441547663 1 14.266011226012683 1 14.512277010477703 1 14.758542794942722 1 15.00480857940774 1 15.25107436387276 1 15.497340148337781 1 15.743605932802801 1 15.989871717267819 4
+7 0 0 3 47 45 6.0742337099225931 15.250047146552255 6.0733997603909877 15.266318024137744 6.0717263104051229 15.298849251216321 6.0691991717579601 15.347613514272195 6.0666547978604095 15.396343692334987 6.0640927795161179 15.445040077485732 6.0615127981946655 15.493701957186067 6.058914556022164 15.542328336624152 6.0562977506282634 15.590918289709212 6.0536620822328153 15.63947086480403 6.0510072518975395 15.687985111053264 6.0483329629445137 15.736460067663597 6.0456389186103578 15.784894780858979 6.0429248316600983 15.833288247269357 6.0401903899968845 15.881639623996344 6.0374353863997881 15.929947445632513 6.0346596744295713 15.978209982684104 6.0318630023631661 16.026426161353022 6.029045151552074 16.074594728665396 6.0262058997821999 16.122714476444834 6.0233450315280228 16.17078418164898 6.0204623356537112 16.218802622733275 6.017557606492141 16.266768575667125 6.0146306440235859 16.31468081543931 6.0116812543344018 16.362538116083154 6.0087092499109174 16.410339251270845 6.0057144503649029 16.458082994249995 6.0026966816470599 16.505768119985756 5.9996557809236499 16.55339339928506 5.9965915801834351 16.600957622871462 5.9935038072866176 16.648459450229737 5.9903921499953894 16.695898444679045 5.9872563301945121 16.743273492305761 5.9840960667353622 16.790583565466523 5.9809110806000962 16.837827611082002 5.9777010936760213 16.885004581369 5.974465829148512 16.932113424505566 5.9712050118084976 16.979153093217008 5.9679183670801734 17.026122521832836 5.9646057800211096 17.07301851165996 5.9612666289721963 17.119844729327767 5.9579018364972525 17.166584303035638 5.9545066567648783 17.213295784691681 5.9510976711882844 17.259753994331113 5.9476118667593099 17.30679281687134 5.9453927348436135 17.336461206289073 5.9443342009550664 17.350541349673339
+ 15.989871717267841 4 16.093242869531647 1 16.196614021795455 1 16.299985174059263 1 16.40335632632307 1 16.506727478586875 1 16.610098630850683 1 16.71346978311449 1 16.816840935378298 1 16.920212087642103 1 17.023583239905911 1 17.126954392169718 1 17.230325544433526 1 17.333696696697331 1 17.437067848961139 1 17.540439001224946 1 17.643810153488754 1 17.747181305752559 1 17.850552458016367 1 17.953923610280174 1 18.057294762543982 1 18.160665914807787 1 18.264037067071595 1 18.367408219335402 1 18.47077937159921 1 18.574150523863018 1 18.677521676126823 1 18.78089282839063 1 18.884263980654438 1 18.987635132918246 1 19.091006285182051 1 19.194377437445858 1 19.297748589709666 1 19.401119741973474 1 19.504490894237279 1 19.607862046501086 1 19.711233198764894 1 19.814604351028702 1 19.91797550329251 1 20.021346655556314 1 20.124717807820122 1 20.22808896008393 1 20.331460112347735 1 20.434831264611542 1 20.53820241687535 4
+8 -5.9443342009550602 -5.2422190630349403
+1 8.8817841970012523e-016 17.350541349673339 -1 0
+7 0 0 3 25 23 5.2422190630349359 17.350541349673339 5.2488207477290754 17.290099470227727 5.2618738111745422 17.169075583113809 5.2810085721839046 16.986980210815361 5.2997042885441212 16.804184437192262 5.3179677793245457 16.620553362128646 5.3358065230727236 16.435955368872182 5.3532287522358395 16.250262108583016 5.3702433739565985 16.063348429736127 5.3868600994660492 15.875090152487894 5.4030888849584287 15.685370836956626 5.4189418891178081 15.494055080625085 5.4344260275335028 15.301087083464532 5.4495706061047553 15.106122016259235 5.4643240369743387 14.909901332817912 5.4789391165607029 14.709120340581432 5.4939003130107249 14.496738951291183 5.5091075166871661 14.273447933905459 5.5246055084688708 14.037906808076386 5.5403906872032893 13.789299242718046 5.5564604352706271 13.526644591660748 5.5727958896733858 13.248974423530656 5.5893652669752409 12.955282406575932 5.60052710482194 12.748096647417032 5.6061281992750569 12.641481318295106
+ -26.377649613757281 4 -25.66771305156778 1 -24.957776489378279 1 -24.247839927188778 1 -23.537903364999277 1 -22.827966802809776 1 -22.118030240620275 1 -21.408093678430774 1 -20.698157116241273 1 -19.988220554051772 1 -19.278283991862271 1 -18.56834742967277 1 -17.858410867483272 1 -17.148474305293767 1 -16.43853774310427 1 -15.728601180914767 1 -15.018664618725266 1 -14.308728056535765 1 -13.598791494346264 1 -12.888854932156763 1 -12.178918369967262 1 -11.468981807777761 1 -10.759045245588259 4
+7 0 0 3 25 23 4.1223859219806291 1.0981161730079028e-005 4.1305065642600303 1.0980101164727874e-005 4.1467534631228657 1.0977423247822152e-005 4.171140583596495 1.0971749662691518e-005 4.1955443896095801 1.0964432454445404e-005 4.2199648501974583 1.0955486677376202e-005 4.2444019739300485 1.0944928664870395e-005 4.2688558163714658 1.0932776184587372e-005 4.293326477924265 1.0919048346507302e-005 4.317814113661318 1.0903765555466768e-005 4.3423189020266486 1.088694945718502e-005 4.3668411633630715 1.0868622778057995e-005 4.3913809176398457 1.0848809544775898e-005 4.4159395330126685 1.0827533828636689e-005 4.4405135693863187 1.0804823978319923e-005 4.4650580556404904 1.0780752381616045e-005 4.4895825902158588 1.0755345472941048e-005 4.5140852065219814 1.0728640007704961e-005 4.5385669764865773 1.0700670577016425e-005 4.5630280934763876 1.0671472830514767e-005 4.5874689191742375 1.0641082508714352e-005 4.6118896987647551 1.0609535625256521e-005 4.6362906422718178 1.0576868338700953e-005 4.6525447982083499 1.0554367435835531e-005 4.6606686163013249 1.0542942353919419e-005
+ 14.33346544095671 4 14.539077549490305 1 14.744689658023898 1 14.950301766557493 1 15.155913875091086 1 15.361525983624681 1 15.567138092158274 1 15.772750200691869 1 15.978362309225464 1 16.183974417759057 1 16.389586526292653 1 16.595198634826247 1 16.80081074335984 1 17.006422851893433 1 17.21203496042703 1 17.417647068960623 1 17.623259177494216 1 17.828871286027812 1 18.034483394561406 1 18.240095503094999 1 18.445707611628592 1 18.651319720162189 1 18.856931828695782 4
+7 0 0 3 25 23 4.6606686162750677 1.0542952950661717e-005 4.6606702277459497 0.034937462874937202 4.661367498578076 0.10498879656396448 4.6645492704981679 0.21050772907526272 4.6699144256882477 0.3163133714761075 4.6775321971559185 0.42226685553610599 4.687484588660527 0.52826009056524836 4.6998515510437668 0.63413752958438829 4.714755801711858 0.74000704585897781 4.7321754149906887 0.84509895481258734 4.7526737770813972 0.95231002506993878 4.7777143179934045 1.066306779245447 4.8082366501616374 1.1894607224288469 4.8462844899055977 1.3283937808996611 4.8864237818731233 1.4648364243621066 4.9272649794333496 1.5987781330907633 4.9681780844888266 1.7321022484950952 5.0048809837005548 1.8546609742517213 5.0418602012103175 1.9843714170914635 5.0817605034423288 2.1390879799874307 5.1278025451952374 2.3448607270098529 5.1716202848195207 2.5758038486441697 5.2077382424309278 2.7888918481607896 5.2306278968310442 2.929884116732604 5.2422190630349368 3
+ 4.1060771490000001e-005 4 0.40810619072394633 1 0.81617132067640263 1 1.224236450628859 1 1.6323015805813152 1 2.0403667105337715 1 2.448431840486228 1 2.856496970438684 1 3.2645621003911405 1 3.6726272303435969 1 4.0806923602960525 1 4.488757490248509 1 4.8968226202009655 1 5.304887750153422 1 5.7129528801058775 1 6.121018010058334 1 6.5290831400107905 1 6.937148269963247 1 7.3452133999157034 1 7.753278529868159 1 8.1613436598206164 1 8.5694087897730729 1 8.9774739197255293 4
+8 -5.2422190630334402 -4.5564192418405698
+1 8.8817841970012523e-016 3 -1 0
+7 0 0 3 25 23 4.5564192418405707 3 4.5466744238695718 2.9292796323321082 4.5240347195048596 2.765378314007084 4.4846742321941901 2.4954455349803055 4.4415916616465365 2.242086881443047 4.4047623498112429 2.0552183518230907 4.3715576417638671 1.9037983017018396 4.3412568145235637 1.7731899384918548 4.3086033211129058 1.6341303670677472 4.2761304265889857 1.4930900633745439 4.2441100291497555 1.3454383357067001 4.2174341894525114 1.2097975837220609 4.1961142987380953 1.0873556723376798 4.1790415544836561 0.9736925480624381 4.1654747127416245 0.86654846742538916 4.154569732337051 0.76368200659619845 4.1456428206273186 0.66208284346880153 4.1384820419814954 0.56180058682981615 4.1328847077314377 0.46304163677839372 4.1286640424093921 0.36601156270013063 4.1256472054110134 0.27095082309781798 4.1236750940376341 0.17812108824289336 4.1225995187980535 0.087804058471775359 4.1223884364495831 0.029477535150607508 4.122385951488468 0.00083634045969492728
+ -7.06834388794866 4 -6.747197651364524 1 -6.4260514147803871 1 -6.1049051781962511 1 -5.7837589416121142 1 -5.4626127050279782 1 -5.1414664684438414 1 -4.8203202318597054 1 -4.4991739952755694 1 -4.1780277586914325 1 -3.8568815221072961 1 -3.5357352855231596 1 -3.2145890489390236 1 -2.8934428123548868 1 -2.5722965757707508 1 -2.2511503391866139 1 -1.9300041026024779 1 -1.6088578660183419 1 -1.287711629434205 1 -0.96656539285006904 1 -0.64541915626593216 1 -0.32427291968179617 1 -0.0031266830976601767 4
+7 0 0 3 25 23 4.1223859514884698 0.00083634045969512428 4.1223859506059251 0.00082383280709193466 4.1223859488804608 0.00079881770261363964 4.122385946411141 0.0007612956481094404 4.1223859440607074 0.00072377419584758462 4.1223859418291111 0.00068625334585678609 4.1223859397163674 0.00064873309816611388 4.1223859377224663 0.00061121345280478476 4.122385935847384 0.00057369440980132214 4.1223859340911124 0.00053617596918533903 4.1223859324536436 0.00049865813098532211 4.1223859309349651 0.00046114089523042036 4.1223859295350698 0.0004236242619498778 4.1223859282539381 0.00038610823117218922 4.1223859270915719 0.00034859280292693094 4.1223859260479383 0.00031107797724267799 4.1223859251230497 0.00027356375414859708 4.122385924316883 0.00023605013367378641 4.122385923629432 0.0001985371158469581 4.1223859230606763 0.00016102470069735361 4.1223859226106159 0.00012351288825398433 4.1223859222792285 8.6001678545696511e-005 4.1223859220665142 4.8491071601708294e-005 4.1223859220038115 2.3484402167861934e-005 4.122385921992235 1.0981167921309306e-005
+ -0.0031266830976600006 4 -0.0029864275327750002 1 -0.0028461719678900001 1 -0.0027059164030050001 1 -0.00256566083812 1 -0.002425405273235 1 -0.0022851497083500004 1 -0.0021448941434649999 1 -0.0020046385785800003 1 -0.0018643830136950001 1 -0.0017241274488099998 1 -0.0015838718839250002 1 -0.0014436163190400001 1 -0.0013033607541550001 1 -0.0011631051892700001 1 -0.001022849624385 1 -0.00088259405949999998 1 -0.00074233849461499994 1 -0.0006020829297299999 1 -0.00046182736484499986 1 -0.00032157179995999976 1 -0.00018131623507499975 1 -4.1060670190000165e-005 4
+7 0 0 3 25 23 12.641530585655204 5.6061280481422653 12.641204957145527 5.5961189578012291 12.640565480220891 5.5761925379726636 12.639641984275681 5.5465741089098852 12.63875456845625 5.5172227705746826 12.637903658104207 5.4881345112667193 12.637089726243829 5.4593053798227151 12.636313303130567 5.4307314921124261 12.635574978391462 5.4024090259313704 12.6348754048428 5.3743342192337051 12.634215301550794 5.346503367690425 12.633595456786709 5.3189128226393949 12.633016730700291 5.2915589891333159 12.632480057761565 5.2644383241573864 12.631986448956036 5.2375473349913353 12.631536993739862 5.2108825777183849 12.631132861748497 5.1844406558733311 12.630775304282073 5.1582182192394237 12.630465655477629 5.1322119627482206 12.630205333501623 5.1064186256441868 12.62999584051448 5.0808349903040844 12.629838766052373 5.0554578829834673 12.629735776480452 5.0302841680075794 12.629704362317341 5.0136352340454478 12.62969825828832 5.0053436369529329
+ -5.5330376427936203 4 -5.3959340078410261 1 -5.2588303728884318 1 -5.1217267379358375 1 -4.9846231029832442 1 -4.8475194680306499 1 -4.7104158330780557 1 -4.5733121981254614 1 -4.4362085631728672 1 -4.2991049282202738 1 -4.1620012932676786 1 -4.0248976583150853 1 -3.887794023362491 1 -3.7506903884098968 1 -3.6135867534573025 1 -3.4764831185047087 1 -3.3393794835521144 1 -3.2022758485995202 1 -3.0651722136469264 1 -2.9280685786943321 1 -2.7909649437417379 1 -2.6538613087891441 1 -2.5167576738365498 4
+7 0 0 3 25 23 12.629698264746686 5.0053440518207246 12.716521668082862 4.999049487724645 12.88537878273242 4.9866763162811472 13.125636996721433 4.9686779622079005 13.354208044216074 4.951154669107706 13.572436859779881 4.9340196572390447 13.781667156196354 4.9171846288395082 13.983248222522217 4.9005576866581562 14.17850129192062 4.8840452747765095 14.36883468327748 4.8675397985014994 14.55530433561926 4.8509616004737373 14.742988280889845 4.8338514693353414 14.932152217443274 4.8161618429598576 15.123704372432355 4.7977856196030224 15.318416819763875 4.7786426861109428 15.517113432396798 4.7586469308158117 15.720604568479489 4.7377093179240157 15.929706287487184 4.7157376398781787 16.145237508398122 4.6926370944417419 16.368023709349178 4.668310488510115 16.598899169897933 4.6426583889459856 16.838710993941625 4.6155787029538615 17.088319717357933 4.5869668106709858 17.261849058880777 4.5667965342512309 17.350541349673339 4.5564192418405698
+ -13.38572945523376 4 -12.777287207268589 1 -12.168844959303417 1 -11.560402711338247 1 -10.951960463373076 1 -10.343518215407904 1 -9.7350759674427341 1 -9.1266337194775637 1 -8.5181914715123916 1 -7.9097492235472213 1 -7.301306975582051 1 -6.6928647276168798 1 -6.0844224796517086 1 -5.4759802316865382 1 -4.8675379837213679 1 -4.2590957357561958 1 -3.6506534877910255 1 -3.0422112398258552 1 -2.4337689918606831 1 -1.8253267438955127 1 -1.2168844959303424 1 -0.60844224796517032 1 0 4
+8 4.5564192418405698 5.2422190630334402
+1 17.350541349673339 0 0 1
+7 0 0 3 25 23 17.350541349673339 5.2422190630349359 17.293722540913979 5.248425005271236 17.18001188461281 5.260698558998639 17.009110019615431 5.2787001874208546 16.837754134089501 5.2962991836201292 16.665830903298325 5.3135023879650261 16.493229571577707 5.3303171318962086 16.319842204122686 5.3467512847730516 16.145562589525962 5.3628132645143314 15.970288268126824 5.3785118562254555 15.793911652644431 5.3938568189544309 15.616351917868098 5.4088565138562101 15.43743500171912 5.4235266417437877 15.2573406854792 5.4378575089286372 15.074933551235768 5.4519360643806296 14.893991665558165 5.4654903260153604 14.696589963089712 5.4798394732851436 14.478316732605913 5.4951868165568625 14.238235700802786 5.5114786366652639 13.97444037374968 5.5287153948577616 13.685241474785322 5.5468631146756406 13.368833676942355 5.5658674285503906 13.023378521108176 5.5856455349337866 12.772391047459038 5.5992482681468454 12.641403196731057 5.6061324289342016
+ 0 4 0.40947652292156411 1 0.81895304584312822 1 1.2284295687646924 1 1.6379060916862564 1 2.0473826146078205 1 2.4568591375293849 1 2.8663356604509489 1 3.2758121833725129 1 3.6852887062940769 1 4.0947652292156409 1 4.5042417521372053 1 4.9137182750587698 1 5.3231947979803333 1 5.7326713209018978 1 6.1421478438234614 1 6.5516243667450258 1 6.9611008896665902 1 7.3705774125881538 1 7.7800539355097182 1 8.1895304584312818 1 8.5990069813528471 1 9.0084835042744107 4
+1 12.662817664490388 6.1822479302894973 -0.99971756962729685 -0.023765121049366261
+7 0 0 3 25 23 12.662792133831017 6.1822473233788768 12.662510919602013 6.1740060251005406 12.66193532315501 6.1574424576247315 12.661037153487385 6.1323673991514038 12.660108857170663 6.1070748759606657 12.659155364729342 6.0815805009392454 12.658181630846659 6.0559018559902631 12.657192587377928 6.030059111231326 12.656192795981873 6.0040728613829311 12.655187041344762 5.9779706445135457 12.654173887505342 5.9517336442771729 12.653152688206392 5.9253506985699351 12.652119970174628 5.8987573093220309 12.651091022347529 5.8721524706729751 12.650068588178236 5.8455533574648362 12.649053857919322 5.8189545235244768 12.648048438726807 5.7923565798940491 12.647053827942532 5.7657585101230389 12.64607155550793 5.7391597289924068 12.645103147234916 5.7125595304877077 12.644150136082645 5.6859572353905721 12.643214061113413 5.6593521512018938 12.642296468293853 5.6327435831825365 12.641698100625517 5.6150017468364899 12.641402516243485 5.6061300141796222
+ 0.82773512582161002 4 0.97321375926766274 1 1.1186923927137156 1 1.2641710261597683 1 1.409649659605821 1 1.5551282930518737 1 1.7006069264979264 1 1.8460855599439792 1 1.9915641933900319 1 2.1370428268360846 1 2.2825214602821373 1 2.42800009372819 1 2.5734787271742432 1 2.7189573606202959 1 2.8644359940663486 1 3.0099146275124014 1 3.1553932609584541 1 3.3008718944045068 1 3.4463505278505595 1 3.5918291612966122 1 3.7373077947426649 1 3.8827864281887177 1 4.0282650616347704 4
+7 0 0 3 25 23 12.641403196731014 5.6061324289342016 12.772391047459012 5.5992482681468445 13.023378521108182 5.5856455349337839 13.368833676942399 5.5658674285503942 13.685241474785355 5.5468631146756389 13.974440373749687 5.5287153948577625 14.238235700802823 5.5114786366652622 14.478316732605938 5.4951868165568616 14.69658996308973 5.4798394732851454 14.893991665558161 5.4654903260153604 15.074933551235743 5.4519360643806323 15.257340685479202 5.4378575089286327 15.437435001719125 5.4235266417437886 15.616351917868078 5.4088565138562092 15.793911652644404 5.3938568189544309 15.970288268126827 5.3785118562254564 16.145562589525934 5.3628132645143305 16.319842204122644 5.3467512847730534 16.493229571577739 5.3303171318962095 16.665830903298271 5.3135023879650225 16.837754134089518 5.296299183620131 17.009110019615395 5.2787001874208519 17.180011884612796 5.260698558998639 17.293722540913976 5.2484250052712351 17.350541349673339 5.2422190630349359
+ -9.0084835042744107 4 -8.5990069813528471 1 -8.1895304584312818 1 -7.7800539355097182 1 -7.3705774125881547 1 -6.9611008896665902 1 -6.5516243667450258 1 -6.1421478438234622 1 -5.7326713209018978 1 -5.3231947979803333 1 -4.9137182750587698 1 -4.5042417521372053 1 -4.0947652292156409 1 -3.6852887062940773 1 -3.2758121833725129 1 -2.8663356604509493 1 -2.4568591375293849 1 -2.0473826146078205 1 -1.6379060916862569 1 -1.2284295687646924 1 -0.81895304584312889 1 -0.40947652292156356 1 0 4
+8 5.2422190630334402 5.9443346683218303
+1 17.350541349673339 8.8817841970012523e-016 0 1
+7 0 0 3 25 23 17.350541349673339 5.9443346683218286 17.319631316435409 5.9466571136625701 17.257706221109899 5.9512652332537286 17.164512487844682 5.9580690652771393 17.071021645131346 5.9647665025006207 16.977242727850086 5.9713595441925138 16.883184788244371 5.9778502169942103 16.788856887623936 5.9842405735261863 16.694268086256869 5.9905326979477582 16.599427417686282 5.9967286652455662 16.504343932695196 6.0028306782910876 16.409026450500463 6.0088404493049206 16.313483565944971 6.0147592100854244 16.217723923743524 6.0205884342148952 16.12175614358036 6.026329666073905 16.025588825395658 6.031984550803883 15.92923053503571 6.0375548111494224 15.83268979687853 6.0430422393132295 15.735975086252601 6.0484486855934119 15.639094823185443 6.053776048745541 15.542057367921229 6.0590262666137393 15.444871014329211 6.0642013079354413 15.34754399569106 6.0693031631291081 15.282570964050379 6.0726569489449025 15.250063720751928 6.0743223131346387
+ 0 4 0.20778114964539093 1 0.41556229929078187 1 0.62334344893617277 1 0.83112459858156373 1 1.0389057482269546 1 1.2466868978723455 1 1.4544680475177365 1 1.6622491971631275 1 1.8700303468085184 1 2.0778114964539092 1 2.2855926460993001 1 2.4933737957446911 1 2.7011549453900821 1 2.908936095035473 1 3.116717244680864 1 3.3244983943262549 1 3.5322795439716459 1 3.7400606936170369 1 3.9478418432624278 1 4.1556229929078183 1 4.3634041425532093 1 4.5711852921986003 4
+7 0 0 3 47 45 15.250063720751928 6.0743223131346387 15.230725805220978 6.0753129751109798 15.192035226132781 6.0772862199115956 15.133956565949461 6.0802224433682071 15.075836557337414 6.0831356387579589 15.017676676338374 6.0860263448788441 14.959478488931115 6.0888950926461396 14.901242139415588 6.0917425806518546 14.842969366456902 6.0945685924567492 14.784661453084116 6.0973728919793118 14.726319782185028 6.1001552476660574 14.667945688829578 6.1029154262347909 14.609540500926393 6.105653194551472 14.551105529454832 6.1083683193155593 14.492642071890243 6.1110605673357981 14.434151413112328 6.1137297055937188 14.375634823027495 6.1163755015233443 14.317093569694183 6.1189977225958829 14.258528873571404 6.1215961384258781 14.199942081623423 6.1241705134439393 14.141334020738066 6.1267206347398719 14.082707413898314 6.1292462086154966 14.024057865895372 6.1317472470869667 13.965360140975523 6.1342246128649656 13.906620188809901 6.1366778409069118 13.847836537899072 6.1391067813259204 13.789009691207527 6.141511199382153 13.730139609095119 6.1438908826104246 13.67122638401834 6.1462456120631082 13.612270060738375 6.1485751699286819 13.553270682616301 6.1508793375049375 13.494228287949465 6.1531578953513186 13.435142879951158 6.1554106243428786 13.376014552020127 6.1576373009120653 13.316843018114779 6.1598377146109407 13.25762936733191 6.1620116021774463 13.19836946491729 6.1641588951785984 13.139060178331656 6.1662794715426639 13.079701986324723 6.1683730720247967 13.020294308377732 6.1704394743876003 12.960837135434021 6.1724784354785269 12.901329178122483 6.174489747995179 12.84177370191 6.176473068863463 12.782172187724198 6.1784281330796329 12.722523131542678 6.1803547543653545 12.682724946452453 6.1816200753795174 12.662817664490388 6.1822479302894973
+ 4.5711852921986003 4 4.6947903565251492 1 4.818395420851699 1 4.942000485178248 1 5.0656055495047978 1 5.1892106138313467 1 5.3128156781578966 1 5.4364207424844455 1 5.5600258068109945 1 5.6836308711375443 1 5.8072359354640941 1 5.9308409997906431 1 6.054446064117192 1 6.1780511284437418 1 6.3016561927702908 1 6.4252612570968406 1 6.5488663214233895 1 6.6724713857499385 1 6.7960764500764883 1 6.9196815144030381 1 7.0432865787295871 1 7.166891643056136 1 7.290496707382685 1 7.4141017717092348 1 7.5377068360357846 1 7.6613119003623336 1 7.7849169646888825 1 7.9085220290154323 1 8.0321270933419804 1 8.1557321576685311 1 8.27933722199508 1 8.402942286321629 1 8.5265473506481797 1 8.6501524149747269 1 8.7737574793012776 1 8.8973625436278265 1 9.0209676079543755 1 9.1445726722809262 1 9.2681777366074751 1 9.3917828009340241 1 9.5153878652605748 1 9.6389929295871219 1 9.7625979939136727 1 9.8862030582402216 1 10.009808122566771 4
+7 0 0 3 25 23 4.660668616273635 1.0542947374227749e-005 4.6709341813633731 1.0528507207598522e-005 4.6912208428610489 1.0499389106600822e-005 4.7209303851722471 1.0455168393275577e-005 4.7499333249443083 1.0410579902995214e-005 4.7782403900721073 1.0365778268437458e-005 4.8058601622276731 1.0320905106211686e-005 4.8327987703266775 1.0276088488166704e-005 4.8590599719990752 1.0231445189940189e-005 4.8846451701440197 1.0187082382873177e-005 4.9095534706443953 1.0143099474615818e-005 4.933781778196777 1.0099589762471677e-005 4.9573248094362388 1.0056641922764508e-005 4.9801754863657557 1.0014341213797137e-005 5.0023239582685122 9.9727706163618404e-006 5.0237617728111736 9.9320111211251313e-006 5.0444624907031539 9.8922277908028857e-006 5.064451942124677 9.8534581635414215e-006 5.0835622733610029 9.8161201102943357e-006 5.1026645886235817 9.7785025432733393e-006 5.1217690339918276 9.7405957509268925e-006 5.1408728917438973 9.7024220322779123e-006 5.1599768922240541 9.6639948337731678e-006 5.1727128557294035 9.6382180086320954e-006 5.1790808394911876 9.6252924013398964e-006
+ 0.01380223016778 4 0.20741636185933321 1 0.40103049355088638 1 0.59464462524243966 1 0.78825875693399283 1 0.981872888625546 1 1.1754870203170993 1 1.3691011520086525 1 1.5627152837002056 1 1.7563294153917588 1 1.949943547083312 1 2.1435576787748651 1 2.3371718104664185 1 2.5307859421579715 1 2.7244000738495249 1 2.9180142055410778 1 3.1116283372326312 1 3.3052424689241846 1 3.4988566006157376 1 3.6924707323072909 1 3.8860848639988439 1 4.0796989956903973 1 4.2733131273819502 4
+7 0 0 3 113 111 5.1790808394973249 9.6252926400040772e-006 5.1790820451682036 0.0030582051169365143 5.1790908854030535 0.0099408013345935829 5.17915802050904 0.022636296244448722 5.1793120227156946 0.037710305421354354 5.1795914694161542 0.055199062722728842 5.180044825269702 0.075051234862442806 5.180626265790516 0.094574811358756131 5.181343268485012 0.11426433028005122 5.1821943165090989 0.13399972462072679 5.1831810005638035 0.15382962099802613 5.1843036077334421 0.1737438632678775 5.1855667592268864 0.19380022745441464 5.1869613803955179 0.21384515613614699 5.1884798080417109 0.23379447936039355 5.1901350060817846 0.25382897848084185 5.1919408676534538 0.2740810470865393 5.1939074972382784 0.29462738285394457 5.1960813495425002 0.31583172703554907 5.1983237663462241 0.33634228884286865 5.2006362553554384 0.35631321823235446 5.2030222419157051 0.37585370610570751 5.2054888734846223 0.39508795601073909 5.2080466615909771 0.41413953206118553 5.2107095195198632 0.43313454131648937 5.2134956977489662 0.4522052945664008 5.216425117447189 0.47147346114298527 5.2195306765242977 0.49111506413951422 5.2228177951798562 0.51111881674047521 5.2262633130614056 0.53132244432915532 5.2298725076913213 0.55173538077287243 5.2336422998297873 0.57232122180837941 5.2375702783434948 0.59305240774701384 5.241654887661789 0.61390867212895028 5.2458851175646313 0.63482819571909832 5.2502810897978938 0.65590463417181311 5.2548643289580577 0.67722254808790416 5.2596295618104492 0.69873835055473477 5.2645777093830555 0.72044091824945111 5.269708792338526 0.74231608303340968 5.275016939088875 0.76432783905729451 5.2805170493307614 0.78652882006776226 5.2862361824225053 0.80901469858525021 5.2921656892657456 0.8317356421125025 5.2983063750530865 0.85468319852445085 5.3046522018189748 0.87782534988281058 5.3112103697719135 0.90118155452197624 5.3179990175453398 0.92480850891460953 5.3250084256157528 0.94866844162205044 5.3322584242070379 0.9728098898668085 5.339751475400802 0.99721279675864694 5.3474248700086759 1.0216578531204012 5.3553638421482477 1.046425101329439 5.3635179410965881 1.0713617255138921 5.3718806258940335 1.0964643345848517 5.3804505634316664 1.1217428525899533 5.3892277070855306 1.1472109455868462 5.3981536864868449 1.1727165113888969 5.4072293830218428 1.1982840026051622 5.4164503920298888 1.2239209142733285 5.4257982392946493 1.2495981439807893 5.4352152816636998 1.2751831390443287 5.4447052540166396 1.3007075736436331 5.4542593837358417 1.3261689009453044 5.4638644699894074 1.3515539767522613 5.4734788931468517 1.3767803112158219 5.4830945306219814 1.4018492667968701 5.4926953133329413 1.4267427613181696 5.5022676567256052 1.4514489606710614 5.5117978241002632 1.4759554804205994 5.5212727852351815 1.5002512986822214 5.5306800439945798 1.5243261146241343 5.5400079800517146 1.5481710422997237 5.5492450588263962 1.5717763793382715 5.5583817412540579 1.595136489565919 5.567437146802364 1.6183173142795384 5.5764080268929686 1.6413214205287994 5.5852713455167677 1.6641035926119732 5.594001116930361 1.6866097612077293 5.6026035912362557 1.7088686043019936 5.6110751901418849 1.7308839997516137 5.6194567720378901 1.7527747177667852 5.6276471906001051 1.774289195999474 5.6357109159818615 1.7956135736859642 5.6436294437807781 1.8167107779913554 5.6513525232499022 1.8374543557894039 5.6589223597434684 1.8579648964797075 5.6664669708173205 1.8785962804105432 5.6740173211997922 1.8994512316764456 5.6815572431680508 1.9205065957322072 5.6890834109166111 1.9417764019521042 5.6965833740707694 1.963251657979334 5.7040632272320764 1.9849783883403138 5.7114586555829376 2.0068059646976284 5.7185062997804161 2.0279638512968345 5.7252964984782961 2.0486823691390654 5.7318347269493559 2.0689543799032477 5.7381491129421542 2.0888417993487249 5.7442501848558916 2.1083559862660719 5.7501855752865119 2.1276308908917159 5.7560392387839112 2.1469354354903896 5.7617804325198172 2.1661649150480309 5.7674079309633486 2.1853081001002201 5.7729136769188791 2.2043297440544976 5.7782924228806101 2.2232019489819139 5.7835390729262439 2.2418957599900882 5.7886492417777511 2.2603830065075621 5.7936192563657887 2.2786369489959735 5.798445183545148 2.2966274798490161 5.8031801182268943 2.3145410187732587 5.8078267091057834 2.3323813157208324 5.8108728259944913 2.3442501566287479 5.8123844089591774 2.3501828933388773
+ 4.1055189929999997e-005 4 0.039041957347727543 1 0.078042859505525086 1 0.11704376166332263 1 0.15604466382112017 1 0.19504556597891773 1 0.23404646813671526 1 0.27304737029451276 1 0.31204827245231032 1 0.35104917461010787 1 0.39005007676790543 1 0.42905097892570293 1 0.46805188108350049 1 0.5070527832412981 1 0.5460536853990956 1 0.58505458755689321 1 0.62405548971469071 1 0.66305639187248822 1 0.70205729403028583 1 0.74105819618808333 1 0.78005909834588094 1 0.81906000050367844 1 0.85806090266147594 1 0.89706180481927356 1 0.93606270697707106 1 0.97506360913486856 1 1.0140645112926661 1 1.0530654134504636 1 1.0920663156082611 1 1.1310672177660586 1 1.1700681199238563 1 1.2090690220816538 1 1.2480699242394513 1 1.2870708263972488 1 1.3260717285550463 1 1.365072630712844 1 1.4040735328706415 1 1.443074435028439 1 1.4820753371862365 1 1.521076239344034 1 1.5600771415018317 1 1.5990780436596292 1 1.6380789458174267 1 1.6770798479752242 1 1.7160807501330217 1 1.7550816522908192 1 1.794082554448617 1 1.8330834566064145 1 1.872084358764212 1 1.9110852609220095 1 1.950086163079807 1 1.9890870652376047 1 2.0280879673954022 1 2.0670888695531997 1 2.1060897717109972 1 2.1450906738687947 1 2.1840915760265922 1 2.2230924781843897 1 2.2620933803421872 1 2.3010942824999852 1 2.3400951846577827 1 2.3790960868155802 1 2.4180969889733777 1 2.4570978911311752 1 2.4960987932889727 1 2.5350996954467702 1 2.5741005976045677 1 2.6131014997623652 1 2.6521024019201627 1 2.6911033040779602 1 2.7301042062357581 1 2.7691051083935556 1 2.8081060105513531 1 2.8471069127091506 1 2.8861078148669481 1 2.9251087170247456 1 2.9641096191825431 1 3.0031105213403406 1 3.0421114234981381 1 3.0811123256559356 1 3.1201132278137336 1 3.1591141299715311 1 3.1981150321293286 1 3.2371159342871261 1 3.2761168364449236 1 3.3151177386027211 1 3.3541186407605186 1 3.3931195429183161 1 3.4321204450761136 1 3.4711213472339111 1 3.5101222493917086 1 3.5491231515495065 1 3.588124053707304 1 3.6271249558651015 1 3.666125858022899 1 3.7051267601806965 1 3.744127662338494 1 3.7831285644962915 1 3.822129466654089 1 3.8611303688118865 1 3.900131270969684 1 3.9391321731274815 1 3.9781330752852795 1 4.017133977443077 1 4.0561348796008749 1 4.095135781758672 1 4.1341366839164699 1 4.1731375860742679 1 4.2121384882320649 1 4.2511393903898629 1 4.2901402925476599 4
+7 0 0 3 25 23 5.8123844089591747 2.3501828933388795 5.8149166595649122 2.3601227250402279 5.8199170567010476 2.3799920894648263 5.8272626554072042 2.4099126454958304 5.8344724738798233 2.4400126662525103 5.8416290735055458 2.4706506855553467 5.8484892196804408 2.5007572960573579 5.8550676503716792 2.5303187616839713 5.8614022537869594 2.5594433159991405 5.8675209793307861 2.5882023696322389 5.8734512834971255 2.616673774423802 5.8792178575080731 2.6449295191791888 5.8848443957332801 2.6730432746795865 5.8903506780740029 2.7010737979609827 5.8957641613842018 2.7291247822243365 5.9010780659114417 2.7571228316970147 5.9062725370263651 2.7849248819409724 5.9113622697512263 2.8125709328712944 5.9163523803150184 2.8400515194797942 5.9212502342080189 2.8673700422986776 5.9260622834021746 2.8945260994645623 5.9307949095592765 2.9215199778856107 5.9354542286298608 2.9483515018296993 5.9385154358153862 2.9661306928852103 5.940035769594485 2.9749931115698862
+ 4.2901402925476599 4 4.3554862122914839 1 4.4208321320353079 1 4.4861780517791319 1 4.5515239715229567 1 4.6168698912667807 1 4.6822158110106047 1 4.7475617307544287 1 4.8129076504982526 1 4.8782535702420766 1 4.9435994899859006 1 5.0089454097297246 1 5.0742913294735494 1 5.1396372492173734 1 5.2049831689611974 1 5.2703290887050214 1 5.3356750084488453 1 5.4010209281926702 1 5.4663668479364933 1 5.5317127676803182 1 5.5970586874241421 1 5.6624046071679661 1 5.7277505269117901 4
+7 0 0 3 25 23 5.9400357695944859 2.9749931115698809 5.9401014510287169 2.9753735221015405 5.9402327743946621 2.9761342757968405 5.9404296405358208 2.9772751972925042 5.9406263873696181 2.978415902799886 5.9408230144943106 2.9795563853701665 5.941019521518152 2.9806966381159681 5.9412159080133646 2.9818366539443244 5.941412173687846 2.9829764265556835 5.9416083177441887 2.9841159467149589 5.9418043412716433 2.9852552161683059 5.9420002383190793 2.9863941957048548 5.9421960292108693 2.9875329989932466 5.9423916358491136 2.9886711670719608 5.9425869958439259 2.9898083318938071 5.9427821255697975 2.9909445836938344 5.9429770202935526 2.9920798899171945 5.943171680934956 2.9932142509168744 5.9433661068961854 2.9943476582346555 5.9435602979831312 2.9954801057796581 5.9437542538905488 2.996611586833132 5.9439479743399346 2.9977420948510214 5.9441414590428066 2.9988716232484163 5.9442702914872259 2.9996239847225223 5.944334668321833 3
+ 5.7277505269117901 4 5.7335344421596375 1 5.7393183574074849 1 5.7451022726553322 1 5.7508861879031787 1 5.7566701031510261 1 5.7624540183988735 1 5.7682379336467209 1 5.7740218488945683 1 5.7798057641424156 1 5.785589679390263 1 5.7913735946381095 1 5.7971575098859569 1 5.8029414251338043 1 5.8087253403816517 1 5.8145092556294991 1 5.8202931708773464 1 5.8260770861251938 1 5.8318610013730412 1 5.8376449166208877 1 5.8434288318687351 1 5.8492127471165825 1 5.8549966623644298 4
+8 -5.9443346683218303 -5.2422190630334402
+1 8.8817841970012523e-016 3 -1 0
+7 0 0 3 25 23 5.2422190630349368 3 5.2306278968310442 2.9298841167325862 5.2077382424309269 2.7888918481607701 5.1716202848195225 2.5758038486441954 5.1278025451952374 2.3448607270098343 5.0817605034423305 2.1390879799874241 5.0418602012103149 1.9843714170914653 5.0048809837005575 1.8546609742517262 4.9681780844888177 1.7321022484950539 4.9272649794333567 1.5987781330907955 4.8864237818731295 1.4648364243621395 4.8462844899055968 1.3283937808996629 4.8082366501616383 1.1894607224288485 4.7777143179934027 1.0663067792454459 4.7526737770814007 0.952310025069939 4.7321754149906861 0.84509895481259201 4.7147558017118572 0.74000704585897981 4.699851551043766 0.63413752958438963 4.6874845886605261 0.52826009056524892 4.6775321971559185 0.42226685553610593 4.6699144256882477 0.31631337147610777 4.6645492704981661 0.21050772907526247 4.6613674985780769 0.10498879656396502 4.6606702277459506 0.034937462874937611 4.6606686162750677 1.0542952950810268e-005
+ -8.9774739197255293 4 -8.5694087897730729 1 -8.1613436598206164 1 -7.7532785298681599 1 -7.3452133999157043 1 -6.9371482699632478 1 -6.5290831400107914 1 -6.1210180100583358 1 -5.7129528801058793 1 -5.3048877501534228 1 -4.8968226202009664 1 -4.4887574902485099 1 -4.0806923602960534 1 -3.6726272303435969 1 -3.2645621003911414 1 -2.8564969704386849 1 -2.4484318404862284 1 -2.0403667105337719 1 -1.6323015805813155 1 -1.2242364506288599 1 -0.81617132067640341 1 -0.40810619072394694 1 -4.1060771490464276e-005 4
+7 0 0 3 25 23 4.5564192418405698 17.350541349673339 4.5643174934781428 17.2830363092387 4.5801303640750595 17.147232187761666 4.6038443339968103 16.941342353756916 4.6274994460909928 16.733469944831551 4.6510389722062353 16.523806913933491 4.6744048172858053 16.312540535155257 4.6975378627251692 16.099853999108984 4.7203788580935448 15.885927765338126 4.7428690049121585 15.670942929892513 4.7649514689001666 15.455076494271083 4.7865695865988558 15.238527147526597 4.8076773257384238 15.021426568957502 4.8282038608001079 14.804176924392907 4.8482256175211544 14.585920330744958 4.8677335220978204 14.366889578170696 4.8867168727448353 14.147432128940222 4.9051751281243314 13.927887224190387 4.923112989168021 13.708614027047524 4.9405399272198798 13.48997958714552 4.9574685549382371 13.272358077507159 4.9739133091567913 13.056127515052157 4.9898894070650917 12.84166799534087 5.0002371342250562 12.700128698136803 5.0053376556600435 12.629780760588691
+ -10.097004591974979 4 -9.638754840364129 1 -9.1805050887532786 1 -8.7222553371424301 1 -8.2640055855315797 1 -7.8057558339207294 1 -7.347506082309879 1 -6.8892563306990295 1 -6.4310065790881801 1 -5.9727568274773297 1 -5.5145070758664794 1 -5.0562573242556299 1 -4.5980075726447796 1 -4.1397578210339301 1 -3.6815080694230797 1 -3.2232583178122303 1 -2.7650085662013799 1 -2.3067588145905296 1 -1.8485090629796801 1 -1.3902593113688297 1 -0.93200955975797939 1 -0.47375980814713081 1 -0.015510056536280459 4
+7 0 0 3 25 23 5.0053437811373955 12.629685496294512 5.0138291639523 12.629698521662741 5.0308440544515047 12.629743146392117 5.0565222635821545 12.629862434319525 5.0823798222024763 12.63003032190927 5.1084402857506701 12.630244388079941 5.1347271722054133 12.630503086768549 5.1612642961132984 12.630805882636064 5.1880745233493508 12.631153185561322 5.2151843967092706 12.631546495443878 5.242606861479711 12.63198790243715 5.27040572383937 12.632481949487191 5.2984550811376119 12.633028683148865 5.3264335365425124 12.633616656266568 5.3544238031733418 12.634246490730236 5.3824043100075905 12.634915722860127 5.4103814190742412 12.635622736434248 5.4383539980507889 12.636365705459333 5.4663229131474536 12.637142874211587 5.4942884856621079 12.637952479092977 5.5222511737672679 12.638792766630839 5.5502113898816221 12.639661985804073 5.5781695506375168 12.640558387665502 5.5968072242327294 12.641172944038344 5.6061258540231904 12.641484169392355
+ -4.6315372478723704 4 -4.4766138693226525 1 -4.3216904907729345 1 -4.1667671122232175 1 -4.0118437336734996 1 -3.8569203551237816 1 -3.7019969765740637 1 -3.5470735980243462 1 -3.3921502194746287 1 -3.2372268409249108 1 -3.0823034623751928 1 -2.9273800838254753 1 -2.7724567052757574 1 -2.6175333267260399 1 -2.462609948176322 1 -2.3076865696266045 1 -2.1527631910768865 1 -1.9978398125271686 1 -1.8429164339774511 1 -1.6879930554277331 1 -1.5330696768780157 1 -1.3781462983282977 1 -1.2232229197785802 4
+7 0 0 3 25 23 5.606128199275056 12.64148131829508 5.6005271048219374 12.748096647417016 5.5893652669752383 12.955282406575929 5.5727958896733876 13.248974423530663 5.5564604352706262 13.526644591660743 5.5403906872032911 13.789299242718045 5.5246055084688734 14.0379068080764 5.5091075166871644 14.273447933905461 5.4939003130107267 14.496738951291164 5.4789391165607011 14.709120340581451 5.4643240369743387 14.909901332817915 5.4495706061047535 15.106122016259205 5.4344260275335037 15.301087083464527 5.4189418891178045 15.494055080625094 5.4030888849584295 15.685370836956603 5.3868600994660474 15.875090152487889 5.3702433739566002 16.063348429736127 5.3532287522358413 16.250262108582994 5.3358065230727245 16.435955368872179 5.3179677793245448 16.620553362128646 5.2997042885441203 16.804184437192259 5.2810085721839064 16.986980210815354 5.2618738111745431 17.169075583113777 5.2488207477290745 17.290099470227698 5.2422190630349359 17.350541349673339
+ 10.759045245588259 4 11.468981807777761 1 12.178918369967262 1 12.888854932156763 1 13.598791494346264 1 14.308728056535765 1 15.018664618725264 1 15.728601180914765 1 16.438537743104266 1 17.148474305293767 1 17.858410867483268 1 18.56834742967277 1 19.278283991862271 1 19.988220554051772 1 20.698157116241273 1 21.408093678430774 1 22.118030240620275 1 22.827966802809776 1 23.537903364999277 1 24.247839927188778 1 24.957776489378279 1 25.66771305156778 1 26.377649613757281 4
+8 -5.2422190630334402 -4.5564192418405698
+1 8.8817841970012523e-016 17.350541349673339 -1 0
+7 0 0 3 25 23 0 4.122385921987151 0.065320685840229889 4.1223701882373138 0.1999909021558039 4.1235102614782395 0.40505388823891697 4.1294212570810176 0.6200951138825046 4.141677007132575 0.79621208117519227 4.1573197621830058 0.94248636780834627 4.1746617178243195 1.0540605580660738 4.1908613222048317 1.1645962027086874 4.209324746530231 1.2741351947926094 4.2299002692990539 1.3822124862171474 4.2520445963676812 1.4883365980764729 4.2752274158782049 1.5917193809854124 4.2987973958761216 1.6917614770084792 4.3221392008098105 1.7863128143228926 4.344299000349773 1.8802525926540226 4.3660343439621814 1.9807009759901968 4.3885635785565835 2.0948155895109357 4.4125795915759332 2.2290202026799224 4.4386646132619827 2.3924257914616112 4.4673617387183837 2.550371152899146 4.4924489870408939 2.7058107462112622 4.5153822875982979 2.8562587118292173 4.5365161584814855 2.9528330732027355 4.5498473901744081 3 4.5564192418405707
+ -8.5116719656905904 4 -8.1247777854319274 1 -7.7378836051732645 1 -7.3509894249146006 1 -6.9640952446559377 1 -6.5772010643972747 1 -6.1903068841386109 1 -5.8034127038799479 1 -5.4165185236212849 1 -5.029624343362622 1 -4.642730163103959 1 -4.2558359828452952 1 -3.8689418025866322 1 -3.4820476223279693 1 -3.0951534420693054 1 -2.7082592618106425 1 -2.3213650815519795 1 -1.9344709012933166 1 -1.5475767210346536 1 -1.1606825407759898 1 -0.7737883605173268 1 -0.38689418025866296 1 0 4
+8 4.5564192418405698 5.2422190630334402
+1 3 8.8817841970012523e-016 0 1
+7 0 0 3 25 23 3 5.2422190630349368 2.9466538024388971 5.2334195569092934 2.8400255474284606 5.2160334774713641 2.6788231642086089 5.1892049386326597 2.5145638939049642 5.1601568856486644 2.3466564788282578 5.1277057912515369 2.1671747139268529 5.0882436582376922 2.0247312362027392 5.052567834268693 1.9049578398779381 5.0194101970106608 1.798526576533271 4.9881748162820454 1.6906654794914855 4.9554879508080658 1.575060054609227 4.9199979223419144 1.4580661854635351 4.8844441398624463 1.3386175395402515 4.8493324391575525 1.2172889645387228 4.8156741641363094 1.0947807721781846 4.7844719447453485 0.97297228524009394 4.756838165932229 0.84588957824955524 4.7320311025347692 0.70548111241145117 4.7092518495356277 0.56399820896655684 4.6910645972803495 0.4225707021115378 4.6772535023137021 0.28116760110067096 4.6675997654550887 0.14014199705000285 4.6619104871064749 0.046597678258160413 4.6606731806397725 0 4.6606686162644362
+ 0 4 0.581427303311571 1 1.162854606623142 1 1.7442819099347129 1 2.325709213246284 1 2.9071365165578551 1 3.4885638198694258 1 4.0699911231809969 1 4.651418426492568 1 5.2328457298041391 1 5.8142730331157102 1 6.3957003364272813 1 6.9771276397388515 1 7.5585549430504226 1 8.1399822463619937 1 8.7214095496735649 1 9.302836852985136 1 9.8842641562967071 1 10.465691459608278 1 11.047118762919849 1 11.62854606623142 1 12.209973369542992 1 12.791400672854561 4
+7 0 0 3 25 23 -1.7281319646209097e-013 4.6606686162892137 -1.7289890612013219e-013 4.6525447981986412 -1.7305957090591326e-013 4.6362906422630417 -1.732683957363705e-013 4.6118896987513684 -1.7344512390652026e-013 4.5874689191665654 -1.7358988554600757e-013 4.5630280934635952 -1.7370284531043196e-013 4.5385669764783803 -1.7378420616307114e-013 4.5140852065127852 -1.7383420771395227e-013 4.4895825902072364 -1.7385312213778756e-013 4.4650580556318458 -1.7384126479952605e-013 4.4405135693785649 -1.7379894812289018e-013 4.4159395330028568 -1.7372667460114244e-013 4.3913809176310554 -1.73625018024926e-013 4.3668411633545219 -1.7349454675065765e-013 4.3423189020185653 -1.733358600381137e-013 4.3178141136536832 -1.7314957642886336e-013 4.2933264779171054 -1.7293633495274749e-013 4.2688558163648178 -1.7269679286831844e-013 4.2444019739239236 -1.7243162434034278e-013 4.219964850191916 -1.7214151875050366e-013 4.1955443896046196 -1.7182717946868117e-013 4.1711405835921669 -1.7148932109376757e-013 4.1467534631191922 -1.7124888857565081e-013 4.1305065642568213 -1.7112499469364252e-013 4.1223859219776564
+ -18.856931828695782 4 -18.651319720162189 1 -18.445707611628592 1 -18.240095503094999 1 -18.034483394561406 1 -17.828871286027812 1 -17.623259177494216 1 -17.417647068960623 1 -17.21203496042703 1 -17.006422851893433 1 -16.80081074335984 1 -16.595198634826247 1 -16.389586526292653 1 -16.183974417759057 1 -15.978362309225464 1 -15.772750200691869 1 -15.567138092158274 1 -15.361525983624681 1 -15.155913875091086 1 -14.950301766557493 1 -14.744689658023898 1 -14.539077549490305 1 -14.33346544095671 4
+Curves 39
+7 0 0 3 42 21 318204.29681176716 -7327.7551440800471 23761.593637618731 318256.22004934534 -7275.5221595692165 23761.471740562003 318307.71573921765 -7223.7334186162216 23761.357666471198 318462.55486496392 -7068.1331092537494 23761.03735374501 318579.11880208412 -6951.1606024596804 23760.820117133229 318795.59218099434 -6734.9681869327796 23760.571522503611 318900.8782659556 -6630.2618633929496 23760.499617771751 319055.40031494154 -6477.6571404063507 23760.421806463419 319105.28107099433 -6428.5585036673601 23760.40094945392 319196.38020383182 -6339.2514721038297 23760.367148492558 319235.4783816149 -6301.0511795068296 23760.352434685319 319440.1812722332 -6101.7900097178399 23760.323109534649 319591.01434317272 -5956.9742802027604 23760.492410400369 319856.35683520511 -5696.6980270859804 23760.619520830271 319977.00951390032 -5576.3365533103306 23760.618829358431 320189.68945118529 -5353.4481440751597 23760.256432552949 320286.44396999152 -5247.6576419225994 23759.939388194831 320691.78005668498 -4770.5229315739807 23757.831435995718 320929.58776727272 -4397.6104926709704 23754.979792925573 321138.80582896748 -3758.0334796485699 23753.09329201551 321180.14406975388 -3561.8668638165996 23753.163992256748 321215.55974705837 -3302.9309314153302 23753.015518960459 321222.2625869473 -3245.3427338320798 23752.981732660959 321239.18153380015 -3075.1204481837599 23752.925015373021 321246.73600664909 -2961.5725524949703 23752.951994013092 321260.75961991207 -2635.8608572144703 23753.032917010911 321260.7243140483 -2418.1923561906201 23753.12066309747 321249.86546913243 -1861.8929618893601 23753.228414409532 321233.2160621314 -1535.38118290907 23753.107318490311 321212.49226239847 -1055.1735641508201 23752.990882442278 321208.6334953825 -962.27046026986 23752.969601883509 321199.62585719471 -725.29407798710997 23752.903153508189 321194.97144450323 -582.50095111593998 23752.84725306011 321189.96772519185 -366.36656628037002 23752.757930867709 321188.63054487761 -293.52474071089 23752.727971499207 321187.25566250668 -183.98609014569999 23752.699566288273 321186.90236514236 -147.28815367461999 23752.692983758439 321186.5473081572 -92.181083514169998 23752.69095388741 321186.45809367613 -73.768920987450002 23752.69160300152 321186.31695258763 -29.406413680309999 23752.697231943439 321186.31482363207 -9.6106993109800012 23752.70326031173 321186.31694541447 0 23752.70646049764
+ 2.03784942368079 4 2.1751565670841901 2 2.4518218071203899 2 2.70815375426122 2 2.8297238009612502 2 2.9301159635845502 2 3.3091958129466201 2 3.60926464976618 2 3.8659325868056502 2 4.7372331047651999 2 5.1211695392922199 2 5.2303717651176598 2 5.4439541024941001 2 5.8438615793538 2 6.4966724763943802 2 6.6550241285512497 2 6.8979583733438998 2 7.02144403910353 2 7.0836473514029201 2 7.11485687083524 2 7.1588458622862499 4
+7 0 0 3 5 3 321186.31694540213 0 23752.706460479072 320970.24105610087 0 23426.809228578742 320410.46068450389 0 22456.083891749466 320108.75438370212 0 21392.778486733532 320023.23895255552 0 20688.000000000025
+ -5.1790808369767198 4 -5 1 -4.6606686162644397 4
+7 0 0 3 12 6 320023.23895255552 0 20688 320023.23895255552 -970.96176080434009 20688 320086.16337141796 -1911.4995117152901 20688 319948.08340634796 -3184.8519742741501 20688 319848.5039906879 -3536.3553085172803 20688 319473.66182227485 -4290.4491864627798 20688 319168.72190191335 -4628.0710166674398 20688 318524.15331850376 -5247.3426200296799 20688 318248.16094527737 -5467.72410146129 20688.000000000011 317125.28522555431 -6603.4437391747506 20688.000000000011 316596.63578317815 -7195.9046667213606 20688 316000 -7836.69546463392 20688
+ -12.791400672854561 4 -9.6803441453241792 2 -7.7806943884433304 2 -5.2167851792128701 2 -2.62664880410806 2 0 4
+7 0 0 3 4 2 316000 -7836.6954646339273 20688.000000000022 316000 -8214.2918401130773 21767.796452675746 316000 -8830.9218099617483 22796.166249350466 316000 -9499.971650047517 23769.526373148648
+ 5.2422190630349403 4 5.9443342009550602 4
+7 0 0 3 10 5 316000 -9499.9716500475206 23769.526373148652 316111.77287037019 -9394.14416625995 23769.036031118911 316256.19554926537 -9256.582319915211 23768.480022109612 316707.33353087428 -8820.8061607056698 23766.633567127268 316979.8171764228 -8552.8014903851108 23765.480253113688 317506.72474087554 -8029.0314005568689 23763.552299663559 317744.12131026539 -7790.6709916516402 23762.782582072989 318074.88746355148 -7457.9582248597271 23761.907926559787 318139.92074700206 -7392.5152428446945 23761.744769427623 318204.29681176716 -7327.7551440800471 23761.593637618731
+ 0 4 0.46177466560884001 2 1.18779709285598 2 1.8676117041407201 2 2.03784942368079 4
+7 0 0 3 8 4 307925.92202974309 -14604.401561316927 20688.000255860778 307928.91498065123 -14657.256578902039 20961.50211630161 307932.11321325152 -14714.930362101135 21234.124368858505 307942.3832752938 -14907.366344755481 22073.962855784419 307949.79925552639 -15055.687715624381 22631.308456509221 307959.63375319022 -15284.87423001561 23394.882331238663 307962.14055137039 -15346.548667281055 23592.433136508269 307964.59307003545 -15409.700590205095 23788.832767117987
+ 2.0379657823515802 4 2.8736470442811299 2 4.6217042692906896 2 5.2340945542608104 4
+7 0 0 3 8 4 307964.53494427615 -15409.695952404072 23788.835181975388 308033.93841162836 -15369.157924737092 23788.728624595977 308103.27199774998 -15328.483383649665 23788.622500431116 309559.92951547401 -14470.096821510881 23786.397900806791 310927.93604131881 -13590.69183265812 23783.729956884421 312327.76535095816 -12565.875520750869 23780.540891240435 312415.10043364775 -12501.400193767764 23780.341183951274 312502.17478449357 -12436.574759077652 23780.140179556554
+ 10.57202445903739 4 10.814236735294971 2 15.666023518681991 2 15.989871717267819 4
+7 0 0 3 20 10 312502.17478449357 -12436.574759077639 23780.140179556547 312578.1537056918 -12380.009690878793 23779.964788101785 312653.93410891772 -12323.178055040607 23779.788409047043 313013.60511876887 -12051.452888321939 23778.94074140404 313294.87593341211 -11833.03547944574 23778.243165687949 313991.40246565978 -11276.796938138959 23776.355418722469 314402.86630971817 -10934.204201444709 23775.110845820709 315009.35956030502 -10407.05564498419 23773.107855824401 315210.02354844334 -10228.861985733371 23772.416809713293 315508.2372521208 -9958.2020784921187 23771.35279633852 315607.24033009534 -9867.3613755077313 23770.99331057625 315755.02995682514 -9730.2571475107998 23770.447878367839 315804.18892399571 -9684.4010364022797 23770.26497526047 315877.74578065943 -9615.4064520607189 23769.989135272059 315902.23817177839 -9592.3696726443395 23769.896926790319 315938.9309763062 -9557.7619799220302 23769.758249715618 315951.15520738694 -9546.2164495122706 23769.711959758009 315976.82028330053 -9521.9427431692002 23769.614585414391 315989.08968132286 -9510.3191166855904 23769.56792750788 316000 -9499.9716500475315 23769.526373148667
+ 15.989871717267841 4 16.27245363170697 2 17.33466491761526 2 18.930936224761929 2 19.731317673097202 2 20.13205926084769 2 20.33256134350081 2 20.432844161924301 2 20.482993369269341 2 20.53820241687535 4
+7 0 0 3 4 2 316000 -9499.9716500475151 23769.526373148645 316000 -8830.9218099617465 22796.166249350466 316000 -8214.2918401130773 21767.79645267575 316000 -7836.6954646339263 20688.000000000025
+ -5.9443342009550602 4 -5.2422190630349403 4
+7 0 0 3 6 3 316000 -7836.69546463392 20688 314712.88337289309 -9236.7452836856392 20688 313374.31428059406 -10526.7282271395 20688 310870.46680636867 -12559.505079118493 20688 309617.05045502848 -13485.071842741358 20687.999998318493 307925.96132823161 -14604.467795144006 20687.999998079336
+ -26.377649613757281 4 -17.07881914456522 2 -10.759045245588259 4
+7 0 0 3 6 3 320467.12795666768 0.041060731960000006 17391.002135276838 320225.73275659594 0.041060731959999999 17969.63017538478 320072.43001348601 0.041060731959999992 18582.103717580321 319958.18435497925 0.041060731959999999 19700.434020566721 319963.68075587094 0.041060731959999999 20197.3045982203 320023.22801046557 0.041060731959999999 20688.001327846643
+ 14.33346544095671 4 16.86372592362769 2 18.856931828695782 4
+7 0 0 3 12 6 320023.238952593 0.041060753223832284 20688 320023.2408962117 1064.9629745234938 20688 320098.85350817681 2093.0238572945723 20688.000000000011 319910.64715920022 3322.6740256908597 20688.000000000011 319801.13214393175 3694.9118812644601 20688.000000126591 319353.53121157247 4427.4293627363295 20688.000000126591 319084.72099189623 4712.0419557099704 20688 318449.72032700805 5314.1246720176196 20688 318151.49389333848 5551.1798831163405 20688 316984.31199000479 6761.1880107018305 20688 316514.37892921577 7284.2490747680304 20688 316000 7836.69546463392 20688
+ 4.1060771490000001e-005 4 3.1948096445429099 2 4.7157276071027203 2 6.0779884079570303 2 7.7673353422315197 2 8.9774739197255293 4
+7 0 0 3 5 3 316000 7836.6954646315071 20687.999999993102 316000 7706.4304477796113 20315.486617346516 316000 7418.1551608354448 19243.452654345732 316000 7419.3551819968725 18123.533614814107 316000 7485.1142849357757 17390.999999999996
+ -5.2422190630334402 4 -5 1 -4.5564192418405698 4
+7 0 0 3 12 6 316000 7485.1142849357802 17391 316319.37845834065 7163.6083376213101 17391 316723.05194171361 6756.43320993818 17391 317637.06137615594 5884.5932061251096 17391 317976.31203962164 5597.70992524961 17391 318594.99600760493 5052.6353145888397 17391 318937.71015590633 4738.1047303157702 17391.00000002647 319724.51992209215 3799.0532323981897 17391.00000002647 319976.34668224928 3284.1796287452698 17391 320415.20699136326 1866.377822926876 17391 320467.00039534067 882.86197532323115 17391 320467.12262129138 3.1271210001934366 17391
+ -7.06834388794866 4 -6.3281561653519898 2 -5.2993278279235803 2 -4.2377254376676499 2 -2.64159248030849 2 -0.0031266830976600006 4
+7 0 0 3 4 2 320467.12262129138 3.1271210001934366 17391 320467.12276423164 2.0982922014287162 17391 320467.12283650268 1.0696053412421651 17391 320467.12283837621 0.041060745767718843 17391
+ -0.0031266830976600006 4 -4.1060670190000003e-005 4
+7 0 0 3 4 2 307925.89575801505 14604.180778249221 20688.059649656843 307912.96526003222 14372.349089965533 19490.923537354211 307905.13931057602 14256.456311092275 18398.216002145964 307904.92698106117 14218.473686196812 17391.000044768811
+ -5.5330376427936203 4 -2.5167576738365498 4
+7 0 0 3 6 3 307904.97001335281 14218.535429583537 17391 309216.26436809287 13304.207274286004 17391 310214.22900718078 12573.817447900214 17391 312602.00544098514 10696.525126088422 17391 314049.80587504554 9413.9300469893296 17391 316000 7485.1142849357802 17391
+ -13.38572945523376 4 -8.2287475547969908 2 0 4
+7 0 0 3 5 3 316000 7485.1142849357775 17391 316000 7419.3551819968734 18123.53361481411 316000 7418.1551608354448 19243.452654345732 316000 7706.4304477796113 20315.486617346509 316000 7836.6954646315071 20687.999999993095
+ 4.5564192418405698 4 5 1 5.2422190630334402 4
+7 0 0 3 6 3 316000 7836.69546463392 20688 314730.69282126758 9217.3732124614198 20688 313419.12541800988 10482.54823906254 20688 311098.06907140039 12379.054031373948 20687.999999999996 309853.6024656411 13328.435383596943 20688 307925.82440257329 14604.563495601044 20688
+ 0 4 5.6264292242903204 2 9.0084835042744107 4
+7 0 0 2 3 2 307964.47019342415 15409.774575525402 23788.958820235068 307964.44744782156 15409.786586869188 23788.954980623137 307964.42470221687 15409.79859820228 23788.951141019144
+ 0 3 2.5537872042216608e-005 3
+7 0 0 3 6 3 307964.4522183247 15409.845748611264 23788.935636492319 307958.3441016858 15254.369471523689 23305.054895919435 307952.00310795975 15110.144013021712 22820.926533663489 307938.5143694508 14834.551094865334 21775.604309290731 307931.737314642 14709.975404311264 21233.776481235622 307925.77925602644 14604.495290959203 20688.000000986121
+ 0.82773512582161002 4 2.3822074193488998 2 4.0282650616347704 4
+7 0 0 3 6 3 307925.82440257329 14604.563495601042 20688 309853.6024656411 13328.435383596943 20688 311098.06907140039 12379.054031373948 20687.999999999996 313419.12541800988 10482.54823906254 20688 314730.69282126758 9217.3732124614198 20688 316000 7836.69546463392 20688
+ -9.0084835042744107 4 -5.6264292242903204 2 0 4
+7 0 0 3 4 2 316000 7836.6954646315062 20687.999999993102 316000 8214.2920914595306 21767.797171443752 316000 8830.9226308866255 22796.167618428288 316000 9499.9729861176074 23769.528316915992
+ 5.2422190630334402 4 5.9443346683218303 4
+7 0 0 3 4 2 316000 9499.9729861176002 23769.528316915981 314894.41899677675 10548.505957702508 23773.721577554199 313723.83673447551 11527.329058496452 23777.80485346826 312502.20348384243 12436.758893996253 23780.565274705848
+ 0 4 4.5711852921986003 4
+7 0 0 3 14 7 312502.20348384243 12436.758893996253 23780.565274705848 312485.51925323723 12449.179264092543 23780.602974649319 312468.82550048607 12461.58669079989 23780.640427850947 312318.67305347463 12573.00592395937 23780.974864599411 312184.61527804966 12671.20670948206 23781.261747340293 311526.88453024247 13146.877463908 23782.63964067919 310994.67613898648 13512.843397951559 23783.685903197627 309985.83480643132 14177.15506169085 23785.565821514709 309509.11261260719 14479.176054270831 23786.409813261758 308818.2313768476 14902.34842097235 23787.577745331793 308607.44500191062 15029.547965108201 23787.92704236928 308252.40791769623 15240.822990038434 23788.501974378752 308108.59047769167 15325.59238993008 23788.731826901239 307964.46955841704 15409.773487406519 23788.959178044195
+ 4.5711852921986003 4 4.6336154114794503 2 5.1323959038076596 2 7.0699810189869998 2 8.7668427816176102 2 9.5074573548111996 2 10.009808122566771 4
+7 0 0 3 6 3 320023.23870421812 0.041060731959999999 20688.000030127903 320152.26331743971 0.041060731959999999 21751.681340199892 320506.34922954033 0.041060731959999999 22584.698033205721 320946.16702696768 0.041060731959999999 23376.161794795928 321062.51525184308 0.041060731959999999 23565.982332359075 321186.31675366987 0.041060731959999999 23752.706607268181
+ 0.01380223016778 4 3.23343388149073 2 4.2733131273819502 4
+7 0 0 3 52 26 321186.31695451133 0.041060732484002903 23752.706474154813 321186.32954218442 56.661199706731054 23752.725285447897 321186.53019523527 144.90839077466387 23752.667433770039 321191.02444225916 448.45368142065001 23752.744759400648 321196.3379012525 631.59873743670005 23752.84372790443 321208.69448877551 968.74425465347997 23752.961142440279 321215.03782172088 1116.2488505577001 23752.998809885481 321233.68476717704 1538.31980766021 23753.119213409649 321243.7611319102 1755.16787305037 23753.19956346785 321256.56832193636 2167.9527838473 23753.200657039601 321260.09877806681 2348.06220122594 23753.161837132007 321258.26468944806 2679.4626886198898 23753.055811829028 321253.96656627732 2835.4930979222199 23752.984769645551 321235.95508448483 3116.6192075500999 23752.976770236921 321223.87498307595 3244.4789585274898 23753.010863716478 321198.39592539298 3427.2914370709204 23753.085947850701 321189.36447317043 3483.8145127156199 23753.112080520339 321168.9230291401 3594.9099227889596 23753.14606884056 321157.5432178381 3649.66201409225 23753.155355683572 321132.98558530392 3754.0367679027404 23753.234052484051 321120.1381046616 3803.2330521345302 23753.302800649049 321079.25143338484 3944.9895019073601 23753.600786477062 321048.26247287128 4035.8237447957804 23753.9063409724 320977.64585378091 4213.7173864085507 23754.635058298929 320938.49484451866 4299.9239104746293 23755.056548031662 320849.39594299602 4474.26118793146 23755.966674260209 320799.41714660375 4561.2401851266604 23756.432623918092 320618.91165938514 4846.5097257755806 23758.036386495482 320472.63031006296 5033.0043740650799 23759.127520149901 320287.16814713681 5244.5747787376704 23759.872540655258 320256.81674394262 5278.46779812362 23759.975463758947 320165.02120728954 5379.1353923110701 23760.232043975571 320102.4243839478 5445.3783070666695 23760.349261309831 320008.96704827307 5541.9523087280795 23760.484060888859 319978.28389822488 5573.2941973549496 23760.521179371441 319917.10498672922 5635.2145161634407 23760.583285930348 319886.38085637719 5666.0301803303701 23760.609803448191 319840.76650249888 5711.4605827579007 23760.638857567908 319825.664272931 5726.4494783139799 23760.64629283567 319780.32058396982 5771.3157135486999 23760.660532675509 319749.86235317081 5801.2693441232605 23760.659030971659 319689.67175117123 5860.2115474269303 23760.64023557174 319659.62139047158 5889.5132935000602 23760.621620331629 319514.66636212822 6030.48581205757 23760.504798040271 319392.13304185367 6148.5082551677897 23760.38779606378 319142.21679736068 6391.9358570210197 23760.363051080782 319028.83584850002 6503.6093297581201 23760.37247230309 318748.04486089962 6781.9777984011707 23760.604400689641 318572.58197728626 6957.7003517311805 23760.873343122479 318338.02508376044 7193.3013351750787 23761.350942636753 318271.63508416287 7260.0682476157363 23761.500949153295 318204.68610814598 7327.4206423969481 23761.662756378413
+ 4.1055189929999997e-005 4 0.16985560778388001 2 0.43054331525499001 2 0.64709811393323002 2 1.0134780131238199 2 1.2859329129628001 2 1.5238839544915601 2 1.7202913516988401 2 1.8083679588758399 2 1.89438675819286 2 1.9735681075093501 2 2.1227012055224499 2 2.2697862331885301 2 2.4256976420687102 2 2.7931470311325799 2 2.8641318066860499 2 3.00519390867741 2 3.0734112084844298 2 3.1407552515169899 2 3.1739902452249602 2 3.2404139370337801 2 3.3064002595876798 2 3.55836004300249 2 3.79000455760315 2 4.1482937024872797 2 4.2901402925476599 4
+7 0 0 3 8 4 318204.68610814598 7327.4206423969481 23761.662756378413 318090.81758621545 7441.975309226983 23761.937962224085 317975.3320532777 7558.2236635840791 23762.247305244418 317550.77088118996 7984.80138138246 23763.40968905811 317264.27256824315 8271.3046182341786 23764.3045489336 316675.68560503435 8851.4819962986003 23766.591801917868 316384.7613655735 9134.3130575294508 23767.99721889542 316092.13492912048 9412.5188013981387 23769.096713148771
+ 4.2901402925476599 4 4.5313965822182398 2 5.1400757053985897 2 5.7277505269117901 4
+7 0 0 3 6 3 316092.13492912048 9412.5188013981387 23769.096713148771 316076.81782538595 9427.0944451759406 23769.173544181551 316061.48873157048 9441.6632107928599 23769.247748429461 316030.72532608482 9470.8639045417913 23769.391737612961 316015.33892784477 9485.4501312275988 23769.461269719708 316000 9499.9729861176111 23769.528316915999
+ 5.7277505269117901 4 5.79118254289929 2 5.8549966623644298 4
+7 0 0 3 4 2 316000 9499.9729861176074 23769.528316915992 316000 8830.9226308866273 22796.167618428291 316000 8214.2920914595306 21767.797171443752 316000 7836.695464631508 20687.999999993102
+ -5.9443346683218303 4 -5.2422190630334402 4
+7 0 0 3 12 6 316000 7836.69546463392 20688 316514.37892921577 7284.2490747680304 20688 316984.31199000479 6761.1880107018305 20688 318151.49389333848 5551.1798831163405 20688 318449.72032700805 5314.1246720176196 20688 319084.72099189623 4712.0419557099704 20688 319353.53121157247 4427.4293627363295 20688.000000126591 319801.13214393175 3694.9118812644601 20688.000000126591 319910.64715920022 3322.6740256908597 20688.000000000011 320098.85350817675 2093.0238572945727 20688.000000000011 320023.2408962117 1064.9629745234938 20688 320023.238952593 0.041060753223801705 20688
+ -8.9774739197255293 4 -7.7673353422315197 2 -6.0779884079570303 2 -4.7157276071027203 2 -3.1948096445429099 2 -4.1060771490000001e-005 4
+7 0 0 3 6 3 316000 -7485.1142849357802 17391 314717.62171673245 -8753.4349172418097 17391 313314.98248606839 -10074.539690236859 17391 310564.3957794091 -12330.332061142877 17391 309197.91686690587 -13316.405281768093 17391 307905.07478226314 -14218.372310937149 17391
+ -10.097004591974979 4 -4.74252026318677 2 -0.015510056536280001 4
+7 0 0 3 6 3 307905.24186725065 -14218.973321800828 17390.977384694434 307905.45359938586 -14236.74794785401 17864.906912857583 307906.83941020077 -14271.021156113824 18350.774179791642 307913.73582470283 -14395.018023918103 19479.4023762344 307919.3343641939 -14488.029338712546 20085.84088475709 307925.92482765153 -14604.399256885281 20688.000670575959
+ -4.6315372478723704 4 -3.0644856340078501 2 -1.22322291977858 4
+7 0 0 3 6 3 307925.96132823161 -14604.467795144003 20687.999998079333 309617.05045502842 -13485.071842741358 20687.999998318493 310870.46680636867 -12559.505079118495 20688 313374.31428059406 -10526.7282271395 20688 314712.88337289309 -9236.7452836856392 20688 316000 -7836.69546463392 20688
+ 10.759045245588259 4 17.07881914456522 2 26.377649613757281 4
+7 0 0 3 5 3 316000 -7836.6954646315071 20687.999999993102 316000 -7706.4304477796113 20315.486617346516 316000 -7418.1551608354448 19243.452654345732 316000 -7419.3551819968725 18123.533614814107 316000 -7485.1142849357757 17390.999999999996
+ -5.2422190630334402 4 -5 1 -4.5564192418405698 4
+7 0 0 3 12 6 320467.12283841358 0 17391 320467.12283841358 -615.16984240030001 17391 320441.88830136071 -1239.3670943754901 17391 320227.70628458488 -2606.7767042497799 17391 320035.96802739013 -3102.2238545350601 17391.000000000007 319508.66746237426 -4160.2789184972899 17391.000000000007 318952.49682423478 -4722.75530208489 17391 318152.22477911925 -5449.1511245440197 17391 317844.43950711645 -5699.9023616558006 17391.000000000007 316858.52774386544 -6619.5503089459708 17391.000000000007 316415.98502256849 -7066.3582440794808 17391 316000 -7485.1142849357802 17391
+ -8.5116719656905904 4 -7.5452236857722799 2 -6.3302570217287304 2 -3.6568441213792502 2 -1.7707629561278999 2 0 4
+7 0 0 3 5 3 316000 -7485.1142849357775 17391 316000 -7419.3551819968734 18123.53361481411 316000 -7418.1551608354448 19243.452654345732 316000 -7706.4304477796113 20315.486617346509 316000 -7836.6954646315071 20687.999999993095
+ 4.5564192418405698 4 5 1 5.2422190630334402 4
+7 0 0 3 12 6 316000 -7836.69546463392 20688 316596.63578317815 -7195.9046667213606 20688 317125.28522555431 -6603.4437391747506 20688.000000000011 318248.16094527737 -5467.72410146129 20688.000000000011 318524.15331850376 -5247.3426200296799 20688 319168.72190191335 -4628.0710166674398 20688 319473.66182227485 -4290.4491864627798 20688 319848.5039906879 -3536.3553085172803 20688 319948.08340634796 -3184.8519742741501 20688 320086.16337141796 -1911.4995117152901 20688 320023.23895255552 -970.96176080434009 20688 320023.23895255552 0 20688
+ 0 4 2.62664880410806 2 5.2167851792128701 2 7.7806943884433304 2 9.6803441453241792 2 12.791400672854561 4
+7 0 0 3 6 3 320023.22801046557 0.041060731960000006 20688.001327846643 319963.68075587094 0.041060731960000006 20197.3045982203 319958.18435497925 0.041060731960000006 19700.434020566721 320072.43001348595 0.041060731959999999 18582.103717580318 320225.73275659594 0.041060731960000006 17969.630175384784 320467.1279566678 0.041060731960000006 17391.002135276842
+ -18.856931828695782 4 -16.86372592362769 2 -14.33346544095671 4
Polygon3D 0
-PolygonOnTriangulations 22
-4 8 9 10 5
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 1 5 6 7
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 8 9 10 5
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 1 5 6 7
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 5 9 10 8
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 4 11 12 8
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 5 9 10 8
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 2 11 12 10
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 5 9 10 8
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 4 11 12 10
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 5 9 10 8
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 1 2 3 4
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 1 3 4 2
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 7 8 9 10
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 8 9 10 7
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 7 8 9 10
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 10 12 13 11
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 1 2 3 4
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 8 9 10 5
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 1 5 6 7
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 8 9 10 5
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-4 5 8 9 10
-p 0.06583129916633 1 0 0.444444444444444 0.722222222222222 1
-Surfaces 99
-9 0 0 0 0 3 3 4 4 8 8 77.500045779999994 -0.58157169819999999 0 85 -0.58506709339999996 0 92.500213619999997 -0.58340275289999999 0 99.999412539999994 -0.58781468869999998 0
-77.499786380000003 -0.0015667586120000001 0 84.999954220000006 -7.0550631790000003e-05 0 92.49985504 -0.00065166212149999996 0 100.0003281 0.0026766625229999999 0
-77.500282290000001 0.58725959059999999 0 84.999923710000004 0.58376407620000004 0 92.50028992 0.58542859550000004 0 99.999183650000006 0.58101648090000002 0
-77.499252319999997 1.1672631499999999 0 85.000244140000007 1.168760657 0 92.499176030000001 1.1681782009999999 0 100.00460820000001 1.1715140340000001 0
+PolygonOnTriangulations 39
+7 1 3 4 5 6 7 2
+p 179.407650441715 1 2.03784942368079 4.31384784083877 4.59834764298352 4.9094481766288 5.47179759804316 6.03414701945752 7.15884586228625
+4 2 9 10 8
+p 179.407650441715 1 -5.17908083697672 -5.00627676340596 -4.8334726898352 -4.66066861626444
+8 8 12 13 14 15 16 17 11
+p 179.407650441715 1 -12.7914006728546 -10.8520822041757 -8.91276373549677 -8.13568614462086 -7.33622360256745 -6.25694917079535 -3.12847458539767 0
+4 11 19 20 18
+p 179.407650441715 1 5.24221906303494 5.47625744234165 5.71029582164835 5.94433420095506
+2 18 1
+p 179.407650441715 1 0 2.03784942368079
+2 1 2
+p 179.407650441715 1 2.03797826722199 5.23408771278374
+2 2 3
+p 179.407650441715 1 10.5720735435623 15.9898717172678
+2 3 4
+p 179.407650441715 1 15.9898717172678 20.5382024168754
+3 4 6 5
+p 179.407650441715 1 -5.94433420095506 -5.593276631995 -5.24221906303494
+4 5 7 8 1
+p 179.407650441715 1 -26.3776496137573 -19.4360488773154 -15.0975484170392 -10.7590479567631
+5 1 3 4 5 2
+p 179.407650441715 1 14.3334654409567 15.6905053572784 17.0475452736002 17.952238551148 18.8569318286958
+8 2 7 8 9 10 11 12 6
+p 179.407650441715 1 4.106077149e-005 1.49627987059716 2.99251868042284 3.74063808533567 4.3017276390203 4.85392392327903 6.91569892150228 8.97747391972553
+4 6 14 15 13
+p 179.407650441715 1 -5.24221906303344 -5.01361912263582 -4.78501918223819 -4.55641924184057
+8 13 17 18 19 20 21 22 16
+p 179.407650441715 1 -7.06834388794866 -5.1803608459857 -4.23636932500422 -3.29237780402274 -2.59705445280733 -1.55406942598421 -0.778598054540935 -0.00312668309766018
+2 16 1
+p 179.407650441715 1 -0.00312668309766 -4.10606701900002e-005
+2 1 2
+p 179.407650441715 1 -5.53302709384876 -2.51675767383655
+3 2 4 3
+p 179.407650441715 1 -13.3857294552338 -6.69286472761688 0
+4 3 6 7 5
+p 179.407650441715 1 4.55641924184057 4.78501918223819 5.01361912263582 5.24221906303344
+4 5 8 9 1
+p 179.407650441715 1 0 4.00371148390131 6.50603116133963 9.00835083877794
+2 1 1
+p 179.407650441715 1 0 2.55378720422166e-005
+2 1 2
+p 179.407650441715 1 0.82773512582161 4.02826506163477
+4 2 4 5 3
+p 179.407650441715 1 -9.00848350427441 -6.00565566951627 -3.00282783475814 0
+4 3 7 8 6
+p 179.407650441715 1 5.24221906303344 5.47625759812957 5.7102961332257 5.94433466832183
+2 6 9
+p 179.407650441715 1 0 4.5711852921986
+2 9 1
+p 179.407650441715 1 4.5711852921986 10.0098081225668
+5 1 3 4 5 2
+p 179.407650441715 1 0.01380223016778 1.16387017241561 2.31393811466343 3.29362562102269 4.27331312738195
+8 2 7 8 9 10 11 12 6
+p 179.407650441715 1 4.105518993e-005 0.858060902661476 1.71608075013302 1.99755416109606 2.25817768976554 2.57483527709896 3.43248778482331 4.29014029254766
+2 6 13
+p 179.407650441715 1 4.29014029254766 5.72775052691179
+2 13 14
+p 179.407650441715 1 5.72775052691179 5.85499666236443
+3 14 16 15
+p 179.407650441715 1 -5.94433466832183 -5.59327686567764 -5.24221906303344
+9 15 17 18 19 20 21 22 23 1
+p 179.407650441715 1 -8.97747391972553 -7.48123510989986 -5.98499630007418 -5.23687689516135 -4.67578734147672 -4.12359105721799 -3.49236530932279 -1.74620318504714 -4.10607714904643e-005
+3 1 3 2
+p 179.407650441715 1 -10.097004591975 -5.05625732425563 -0.0155100565362805
+2 2 4
+p 179.407650441715 1 -4.63153724787237 -1.22322291977858
+4 4 6 7 5
+p 179.407650441715 1 10.7590452455883 17.7006471869967 22.039148400377 26.3776496137573
+4 5 8 9 1
+p 179.407650441715 1 -5.24221906303344 -5.01361912263582 -4.78501918223819 -4.55641924184057
+7 1 3 4 5 6 7 2
+p 179.407650441715 1 -8.51167196569059 -7.56485003176173 -6.943640160911 -6.30453535550901 -5.72934103064723 -2.86467051532361 0
+4 2 9 10 8
+p 179.407650441715 1 4.55641924184057 4.78501918223819 5.01361912263582 5.24221906303344
+9 8 12 13 14 15 16 17 18 11
+p 179.407650441715 1 0 2.13190011214243 4.26380022428485 6.39570033642728 7.19516287848069 8.06937516821609 8.87883099204517 10.8351158324499 12.7914006728546
+5 11 19 20 21 1
+p 179.407650441715 1 -18.8569318286958 -17.3491096994494 -15.8412875702031 -15.0873765055799 -14.3334654409567
+Surfaces 8
+9 0 0 0 0 3 3 6 10 4 8 316000 0 0 318629.09516861039 0 0 324481.66856330726 0 302.58243565712002 329101.91261022864 0 6026.5237239512198 325944.95917403308 0 12093.13126690926 319811.34228883771 0 16253.578597082338 319654.02350208652 0 23089.58742787188 325258.33200689126 0 27858.70187491037 327200.31664643978 0 30786.004002987131 328014.32322258851 0 32178.111664453532
+316000 0 0 318629.09516861039 -366.56788718203001 0 324481.66856330726 -1167.8324836828399 302.58243565712002 329101.91261022864 -1670.73500723303 6026.5237239512198 325944.95917403308 -1382.13389169467 12093.13126690926 319811.34228883771 -1191.9088583422399 16253.578597082338 319654.02350208652 -1332.2566226536601 23089.58742787188 325258.33200689126 -1710.24326057589 27858.70187491037 327200.31664643978 -2043.4046780424301 30786.004002987131 327608.9108318194 -2058.9774048128202 32138.638522167861
+316000 0 0 317860.22270019189 -795.35522357773004 0 321987.65545769053 -2477.8936000702897 585.19430795875007 325332.02062722109 -3406.8872872760699 6051.6427399737404 323558.79683987203 -3747.8450711599903 11697.785960544101 319866.04190144798 -3574.0763023169102 16307.728053848488 320056.15266584163 -3697.4544660941501 22435.050283851069 324058.87509253348 -4978.8629320816908 27000.181374514279 325586.27423501259 -5888.0577340641803 30116.10672282047 326266.40715453931 -5338.0420089042 32007.925105708742
+316000 0 0 317115.67451639759 -1599.3086662812 0 319613.21446970198 -5223.7910762562697 1155.5004059056 320329.2423861493 -5964.6006790887304 6953.7086112511997 319326.30036414898 -6157.34663437989 11318.250122775209 317835.56191459682 -6121.7544362491999 15179.136360705319 317729.88993545668 -4940.7662117243199 20348.313518654191 319741.44289696967 -6443.72887981433 24993.271793473799 320724.14993064216 -8289.8911396880303 26841.567096906248 321783.70671953383 -10951.46936178577 31571.465154992289
+316000 0 0 316371.20834738092 -1616.2817253768101 0 317207.8905577382 -5196.9520990367901 548.53416956704007 317471.00755556219 -7481.6795198301106 5415.5716740215703 317126.81052311475 -7935.8536043675203 10261.267846261801 316624.356766432 -7341.9211712181295 14786.58766369214 316606.80558556458 -6239.3989823970105 19896.159276696912 317300.27805630548 -8518.3305456713206 24403.104459367667 317623.73273020354 -10534.724233514429 26691.855585727899 318236.57593957719 -12863.67968933084 31226.097324183229
+316000 0 0 315999.99999999977 -1627.4665402768201 0 316000.00000000017 -5173.5672106306802 282.85894446215997 316000 -8197.0716896474005 4652.9723113127502 316000.00000000006 -8823.5859814716696 9721.336162905769 316000 -7956.0747279902798 14585.071226615821 316000.00000000006 -6923.4238158264898 19654.058926817394 316000 -9583.6770922198484 24112.165509567589 315999.99999999994 -11662.47090760269 26635.574526464028 316411.24187299516 -13832.138454022059 31048.372930529771
+
+0 4
+1 1
+2 1
+3 4
+
+0 4
+1 1
+2 1
+3 1
+4 1
+5 1
+6 1
+7 4
+
+9 0 0 0 0 3 3 10 11 8 9 284250 0 0 285495.59472963907 0 0 288013.48115771159 0 0 292038.46925664111 0 0 296027.75469610014 0 0 300029.66433632019 0 0 304061.59760022501 0 0 308034.41368393204 0 0 312109.94710375112 0 0 314703.00712463411 0 0 316000 0 0
+284249.99999999988 -2532.8034406788602 0 285493.27242656553 -2533.4894168046499 -0.022052392129999997 288005.5925495362 -2535.09500351528 0.036759316959999996 292038.48617194634 -2251.4607900463602 -0.17884507627000001 296027.7500640002 -2108.7368433939901 0.04897507073 300029.66560667224 -2035.17053389535 -0.013431398069999999 304061.59724690503 -1922.69247167354 0.0037356425599999999 308034.41378234903 -1855.5274565381701 -0.0010405597599999999 312109.94707377814 -1719.8634161714601 0.00031690384 314703.00712463411 -1657.9138691572798 -0 316000 -1627.4665402767801 -0
+284250.00000000012 -14100.84488199209 -0 285507.93406887178 -14097.391185736751 0.11026196065 288054.3946410073 -14089.30671895965 -0.1837965848 292038.41307263868 -6849.29912095689 107.00689408378999 296027.77008156985 -6269.4390680078695 192.55264347803998 300029.66011685983 -6067.9336487389601 132.91899604693 304061.59877377341 -5679.9880655212301 0 308034.41335704119 -5590.3590489231201 0 312109.94720330602 -5299.3601319312402 0 314703.00712463411 -5211.3460312777797 0 316000 -5173.5672106306902 282.85894446215997
+284249.99999999994 -18497.400885685121 0 285447.52671464329 -18133.696021088577 -0.35283827407000001 287853.21728052408 -17402.205426002201 0.58814907134999994 292038.77853662649 -13161.605662110431 0 296027.67000263551 -12855.56608355477 0 300029.68756347697 -12339.986975771961 0 304061.59114011156 -11850.325735712771 138.51896842521998 308034.41548339074 -11028.31657596721 1157.4749134854901 312109.94655572373 -9914.1174050017889 2816.5772277481801 314703.00712463417 -8828.1958694734003 3999.6135564071201 316000 -8197.0716896473896 4652.9723113127502
+284249.99999999994 -20760.311021057252 760.38799735984003 285475.12776078278 -20476.856694131769 851.49818625582998 287988.12857021246 -19893.965504425949 1036.9440293882399 292038.05750743899 -20030.746433325039 1404.1542986555 296027.86744981247 -18991.29434125117 2454.09728502082 300029.63341364957 -17670.599423033462 3504.0144707985901 304061.60620067315 -16048.20824380948 4944.1612328943393 308034.41128828516 -13976.770826254529 6333.6255709340594 312109.94783334853 -11583.95309346973 7881.3732101408395 314703.00712463411 -9789.2175204927698 9076.3420101310603 316000 -8823.5859814716696 9721.336162905769
+284250 -23328.680665793439 3113.2022590859201 285524.67773993831 -22965.965670579259 3108.3805320537699 288009.49871339329 -22251.96483867526 3103.7184257897898 292043.30364092236 -22824.90928289009 7934.7032623205296 296026.43084465829 -21183.352472880099 8813.7300748352209 300030.02740217058 -19232.65971149828 9673.0018767875099 304061.49662159028 -16973.345604117261 10703.62559098476 308034.44181143679 -14568.129388422021 11796.398348673829 312109.93853748252 -11520.908983528579 13260.719201135509 314703.00712463411 -9214.645146307801 14136.586485516711 316000 -7956.0747279902907 14585.071226615821
+284250 -24799.904341341389 6954.8769456019099 285524.62694583467 -24567.880806381789 7177.0353682441601 288010.28126645047 -24103.51561849346 7611.4110185007203 292043.42652865121 -22454.201771419579 14675.721789743451 296026.39719298977 -20862.05768191463 15157.487320894161 300030.03663113038 -19007.212725054749 15784.57152183367 304061.49405476166 -16717.124812662623 16459.94507700012 308034.44252642465 -13856.92214501343 17421.49410994929 312109.93831973226 -10891.76844289749 18309.27108267208 314703.00712463423 -8332.7033324493095 19172.079035345552 316000.00000000006 -6923.4238158264898 19654.058926817397
+284250 -24799.904341341389 11651.480316228319 285548.84436398913 -24509.388518419262 11652.32418234837 288036.14868655906 -23940.70494489788 11651.79767802322 292045.82498191146 -22521.961400550812 21243.06386732755 296025.74039873795 -20988.324350947762 21649.116228249848 300030.21675675164 -19152.38374987452 21877.866517986789 304061.44395685429 -17058.27953157451 22510.210571182331 308034.45648114971 -14941.29788399829 22818.01587507837 312109.93406980223 -12442.170856213221 23451.628291640242 314703.00712463417 -10583.929296421211 23876.277033890608 315999.99999999994 -9583.6770922198484 24112.165509567578
+284249.99999999994 -24799.904341341389 19161.493224142578 285539.71521147253 -24543.829638429208 19161.31549550713 288018.94503626379 -24044.002591718188 19161.405425406792 292044.84287279513 -22715.10635193807 25701.463602865089 296026.0093402401 -21374.05059991188 25898.427395559909 300030.14299962734 -19833.93607461574 25980.06923487247 304061.46447074669 -18173.514813481099 26163.859048023467 308034.45076702425 -16320.376181975409 26300.985381646249 312109.93581004662 -14210.905827966921 26491.358749645849 314703.00712463417 -12559.66791448961 26588.496768824261 316000 -11662.47090760269 26635.574526464039
+284250 -24800 27916.980537397361 285529.78918731899 -24506.671344700258 28041.587732038959 288000.58093801903 -24091.30971235325 28282.15737557791 292025.51083810459 -22882.710146130128 28674.04631201235 296007.05032217695 -21749.741065705661 29061.71052294724 300015.08628178632 -20500.28717307873 29451.954573997402 304074.16542389384 -19151.740462254871 29847.168465267892 308117.42891679093 -17705.483118446347 30240.842459421678 312314.56476796156 -15902.006838165069 30649.498298310002 315024.74547572003 -14567.765215576121 30913.376144998969 316411.24187299516 -13832.138454022059 31048.372930529771
+
+0 4
+1 1
+2 1
+3 1
+4 1
+5 1
+6 1
+7 4
+
+0 4
+1.9951151004176799 1
+4.0652428178250997 1
+6.1633608799973301 1
+8.2931965274620207 1
+10.457542441649849 1
+12.683067653175151 1
+14.9572780176164 1
+17.350541349673339 4
+
+9 0 0 0 0 3 3 10 6 8 4 316000 0 0 316000 0 0 316000 0 0 316000 0 0 316000 0 0 316000 0 0
+318629.09516861039 0 0 318629.09516861039 366.56788718203001 0 317860.22270019189 795.35522357773004 0 317115.67451639759 1599.3086662812 0 316371.20834738092 1616.2817253768101 0 315999.99999999977 1627.4665402768201 0
+324481.66856330726 0 302.58243565712002 324481.66856330726 1167.8324836828399 302.58243565712002 321987.65545769053 2477.8936000702897 585.19430795875007 319613.21446970198 5223.7910762562697 1155.5004059056 317207.8905577382 5196.9520990367901 548.53416956704007 316000.00000000017 5173.5672106306802 282.85894446215997
+329101.91261022864 0 6026.5237239512198 329101.91261022864 1670.73500723303 6026.5237239512198 325332.02062722109 3406.8872872760699 6051.6427399737404 320329.2423861493 5964.6006790887304 6953.7086112511997 317471.00755556219 7481.6795198301106 5415.5716740215703 316000 8197.0716896474005 4652.9723113127502
+325944.95917403308 0 12093.13126690926 325944.95917403308 1382.13389169467 12093.13126690926 323558.79683987203 3747.8450711599903 11697.785960544101 319326.30036414898 6157.34663437989 11318.250122775209 317126.81052311475 7935.8536043675203 10261.267846261801 316000.00000000006 8823.5859814716696 9721.336162905769
+319811.34228883771 0 16253.578597082338 319811.34228883771 1191.9088583422399 16253.578597082338 319866.04190144798 3574.0763023169102 16307.728053848488 317835.56191459682 6121.7544362491999 15179.136360705319 316624.356766432 7341.9211712181295 14786.58766369214 316000 7956.0747279902798 14585.071226615821
+319654.02350208652 0 23089.58742787188 319654.02350208652 1332.2566226536601 23089.58742787188 320056.15266584163 3697.4544660941501 22435.050283851069 317729.88993545668 4940.7662117243199 20348.313518654191 316606.80558556458 6239.3989823970105 19896.159276696912 316000.00000000006 6923.4238158264898 19654.058926817394
+325258.33200689126 0 27858.70187491037 325258.33200689126 1710.24326057589 27858.70187491037 324058.87509253348 4978.8629320816908 27000.181374514279 319741.44289696967 6443.72887981433 24993.271793473799 317300.27805630548 8518.3305456713206 24403.104459367667 316000 9583.6770922198484 24112.165509567589
+327200.31664643978 0 30786.004002987131 327200.31664643978 2043.4046780424301 30786.004002987131 325586.27423501259 5888.0577340641803 30116.10672282047 320724.14993064216 8289.8911396880303 26841.567096906248 317623.73273020354 10534.724233514429 26691.855585727899 315999.99999999994 11662.47090760269 26635.574526464028
+328014.32322258851 0 32178.111664453532 327608.9108318194 2058.9774048128202 32138.638522167861 326266.40715453931 5338.0420089042 32007.925105708742 321783.70671953383 10951.46936178577 31571.465154992289 318236.57593957719 12863.67968933084 31226.097324183229 316411.24187299516 13832.138454022059 31048.372930529771
+
+0 4
+1 1
+2 1
+3 1
+4 1
+5 1
+6 1
+7 4
+
+0 4
+1 1
+2 1
+3 4
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 77.707649230000001 -0.85272949929999997 0 79.070991520000007 -0.52793318030000003 0 86.008544920000006 -0.61271584030000004 0 86.89515686 -0.52644646169999998 0
-74.998382570000004 0.02459561452 0 80.000572199999993 -0.007402196061 0 84.999603269999994 0.0032616849059999998 0 90.000595090000004 -0.0081456471229999997 0
-72.29938507 0.75429981950000002 0 80.926971440000003 0.55658996110000003 0 83.992828369999998 0.59826976060000003 0 93.102020260000003 0.55807578560000004 0
-69.590309140000002 1.763405085 0 81.856651310000004 1.0394696000000001 0 82.983650209999993 1.2330722810000001 0 96.208953859999994 1.0387394430000001 0
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 92.582641600000002 0.93501567839999999 0.01619294286 94.996917719999999 0.4304404557 -0.028433343400000002 97.429702759999998 0.85520970819999997 0.097540415820000004 99.847000120000004 0.214458704 0.79751068349999998
-90.767387389999996 0.1538186222 0.1202691793 89.997741700000006 0.63652193550000002 -0.053655039520000003 89.241661070000006 0.80475699899999997 0.094351127739999999 88.47169495 2.6720194820000001 0.69319248200000005
-84.34780121 0.18550726770000001 0.1066846102 85.012146000000001 0.5513101816 -0.058923464270000003 85.603683470000007 1.1175765989999999 0.1290093064 86.26625061 2.3961834909999999 0.60911446810000003
-81.84138489 -1.468299866 0.1582048684 79.953742980000001 0.81352221970000005 -0.063257202509999999 78.343612669999999 1.715210795 0.094824105500000005 76.463340759999994 6.8201184269999997 0.77063369749999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 93.877815249999998 0.55658739810000002 0.1316598803 94.998641969999994 0.53072458509999998 -0.063631862400000003 96.127639770000002 0.82975506779999997 0.1228675917 97.250122070000003 1.113389492 0.78960406780000003
-92.880249019999994 0.36872613430000001 0.09146381915 92.500282290000001 0.59441775080000003 -0.045908823610000003 92.118621829999995 0.75918143989999998 0.092171654110000001 91.737930300000002 2.003663778 0.74789595600000003
-89.601211550000002 0.3297393918 0.094997264440000007 90.000213619999997 0.5727143884 -0.048988830300000001 90.397918700000005 0.88681298490000005 0.1009580716 90.798103330000004 2.0473868849999999 0.69460743670000002
-88.714790339999993 0.048113096510000002 0.13250167669999999 87.498886110000001 0.64256352189999999 -0.060113012790000003 86.289573669999996 0.88537949319999998 0.1079505831 85.067161560000002 3.1055064200000002 0.65306448939999995
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 74.973991389999995 -11.341476439999999 0 73.704673769999999 -1.190933824 0 80.20765686 -0.34528830649999998 0 85.464714049999998 -1.0050865410000001 0
-69.140983579999997 1.445493221 0 75.191413879999999 -0.41366481779999997 0 80.092811580000003 0.20907926560000001 0 84.437538149999995 -0.4244047701 0
-68.461402890000002 5.5603876110000003 0 75.529418949999993 2.8455462460000001 0 79.421257019999999 -0.49198034410000002 0 86.78559113 2.7013096810000001 0
-63.17551804 22.26244926 0 76.857002260000002 2.4951658249999999 0 79.395919800000001 0.65789073710000001 0 85.559143070000005 2.027640581 0
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 96.301048280000003 1.858845592 0.087095879020000003 92.900360109999994 -0.051803044970000003 -0.041024178270000003 90.714500430000001 1.611253262 0.077000916000000003 87.228637699999993 1.516893029 0.74819022420000003
-83.032142640000004 -0.53786021470000001 0.1187648624 84.019882199999998 0.88527309890000005 -0.060099821540000001 84.842880249999993 0.62618088719999998 0.12163449079999999 85.846321110000005 3.4190535550000001 0.64139837030000002
-81.570358279999994 -0.27985966210000002 0.14305686949999999 81.020133970000003 0.16599749029999999 -0.071182541550000006 79.913970950000007 2.874298096 0.141673252 79.386116029999997 3.883769751 0.58650207519999997
-70.686523440000002 -9.765088081 0.07554782182 71.899566649999997 2.7189137940000001 -0.038440048689999999 75.501365660000005 3.6946332449999999 0.078212395310000002 76.608795169999993 14.60051823 0.79342484469999996
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 66.660423280000003 -14.282899860000001 0 69.53231049 -5.2079663280000004 0 75.210281370000004 -3.5431132320000001 0 79.626892089999998 2.9299309249999999 0
-64.813346859999996 1.3469259739999999 0 70.030456540000003 -0.42539104820000001 0 75.065040589999995 0.35625454779999999 0 79.708770749999999 -0.99971640110000004 0
-64.086662290000007 8.8965883259999998 0 70.346008299999994 6.9104094509999996 0 74.529251099999996 2.1180486680000001 0 81.537315370000002 1.067981005 0
-62.280559539999999 31.579051969999998 0 70.83487701 9.3396625520000001 0 74.380119320000006 8.3780870440000008 0 81.643928529999997 -9.9509773250000002 0
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 86.124862669999999 7.5685620309999999 0.18278071279999999 86.311759949999995 0.68653565650000004 -0.082442894579999995 85.767860409999997 2.093748808 0.14699098469999999 85.894058229999999 -3.671126127 0.58087354899999999
-79.341217040000004 -4.476065159 0.11985115709999999 79.513801569999998 0.32995402810000002 -0.061869684610000003 79.777099609999993 2.0552966590000001 0.1276276559 79.976020809999994 7.0350799559999997 0.62409305569999995
-76.510246280000004 -1.08669126 0.104354538 75.633056640000007 2.261827469 -0.053348168729999999 75.12374878 5.5030636790000003 0.1090382785 74.201820369999993 9.0854520799999996 0.70358967780000004
-64.617691039999997 5.5681409840000002 0.21807979050000001 67.9540863 7.6157231330000004 -0.10241203760000001 69.727806090000001 9.9184331889999999 0.1915684044 73.216026310000004 11.539814 0.34668678050000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 62.965610499999997 -19.726736070000001 0 64.018562320000001 -8.7622766490000004 0 70.960418700000005 -8.1426858899999992 0 72.139633180000004 2.6750936510000001 0
-60.043224330000001 1.421553493 0 64.984695430000002 -0.4723390341 0 70.017440800000003 0.47030147909999998 0 74.945655819999999 -1.4072332380000001 0
-56.860675809999996 14.04157448 0 66.042442320000006 10.65302181 0 68.969833370000003 6.2623620029999998 0 78.078071589999993 2.9537892339999998 0
-53.923175809999996 43.939033510000002 0 67.013725280000003 16.028936389999998 0 68.02111816 17.782220840000001 0 80.901054380000005 -9.8422546390000001 0
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 80.44564819 -2.0841064450000002 0.089526019989999997 81.247261050000006 -1.3980691430000001 -0.044439900669999997 82.067329409999999 0.99757254120000005 0.088233597580000003 82.871963500000007 2.4296023849999999 0.82697844509999996
-74.884384159999996 -1.1163837910000001 0.13833197950000001 74.60199738 3.0978636740000001 -0.069130212070000002 74.269798280000003 5.9314761159999998 0.13818901780000001 73.985160829999998 10.16884518 0.57377105949999996
-70.016845700000005 3.2949526310000001 0.1124952734 70.344757079999994 5.9996085170000004 -0.056713737549999997 70.853500370000006 9.2625045779999997 0.1143596098 71.187400819999993 11.81176376 0.66307908299999996
-65.048179630000007 5.095191002 0.087549418209999993 64.019058229999999 11.884456630000001 -0.041946064679999999 62.31616211 15.87933159 0.080234959719999999 61.265617370000001 21.83085823 0.66601663830000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 54.483848569999999 -17.784173970000001 0 59.855922700000001 -13.59802818 0 66.092300420000001 -12.222788810000001 0 65.775360109999994 -0.42930686470000001 0
-55.86465836 0.72844588759999995 0 59.78271866 -0.29818606380000001 0 65.004608149999996 0.46596622469999999 0 70.198081970000004 -1.563208103 0
-52.057937619999997 14.869798660000001 0 61.013248439999998 14.791819569999999 0 63.888916020000003 10.36030674 0 73.431594849999996 6.6830101009999998 0
-53.490104680000002 39.969528199999999 0 60.909572599999997 25.822925569999999 0 62.87155533 25.536867139999998 0 77.604629520000003 -2.133240223 0
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 78.35199738 -2.0100781919999999 0.26285457610000001 78.300964359999995 -0.38273531199999999 -0.1051590815 76.604103089999995 4.1068401339999996 0.1577820033 76.536003109999996 7.7636480329999999 0.59084194899999998
-68.723518369999994 3.7674543859999998 0.072993636129999998 68.942276000000007 7.2827286720000002 -0.045352902260000001 69.425407410000005 10.40361691 0.1084179431 69.657951350000005 13.277051930000001 0.64443331960000005
-66.753967290000006 4.0988845830000002 0.1210334226 65.929992679999998 10.23257065 -0.051360487939999998 65.694305420000006 13.13953495 0.084408596160000002 64.832183839999999 18.37484169 0.72352796789999996
-54.260673519999997 16.781330109999999 -0.060266003009999999 57.337760930000002 16.476396560000001 0.002364326734 57.797424319999998 18.839918140000002 0.050808735190000003 61.012603759999998 14.623550420000001 0.67780119179999998
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 75.129898069999996 -7.3941349980000002 0.091945841910000006 74.193420410000002 5.4741783140000004 -0.051807105540000002 69.624267579999994 8.5328788759999998 0.11528266970000001 68.913932799999998 18.742336269999999 0.66241168979999998
-63.50595474 8.6558189389999995 0.085041522980000006 63.716262819999997 11.106956479999999 -0.040780819949999998 65.060699459999995 14.36039257 0.078081794080000003 65.206962590000003 15.672473910000001 0.7149122953
-60.846294399999998 9.7152023320000005 0.064749866719999993 60.941566469999998 14.78740215 -0.033500451590000001 60.13295746 15.82723331 0.069252021610000006 60.258228299999999 19.968065259999999 0.69428646559999996
-53.10876846 21.515781400000002 0.1349699348 52.517585750000002 15.21390343 -0.064722731709999995 54.407360079999997 17.80579376 0.12392098460000001 53.759384160000003 11.771274569999999 0.37123927470000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 54.397941590000002 17.570703510000001 0.048329457639999997 60.24141693 14.45232582 -0.023855013769999999 64.636405940000003 12.46671963 -0.050757996739999998 71.212944030000003 3.0389711859999999 -0.26168975230000002
-53.697380070000001 15.68428993 0.064902625980000003 60.36162186 16.59452057 0.12840843199999999 64.856155400000006 13.94200706 0.1521957219 70.213806149999996 10.974662779999999 0.22878035899999999
-54.719421390000001 17.900156020000001 0.49425965550000001 60.043918609999999 17.233972550000001 0.44801551099999998 65.104934689999993 15.98625183 0.42843359710000001 69.536369320000006 11.41045856 0.41830396650000001
-54.02924728 16.45102692 0.99382019040000003 60.159904480000002 19.102808 1.0289313790000001 65.331100460000002 16.875450130000001 1.0940020079999999 68.515708919999994 18.439228060000001 1.1811215879999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 56.747886659999999 19.488988880000001 -0.24277117849999999 66.138603209999999 9.7141818999999998 -0.042931970210000003 68.697738650000005 9.0123996730000009 -0.074079275129999997 79.070465089999999 -3.15933156 0.0090108504520000007
-58.360584260000003 17.090929030000002 0.1799774468 65.567840579999995 14.00995445 0.1565292925 69.368057250000007 10.20648098 0.1598775834 76.959915159999994 4.8205509190000004 0.14989538490000001
-59.350540160000001 18.607187270000001 0.4062630236 65.129409789999997 15.41156292 0.42661702629999998 70.1318512 12.33592033 0.46732148530000001 74.343215939999993 7.6853775979999996 0.50821745399999996
-60.967773440000002 14.822600359999999 1.1216033700000001 64.560127260000002 19.275550840000001 1.103689551 70.79171753 13.11881161 1.0496981139999999 72.273033139999995 15.970327380000001 1.1064312460000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 62.79788971 13.64214325 0.084701389069999994 70.661628719999996 6.4785571099999997 -0.1068422571 74.555549619999994 3.0481157300000001 0.012428729790000001 81.116172789999993 -0.27073740959999998 -0.25658872719999998
-62.569435120000001 16.251161580000002 0.11095523089999999 70.793647770000007 9.278157234 0.1757009923 74.255966189999995 6.2926483150000001 0.13217653330000001 82.182495119999999 0.53845494989999998 0.20610284810000001
-61.473514559999998 18.585782999999999 0.41648772360000003 71.109878539999997 11.27024651 0.46784272789999998 74.086914059999998 8.7738857269999997 0.51626181599999998 82.542465210000003 3.138771534 0.56765073539999999
-61.234195710000002 20.533330920000001 1.0317322019999999 71.243995670000004 13.84445953 1.0838202240000001 73.789817810000002 11.81011391 1.041894197 83.596611019999997 4.1412296299999998 1.252651811
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 69.762840269999998 7.1992888449999999 0.1205968186 75.093719480000004 2.880865097 -0.10217899079999999 79.862304690000002 -0.32245674730000001 -0.025595288720000001 85.457015990000002 0.089278936389999994 -0.47230705620000002
-70.185638429999997 9.8124494549999994 0.106514357 75.020721440000003 5.6051316260000004 0.1675255746 79.731498720000005 2.754215002 0.13389235729999999 86.053283690000001 0.6877547503 0.2383717299
-69.576599119999997 12.380237579999999 0.46389684079999999 75.153396610000001 8.0581312179999998 0.51847136019999995 79.809822080000004 4.8918161390000003 0.56276035310000005 85.607254029999993 2.5500988960000002 0.60521590709999995
-69.994796750000006 14.89736748 1.078412294 75.081993100000005 10.639368060000001 1.0629488229999999 79.677238459999998 7.7712459559999996 1.1738384959999999 86.209083559999996 2.9712915419999999 1.223244309
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 75.032302860000001 3.0278766159999999 0.31052091720000002 80.045471190000001 0.1594294161 -0.084625512360000002 84.785797119999998 -1.9852921960000001 -0.64888679979999997 90.811325069999995 -0.94159752129999996 -1.050132871
-75.093177800000007 5.2815408709999998 0.036764912310000002 79.999633790000004 2.6086201670000002 0.15294824539999999 84.908340449999997 1.593738914 0.29290843010000001 90.367012020000004 1.686157227 0.37732568379999998
-75.109016420000003 7.9439325329999999 0.61025607589999997 80.018089290000006 4.9530405999999996 0.55484563109999996 84.818603519999996 2.4193887709999999 0.54508966209999998 90.70746613 2.1070628170000001 0.55600076909999996
-75.175483700000001 11.25631523 0.75567293170000005 79.970222469999996 7.0023927690000001 1.2344362739999999 84.943664549999994 5.4297027590000004 1.288123369 90.255081180000005 2.468753338 1.806906581
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 76.984436040000006 -4.3075175290000001 -0.35771110649999999 86.123664860000005 -0.83701658249999999 -0.72755122179999998 88.520950319999997 -1.0677556989999999 -0.46238985659999998 99.792549129999998 0.88886135820000001 -1.0844060179999999
-78.144248959999999 3.7665448189999999 0.23729050160000001 85.655075069999995 1.372097254 0.31539341809999999 89.235443119999999 1.414804816 0.20304362479999999 97.403152469999995 0.20464347299999999 0.31712850930000003
-80.230186459999999 3.7358298300000001 0.49522370100000002 84.949127200000007 2.766428232 0.53220564130000003 89.973342900000006 1.9361072779999999 0.66715800759999999 95.157516479999998 2.3582966330000001 0.97513091559999998
-81.362007140000003 10.05911255 1.433936954 84.487121579999993 4.3234758380000002 1.307193756 90.689460749999995 3.836940765 1.5311183930000001 92.755065920000007 1.8829972740000001 2.0744078159999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 85.161705019999999 -0.48770678039999998 -0.3774242699 90.767814639999997 -0.72196221350000001 -0.58448463679999996 91.767066959999994 -0.84362250569999997 -0.9461515546 97.164054870000001 -1.1737213129999999 -1.2780363560000001
-86.287284850000006 1.3718945979999999 0.18582424519999999 90.398712160000002 1.180001259 0.23846341670000001 92.117904659999994 1.1440615649999999 0.30501615999999998 96.129753109999996 1.064038754 0.37758481500000002
-87.416137699999993 2.2897264960000001 0.65888655190000001 90.027450560000005 2.1693115230000002 0.68008071179999996 92.474067689999998 1.9021838900000001 0.79676192999999995 95.076385500000001 1.8807057140000001 0.98513835670000005
-88.543968199999995 4.2517294879999996 1.2634912730000001 89.657562260000006 3.4715116020000001 1.5957083700000001 92.825698849999995 3.4164614680000001 1.8597538469999999 94.039619450000004 2.8092699049999998 2.5241250989999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 88.794250489999996 -1.3200109 -0.1158637106 89.559738159999995 0.41030481460000001 -0.426158011 92.966751099999996 -0.3083204329 -0.22237108650000001 93.573310849999999 1.8056964870000001 -0.40702509879999998
-87.410568240000003 3.0213475230000002 0.72557270529999995 90.030593870000004 2.23878932 0.76537889240000001 92.467071529999998 2.215568304 0.84414112569999999 95.101173399999993 1.5122210979999999 1.034784317
-86.059310909999994 4.0171475409999999 1.2984348539999999 90.483963009999997 3.963300705 1.9191389080000001 92.004798890000004 3.615303516 2.1976244450000002 96.496902469999995 3.5415534970000002 3.1101443770000001
-84.678413390000003 10.024657250000001 3.3890495299999999 90.954078670000001 5.5612506870000002 4.0525374410000001 91.505203249999994 5.7527194020000003 4.129038811 98.025070189999994 1.34929812 4.8984656329999998
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
+9 0 0 0 0 3 3 11 10 9 8 284250 0 0 284249.99999999988 2532.8034406788602 0 284250.00000000012 14100.84488199209 -0 284249.99999999994 18497.400885685121 0 284249.99999999994 20760.311021057252 760.38799735984003 284250 23328.680665793439 3113.2022590859201 284250 24799.904341341389 6954.8769456019099 284250 24799.904341341389 11651.480316228319 284249.99999999994 24799.904341341389 19161.493224142578 284250 24800 27916.980537397361
+285495.59472963907 0 0 285493.27242656553 2533.4894168046499 -0.022052392129999997 285507.93406887178 14097.391185736751 0.11026196065 285447.52671464329 18133.696021088577 -0.35283827407000001 285475.12776078278 20476.856694131769 851.49818625582998 285524.67773993831 22965.965670579259 3108.3805320537699 285524.62694583467 24567.880806381789 7177.0353682441601 285548.84436398913 24509.388518419262 11652.32418234837 285539.71521147253 24543.829638429208 19161.31549550713 285529.78918731899 24506.671344700258 28041.587732038959
+288013.48115771159 0 0 288005.5925495362 2535.09500351528 0.036759316959999996 288054.3946410073 14089.30671895965 -0.1837965848 287853.21728052408 17402.205426002201 0.58814907134999994 287988.12857021246 19893.965504425949 1036.9440293882399 288009.49871339329 22251.96483867526 3103.7184257897898 288010.28126645047 24103.51561849346 7611.4110185007203 288036.14868655906 23940.70494489788 11651.79767802322 288018.94503626379 24044.002591718188 19161.405425406792 288000.58093801903 24091.30971235325 28282.15737557791
+292038.46925664111 0 0 292038.48617194634 2251.4607900463602 -0.17884507627000001 292038.41307263868 6849.29912095689 107.00689408378999 292038.77853662649 13161.605662110431 0 292038.05750743899 20030.746433325039 1404.1542986555 292043.30364092236 22824.90928289009 7934.7032623205296 292043.42652865121 22454.201771419579 14675.721789743451 292045.82498191146 22521.961400550812 21243.06386732755 292044.84287279513 22715.10635193807 25701.463602865089 292025.51083810459 22882.710146130128 28674.04631201235
+296027.75469610014 0 0 296027.7500640002 2108.7368433939901 0.04897507073 296027.77008156985 6269.4390680078695 192.55264347803998 296027.67000263551 12855.56608355477 0 296027.86744981247 18991.29434125117 2454.09728502082 296026.43084465829 21183.352472880099 8813.7300748352209 296026.39719298977 20862.05768191463 15157.487320894161 296025.74039873795 20988.324350947762 21649.116228249848 296026.0093402401 21374.05059991188 25898.427395559909 296007.05032217695 21749.741065705661 29061.71052294724
+300029.66433632019 0 0 300029.66560667224 2035.17053389535 -0.013431398069999999 300029.66011685983 6067.9336487389601 132.91899604693 300029.68756347697 12339.986975771961 0 300029.63341364957 17670.599423033462 3504.0144707985901 300030.02740217058 19232.65971149828 9673.0018767875099 300030.03663113038 19007.212725054749 15784.57152183367 300030.21675675164 19152.38374987452 21877.866517986789 300030.14299962734 19833.93607461574 25980.06923487247 300015.08628178632 20500.28717307873 29451.954573997402
+304061.59760022501 0 0 304061.59724690503 1922.69247167354 0.0037356425599999999 304061.59877377341 5679.9880655212301 0 304061.59114011156 11850.325735712771 138.51896842521998 304061.60620067315 16048.20824380948 4944.1612328943393 304061.49662159028 16973.345604117261 10703.62559098476 304061.49405476166 16717.124812662623 16459.94507700012 304061.44395685429 17058.27953157451 22510.210571182331 304061.46447074669 18173.514813481099 26163.859048023467 304074.16542389384 19151.740462254871 29847.168465267892
+308034.41368393204 0 0 308034.41378234903 1855.5274565381701 -0.0010405597599999999 308034.41335704119 5590.3590489231201 0 308034.41548339074 11028.31657596721 1157.4749134854901 308034.41128828516 13976.770826254529 6333.6255709340594 308034.44181143679 14568.129388422021 11796.398348673829 308034.44252642465 13856.92214501343 17421.49410994929 308034.45648114971 14941.29788399829 22818.01587507837 308034.45076702425 16320.376181975409 26300.985381646249 308117.42891679093 17705.483118446347 30240.842459421678
+312109.94710375112 0 0 312109.94707377814 1719.8634161714601 0.00031690384 312109.94720330602 5299.3601319312402 0 312109.94655572373 9914.1174050017889 2816.5772277481801 312109.94783334853 11583.95309346973 7881.3732101408395 312109.93853748252 11520.908983528579 13260.719201135509 312109.93831973226 10891.76844289749 18309.27108267208 312109.93406980223 12442.170856213221 23451.628291640242 312109.93581004662 14210.905827966921 26491.358749645849 312314.56476796156 15902.006838165069 30649.498298310002
+314703.00712463411 0 0 314703.00712463411 1657.9138691572798 -0 314703.00712463411 5211.3460312777797 0 314703.00712463417 8828.1958694734003 3999.6135564071201 314703.00712463411 9789.2175204927698 9076.3420101310603 314703.00712463411 9214.645146307801 14136.586485516711 314703.00712463423 8332.7033324493095 19172.079035345552 314703.00712463417 10583.929296421211 23876.277033890608 314703.00712463417 12559.66791448961 26588.496768824261 315024.74547572003 14567.765215576121 30913.376144998969
+316000 0 0 316000 1627.4665402767801 -0 316000 5173.5672106306902 282.85894446215997 316000 8197.0716896473896 4652.9723113127502 316000 8823.5859814716696 9721.336162905769 316000 7956.0747279902907 14585.071226615821 316000.00000000006 6923.4238158264898 19654.058926817397 315999.99999999994 9583.6770922198484 24112.165509567578 316000 11662.47090760269 26635.574526464039 316411.24187299516 13832.138454022059 31048.372930529771
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 79.947166440000004 1.5402637720000001 0.4258014262 85.035949709999997 0.43748050929999999 -0.12132369730000001 89.909072879999997 -0.29992735390000003 -0.27972576020000001 95.327804569999998 0.7751299143 -0.80263352389999998
-80.079627990000006 4.9523949619999996 0.48523843290000002 84.983589170000002 2.7513422969999999 0.60048657660000004 89.986000059999995 2.3946702480000002 0.72068154809999996 95.072410579999996 1.8620369430000001 1.148012638
-80.161331180000005 7.4191350939999996 1.2853707080000001 84.968376160000005 5.3184313769999996 1.4707862140000001 89.965232850000007 3.7174232009999999 1.799797058 95.170745850000003 3.2975447180000002 2.5026478769999998
-80.282539369999995 9.7249355319999999 2.0688464639999999 84.919288640000005 7.501715183 2.6302905079999999 90.040344239999996 6.3652181629999998 3.883796453 94.919395449999996 5.0598449710000004 5.5628380780000004
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
+0 4
+1.9951151004176799 1
+4.0652428178250997 1
+6.1633608799973301 1
+8.2931965274620207 1
+10.457542441649849 1
+12.683067653175151 1
+14.9572780176164 1
+17.350541349673339 4
--3 1
--2 1
--1 1
-0 1
+0 4
1 1
2 1
3 1
4 1
+5 1
+6 1
+7 4
-9 0 0 0 0 3 3 4 4 8 8 75.175628660000001 4.4142475130000003 0.17831161619999999 79.956169130000006 2.4713439940000002 0.093743443489999995 84.999725339999998 -0.18429276350000001 -0.01972097531 90.044921880000004 1.2560675139999999 -0.35408043859999999
-75.107620240000003 8.3131513600000009 0.4707211852 80.014022830000002 4.83631134 0.56432914729999994 84.83627319 2.9282822610000001 0.5890593529 90.640846249999996 1.803012609 0.6873010397
-75.098632809999998 10.64674664 1.172265887 80.029953000000006 7.6065855029999998 1.255706787 84.781600949999998 5.1721577639999996 1.4248739479999999 90.843635559999996 4.1150469779999996 2.0131073000000002
-75.031555179999998 14.940820690000001 2.0349304680000002 80.087257390000005 9.7350368500000002 2.2475943570000001 84.619323730000005 8.1467123029999993 2.645011663 91.435310360000003 3.7750265600000001 3.646145105
+9 0 0 0 0 3 3 11 10 9 8 284250 0 0 284249.99999999988 2532.8034406788602 0 284250.00000000012 14100.84488199209 -0 284249.99999999994 18497.400885685121 0 284249.99999999994 20760.311021057252 760.38799735984003 284250 23328.680665793439 3113.2022590859201 284250 24799.904341341389 6954.8769456019099 284250 24799.904341341389 11651.480316228319 284249.99999999994 24799.904341341389 19161.493224142578 284250 24800 27916.980537397361
+285495.59472963907 0 0 285493.27242656553 2533.4894168046499 -0.022052392129999997 285507.93406887178 14097.391185736751 0.11026196065 285447.52671464329 18133.696021088577 -0.35283827407000001 285475.12776078278 20476.856694131769 851.49818625582998 285524.67773993831 22965.965670579259 3108.3805320537699 285524.62694583467 24567.880806381789 7177.0353682441601 285548.84436398913 24509.388518419262 11652.32418234837 285539.71521147253 24543.829638429208 19161.31549550713 285529.78918731899 24506.671344700258 28041.587732038959
+288013.48115771159 0 0 288005.5925495362 2535.09500351528 0.036759316959999996 288054.3946410073 14089.30671895965 -0.1837965848 287853.21728052408 17402.205426002201 0.58814907134999994 287988.12857021246 19893.965504425949 1036.9440293882399 288009.49871339329 22251.96483867526 3103.7184257897898 288010.28126645047 24103.51561849346 7611.4110185007203 288036.14868655906 23940.70494489788 11651.79767802322 288018.94503626379 24044.002591718188 19161.405425406792 288000.58093801903 24091.30971235325 28282.15737557791
+292038.46925664111 0 0 292038.48617194634 2251.4607900463602 -0.17884507627000001 292038.41307263868 6849.29912095689 107.00689408378999 292038.77853662649 13161.605662110431 0 292038.05750743899 20030.746433325039 1404.1542986555 292043.30364092236 22824.90928289009 7934.7032623205296 292043.42652865121 22454.201771419579 14675.721789743451 292045.82498191146 22521.961400550812 21243.06386732755 292044.84287279513 22715.10635193807 25701.463602865089 292025.51083810459 22882.710146130128 28674.04631201235
+296027.75469610014 0 0 296027.7500640002 2108.7368433939901 0.04897507073 296027.77008156985 6269.4390680078695 192.55264347803998 296027.67000263551 12855.56608355477 0 296027.86744981247 18991.29434125117 2454.09728502082 296026.43084465829 21183.352472880099 8813.7300748352209 296026.39719298977 20862.05768191463 15157.487320894161 296025.74039873795 20988.324350947762 21649.116228249848 296026.0093402401 21374.05059991188 25898.427395559909 296007.05032217695 21749.741065705661 29061.71052294724
+300029.66433632019 0 0 300029.66560667224 2035.17053389535 -0.013431398069999999 300029.66011685983 6067.9336487389601 132.91899604693 300029.68756347697 12339.986975771961 0 300029.63341364957 17670.599423033462 3504.0144707985901 300030.02740217058 19232.65971149828 9673.0018767875099 300030.03663113038 19007.212725054749 15784.57152183367 300030.21675675164 19152.38374987452 21877.866517986789 300030.14299962734 19833.93607461574 25980.06923487247 300015.08628178632 20500.28717307873 29451.954573997402
+304061.59760022501 0 0 304061.59724690503 1922.69247167354 0.0037356425599999999 304061.59877377341 5679.9880655212301 0 304061.59114011156 11850.325735712771 138.51896842521998 304061.60620067315 16048.20824380948 4944.1612328943393 304061.49662159028 16973.345604117261 10703.62559098476 304061.49405476166 16717.124812662623 16459.94507700012 304061.44395685429 17058.27953157451 22510.210571182331 304061.46447074669 18173.514813481099 26163.859048023467 304074.16542389384 19151.740462254871 29847.168465267892
+308034.41368393204 0 0 308034.41378234903 1855.5274565381701 -0.0010405597599999999 308034.41335704119 5590.3590489231201 0 308034.41548339074 11028.31657596721 1157.4749134854901 308034.41128828516 13976.770826254529 6333.6255709340594 308034.44181143679 14568.129388422021 11796.398348673829 308034.44252642465 13856.92214501343 17421.49410994929 308034.45648114971 14941.29788399829 22818.01587507837 308034.45076702425 16320.376181975409 26300.985381646249 308117.42891679093 17705.483118446347 30240.842459421678
+312109.94710375112 0 0 312109.94707377814 1719.8634161714601 0.00031690384 312109.94720330602 5299.3601319312402 0 312109.94655572373 9914.1174050017889 2816.5772277481801 312109.94783334853 11583.95309346973 7881.3732101408395 312109.93853748252 11520.908983528579 13260.719201135509 312109.93831973226 10891.76844289749 18309.27108267208 312109.93406980223 12442.170856213221 23451.628291640242 312109.93581004662 14210.905827966921 26491.358749645849 312314.56476796156 15902.006838165069 30649.498298310002
+314703.00712463411 0 0 314703.00712463411 1657.9138691572798 -0 314703.00712463411 5211.3460312777797 0 314703.00712463417 8828.1958694734003 3999.6135564071201 314703.00712463411 9789.2175204927698 9076.3420101310603 314703.00712463411 9214.645146307801 14136.586485516711 314703.00712463423 8332.7033324493095 19172.079035345552 314703.00712463417 10583.929296421211 23876.277033890608 314703.00712463417 12559.66791448961 26588.496768824261 315024.74547572003 14567.765215576121 30913.376144998969
+316000 0 0 316000 1627.4665402767801 -0 316000 5173.5672106306902 282.85894446215997 316000 8197.0716896473896 4652.9723113127502 316000 8823.5859814716696 9721.336162905769 316000 7956.0747279902907 14585.071226615821 316000.00000000006 6923.4238158264898 19654.058926817397 315999.99999999994 9583.6770922198484 24112.165509567578 316000 11662.47090760269 26635.574526464039 316411.24187299516 13832.138454022059 31048.372930529771
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
+0 4
+1.9951151004176799 1
+4.0652428178250997 1
+6.1633608799973301 1
+8.2931965274620207 1
+10.457542441649849 1
+12.683067653175151 1
+14.9572780176164 1
+17.350541349673339 4
--3 1
--2 1
--1 1
-0 1
+0 4
1 1
2 1
3 1
4 1
+5 1
+6 1
+7 4
-9 0 0 0 0 3 3 4 4 8 8 68.88252258 10.52015495 0.038719888780000003 75.376289369999995 4.7572722430000001 0.087282784279999998 79.612358090000001 2.3348715310000001 0.1058180779 86.174278259999994 0.01856420562 0.02301558293
-69.983276369999999 12.21641159 0.49212014679999999 75.055496219999995 8.1801090240000001 0.51779735090000001 79.794784550000003 5.055784225 0.54893058539999995 85.765380859999993 2.1834375860000002 0.60357558730000005
-69.671226500000003 14.844972609999999 1.0333142280000001 75.118049619999994 10.999332430000001 1.145887017 79.856582639999999 7.53470993 1.2572325470000001 85.455619810000002 5.1070666310000004 1.4451528789999999
-70.785827639999994 16.226510999999999 1.9372695680000001 74.793289180000002 14.232048989999999 2.0965588089999998 80.041008000000005 10.14419174 2.2233860490000001 85.04263306 7.2188878059999997 2.680219889
+9 0 0 0 0 3 3 10 6 8 4 316000 0 0 316000 0 0 316000 0 0 316000 0 0 316000 0 0 316000 0 0
+318629.09516861039 0 0 318629.09516861039 366.56788718203001 0 317860.22270019189 795.35522357773004 0 317115.67451639759 1599.3086662812 0 316371.20834738092 1616.2817253768101 0 315999.99999999977 1627.4665402768201 0
+324481.66856330726 0 302.58243565712002 324481.66856330726 1167.8324836828399 302.58243565712002 321987.65545769053 2477.8936000702897 585.19430795875007 319613.21446970198 5223.7910762562697 1155.5004059056 317207.8905577382 5196.9520990367901 548.53416956704007 316000.00000000017 5173.5672106306802 282.85894446215997
+329101.91261022864 0 6026.5237239512198 329101.91261022864 1670.73500723303 6026.5237239512198 325332.02062722109 3406.8872872760699 6051.6427399737404 320329.2423861493 5964.6006790887304 6953.7086112511997 317471.00755556219 7481.6795198301106 5415.5716740215703 316000 8197.0716896474005 4652.9723113127502
+325944.95917403308 0 12093.13126690926 325944.95917403308 1382.13389169467 12093.13126690926 323558.79683987203 3747.8450711599903 11697.785960544101 319326.30036414898 6157.34663437989 11318.250122775209 317126.81052311475 7935.8536043675203 10261.267846261801 316000.00000000006 8823.5859814716696 9721.336162905769
+319811.34228883771 0 16253.578597082338 319811.34228883771 1191.9088583422399 16253.578597082338 319866.04190144798 3574.0763023169102 16307.728053848488 317835.56191459682 6121.7544362491999 15179.136360705319 316624.356766432 7341.9211712181295 14786.58766369214 316000 7956.0747279902798 14585.071226615821
+319654.02350208652 0 23089.58742787188 319654.02350208652 1332.2566226536601 23089.58742787188 320056.15266584163 3697.4544660941501 22435.050283851069 317729.88993545668 4940.7662117243199 20348.313518654191 316606.80558556458 6239.3989823970105 19896.159276696912 316000.00000000006 6923.4238158264898 19654.058926817394
+325258.33200689126 0 27858.70187491037 325258.33200689126 1710.24326057589 27858.70187491037 324058.87509253348 4978.8629320816908 27000.181374514279 319741.44289696967 6443.72887981433 24993.271793473799 317300.27805630548 8518.3305456713206 24403.104459367667 316000 9583.6770922198484 24112.165509567589
+327200.31664643978 0 30786.004002987131 327200.31664643978 2043.4046780424301 30786.004002987131 325586.27423501259 5888.0577340641803 30116.10672282047 320724.14993064216 8289.8911396880303 26841.567096906248 317623.73273020354 10534.724233514429 26691.855585727899 315999.99999999994 11662.47090760269 26635.574526464028
+328014.32322258851 0 32178.111664453532 327608.9108318194 2058.9774048128202 32138.638522167861 326266.40715453931 5338.0420089042 32007.925105708742 321783.70671953383 10951.46936178577 31571.465154992289 318236.57593957719 12863.67968933084 31226.097324183229 316411.24187299516 13832.138454022059 31048.372930529771
--3 1
--2 1
--1 1
-0 1
+0 4
1 1
2 1
3 1
4 1
+5 1
+6 1
+7 4
--3 1
--2 1
--1 1
-0 1
+0 4
1 1
2 1
-3 1
-4 1
+3 4
-9 0 0 0 0 3 3 4 4 8 8 58.991584779999997 22.52947807 0.12961390610000001 71.823013309999993 7.2421655649999996 0.15281462670000001 73.716308589999997 6.6794943809999996 0.052506178620000003 83.311737059999999 -2.0760459899999999 0.13082706929999999
-61.756282810000002 17.265336990000002 0.41678106780000002 71.061882019999999 11.759069439999999 0.48141264919999999 73.996162409999997 8.7470474239999998 0.51239132880000005 82.953475949999998 3.2453598979999998 0.58126306530000005
-63.680953979999998 19.53681564 1.011900544 70.406623839999995 13.925145150000001 1.0524270529999999 74.692504880000001 11.53063774 1.137047291 80.823326109999996 6.3292903899999997 1.2734758850000001
-66.521568299999998 13.72135162 1.738300562 69.625709529999995 18.348987579999999 1.993276 74.975555420000006 13.36322594 2.0526492599999999 80.472000120000004 11.496906279999999 2.343016386
+9 0 0 0 0 3 3 10 11 8 9 284250 0 0 285495.59472963907 0 0 288013.48115771159 0 0 292038.46925664111 0 0 296027.75469610014 0 0 300029.66433632019 0 0 304061.59760022501 0 0 308034.41368393204 0 0 312109.94710375112 0 0 314703.00712463411 0 0 316000 0 0
+284249.99999999988 -2532.8034406788602 0 285493.27242656553 -2533.4894168046499 -0.022052392129999997 288005.5925495362 -2535.09500351528 0.036759316959999996 292038.48617194634 -2251.4607900463602 -0.17884507627000001 296027.7500640002 -2108.7368433939901 0.04897507073 300029.66560667224 -2035.17053389535 -0.013431398069999999 304061.59724690503 -1922.69247167354 0.0037356425599999999 308034.41378234903 -1855.5274565381701 -0.0010405597599999999 312109.94707377814 -1719.8634161714601 0.00031690384 314703.00712463411 -1657.9138691572798 -0 316000 -1627.4665402767801 -0
+284250.00000000012 -14100.84488199209 -0 285507.93406887178 -14097.391185736751 0.11026196065 288054.3946410073 -14089.30671895965 -0.1837965848 292038.41307263868 -6849.29912095689 107.00689408378999 296027.77008156985 -6269.4390680078695 192.55264347803998 300029.66011685983 -6067.9336487389601 132.91899604693 304061.59877377341 -5679.9880655212301 0 308034.41335704119 -5590.3590489231201 0 312109.94720330602 -5299.3601319312402 0 314703.00712463411 -5211.3460312777797 0 316000 -5173.5672106306902 282.85894446215997
+284249.99999999994 -18497.400885685121 0 285447.52671464329 -18133.696021088577 -0.35283827407000001 287853.21728052408 -17402.205426002201 0.58814907134999994 292038.77853662649 -13161.605662110431 0 296027.67000263551 -12855.56608355477 0 300029.68756347697 -12339.986975771961 0 304061.59114011156 -11850.325735712771 138.51896842521998 308034.41548339074 -11028.31657596721 1157.4749134854901 312109.94655572373 -9914.1174050017889 2816.5772277481801 314703.00712463417 -8828.1958694734003 3999.6135564071201 316000 -8197.0716896473896 4652.9723113127502
+284249.99999999994 -20760.311021057252 760.38799735984003 285475.12776078278 -20476.856694131769 851.49818625582998 287988.12857021246 -19893.965504425949 1036.9440293882399 292038.05750743899 -20030.746433325039 1404.1542986555 296027.86744981247 -18991.29434125117 2454.09728502082 300029.63341364957 -17670.599423033462 3504.0144707985901 304061.60620067315 -16048.20824380948 4944.1612328943393 308034.41128828516 -13976.770826254529 6333.6255709340594 312109.94783334853 -11583.95309346973 7881.3732101408395 314703.00712463411 -9789.2175204927698 9076.3420101310603 316000 -8823.5859814716696 9721.336162905769
+284250 -23328.680665793439 3113.2022590859201 285524.67773993831 -22965.965670579259 3108.3805320537699 288009.49871339329 -22251.96483867526 3103.7184257897898 292043.30364092236 -22824.90928289009 7934.7032623205296 296026.43084465829 -21183.352472880099 8813.7300748352209 300030.02740217058 -19232.65971149828 9673.0018767875099 304061.49662159028 -16973.345604117261 10703.62559098476 308034.44181143679 -14568.129388422021 11796.398348673829 312109.93853748252 -11520.908983528579 13260.719201135509 314703.00712463411 -9214.645146307801 14136.586485516711 316000 -7956.0747279902907 14585.071226615821
+284250 -24799.904341341389 6954.8769456019099 285524.62694583467 -24567.880806381789 7177.0353682441601 288010.28126645047 -24103.51561849346 7611.4110185007203 292043.42652865121 -22454.201771419579 14675.721789743451 296026.39719298977 -20862.05768191463 15157.487320894161 300030.03663113038 -19007.212725054749 15784.57152183367 304061.49405476166 -16717.124812662623 16459.94507700012 308034.44252642465 -13856.92214501343 17421.49410994929 312109.93831973226 -10891.76844289749 18309.27108267208 314703.00712463423 -8332.7033324493095 19172.079035345552 316000.00000000006 -6923.4238158264898 19654.058926817397
+284250 -24799.904341341389 11651.480316228319 285548.84436398913 -24509.388518419262 11652.32418234837 288036.14868655906 -23940.70494489788 11651.79767802322 292045.82498191146 -22521.961400550812 21243.06386732755 296025.74039873795 -20988.324350947762 21649.116228249848 300030.21675675164 -19152.38374987452 21877.866517986789 304061.44395685429 -17058.27953157451 22510.210571182331 308034.45648114971 -14941.29788399829 22818.01587507837 312109.93406980223 -12442.170856213221 23451.628291640242 314703.00712463417 -10583.929296421211 23876.277033890608 315999.99999999994 -9583.6770922198484 24112.165509567578
+284249.99999999994 -24799.904341341389 19161.493224142578 285539.71521147253 -24543.829638429208 19161.31549550713 288018.94503626379 -24044.002591718188 19161.405425406792 292044.84287279513 -22715.10635193807 25701.463602865089 296026.0093402401 -21374.05059991188 25898.427395559909 300030.14299962734 -19833.93607461574 25980.06923487247 304061.46447074669 -18173.514813481099 26163.859048023467 308034.45076702425 -16320.376181975409 26300.985381646249 312109.93581004662 -14210.905827966921 26491.358749645849 314703.00712463417 -12559.66791448961 26588.496768824261 316000 -11662.47090760269 26635.574526464039
+284250 -24800 27916.980537397361 285529.78918731899 -24506.671344700258 28041.587732038959 288000.58093801903 -24091.30971235325 28282.15737557791 292025.51083810459 -22882.710146130128 28674.04631201235 296007.05032217695 -21749.741065705661 29061.71052294724 300015.08628178632 -20500.28717307873 29451.954573997402 304074.16542389384 -19151.740462254871 29847.168465267892 308117.42891679093 -17705.483118446347 30240.842459421678 312314.56476796156 -15902.006838165069 30649.498298310002 315024.74547572003 -14567.765215576121 30913.376144998969 316411.24187299516 -13832.138454022059 31048.372930529771
--3 1
--2 1
--1 1
-0 1
+0 4
1 1
2 1
3 1
4 1
+5 1
+6 1
+7 4
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
+0 4
+1.9951151004176799 1
+4.0652428178250997 1
+6.1633608799973301 1
+8.2931965274620207 1
+10.457542441649849 1
+12.683067653175151 1
+14.9572780176164 1
+17.350541349673339 4
-9 0 0 0 0 3 3 4 4 8 8 59.699058530000002 18.739997859999999 0.1354572624 65.027458190000004 13.53881073 0.18676257130000001 70.191123959999999 10.20926285 0.1294175088 74.208061220000005 3.80182457 0.088947698470000003
-59.322383879999997 17.09566689 0.4489269555 65.146614069999998 16.06541824 0.44670042399999998 70.091178889999995 11.930898669999999 0.47216278309999998 74.488670350000007 9.2596235280000005 0.51947051290000001
-59.741939539999997 19.219667430000001 0.99546813960000002 65.031692500000005 17.131282809999998 0.99312281609999997 70.131317139999993 14.736147880000001 1.0607934000000001 74.443061830000005 10.69222736 1.1223616599999999
-59.369590760000001 17.015077590000001 1.7406027319999999 65.149681090000001 19.485950469999999 1.917302251 70.031707760000003 16.1701622 1.930913925 74.723510739999995 16.314155580000001 2.1231133940000002
+9 0 0 0 0 3 3 6 10 4 8 316000 0 0 318629.09516861039 0 0 324481.66856330726 0 302.58243565712002 329101.91261022864 0 6026.5237239512198 325944.95917403308 0 12093.13126690926 319811.34228883771 0 16253.578597082338 319654.02350208652 0 23089.58742787188 325258.33200689126 0 27858.70187491037 327200.31664643978 0 30786.004002987131 328014.32322258851 0 32178.111664453532
+316000 0 0 318629.09516861039 -366.56788718203001 0 324481.66856330726 -1167.8324836828399 302.58243565712002 329101.91261022864 -1670.73500723303 6026.5237239512198 325944.95917403308 -1382.13389169467 12093.13126690926 319811.34228883771 -1191.9088583422399 16253.578597082338 319654.02350208652 -1332.2566226536601 23089.58742787188 325258.33200689126 -1710.24326057589 27858.70187491037 327200.31664643978 -2043.4046780424301 30786.004002987131 327608.9108318194 -2058.9774048128202 32138.638522167861
+316000 0 0 317860.22270019189 -795.35522357773004 0 321987.65545769053 -2477.8936000702897 585.19430795875007 325332.02062722109 -3406.8872872760699 6051.6427399737404 323558.79683987203 -3747.8450711599903 11697.785960544101 319866.04190144798 -3574.0763023169102 16307.728053848488 320056.15266584163 -3697.4544660941501 22435.050283851069 324058.87509253348 -4978.8629320816908 27000.181374514279 325586.27423501259 -5888.0577340641803 30116.10672282047 326266.40715453931 -5338.0420089042 32007.925105708742
+316000 0 0 317115.67451639759 -1599.3086662812 0 319613.21446970198 -5223.7910762562697 1155.5004059056 320329.2423861493 -5964.6006790887304 6953.7086112511997 319326.30036414898 -6157.34663437989 11318.250122775209 317835.56191459682 -6121.7544362491999 15179.136360705319 317729.88993545668 -4940.7662117243199 20348.313518654191 319741.44289696967 -6443.72887981433 24993.271793473799 320724.14993064216 -8289.8911396880303 26841.567096906248 321783.70671953383 -10951.46936178577 31571.465154992289
+316000 0 0 316371.20834738092 -1616.2817253768101 0 317207.8905577382 -5196.9520990367901 548.53416956704007 317471.00755556219 -7481.6795198301106 5415.5716740215703 317126.81052311475 -7935.8536043675203 10261.267846261801 316624.356766432 -7341.9211712181295 14786.58766369214 316606.80558556458 -6239.3989823970105 19896.159276696912 317300.27805630548 -8518.3305456713206 24403.104459367667 317623.73273020354 -10534.724233514429 26691.855585727899 318236.57593957719 -12863.67968933084 31226.097324183229
+316000 0 0 315999.99999999977 -1627.4665402768201 0 316000.00000000017 -5173.5672106306802 282.85894446215997 316000 -8197.0716896474005 4652.9723113127502 316000.00000000006 -8823.5859814716696 9721.336162905769 316000 -7956.0747279902798 14585.071226615821 316000.00000000006 -6923.4238158264898 19654.058926817394 316000 -9583.6770922198484 24112.165509567589 315999.99999999994 -11662.47090760269 26635.574526464028 316411.24187299516 -13832.138454022059 31048.372930529771
--3 1
--2 1
--1 1
-0 1
+0 4
1 1
2 1
-3 1
-4 1
+3 4
--3 1
--2 1
--1 1
-0 1
+0 4
1 1
2 1
3 1
4 1
+5 1
+6 1
+7 4
-9 0 0 0 0 3 3 4 4 8 8 55.368618009999999 16.837617869999999 0.18016138670000001 59.870605470000001 16.162641529999998 0.1031088233 65.149017330000007 14.606780049999999 0.1991238296 69.533317569999994 8.5146989820000005 0.11232377590000001
-54.289394379999997 17.0736618 0.46147784590000002 60.14064407 17.558025359999998 0.46239173410000001 65.148048399999993 15.64530182 0.44258064029999999 69.267181399999998 13.149055479999999 0.4751756191
-54.078125 18.603668209999999 1.0096873040000001 60.264034270000003 18.238477710000002 0.99672675129999999 64.865753170000005 17.574460980000001 0.99048465490000004 70.272933960000003 13.94456673 1.0700914859999999
-53.012393950000003 18.52272224 1.6839592459999999 60.531368260000001 19.475240710000001 1.7579774859999999 64.862075809999993 18.222274779999999 1.9222160580000001 70.020309449999999 18.76461411 1.8938726189999999
+Triangulations 8
+133 244 1 68.3591027075252
+318204.296811767 -7327.75514408005 23761.5936376187 321186.316945408 2.66453525910038e-015 23752.7064604884 320799.509393646 -4558.16849175178 23756.3543401649 320998.378979637 -4160.81223188989 23754.4028573911 321148.053184713 -3689.6472160146 23753.2095354637 321253.395897441 -2803.75665955021 23752.9916663106 321248.42826932 -1907.96452803127 23753.1774600656 320023.238952556 0 20688 320631.502599425 0 22781.485691234 320240.81250731 0 21753.8112991336 316000 -7836.69546463392 20688 320045.342238307 -1751.36994910285 20688 319913.002515926 -3229.64445562497 20688 319772.211855676 -3673.50957674547 20688 319569.301430771 -4074.29383648006 20688 319225.638270173 -4542.19439064001 20688 317985.389915899 -5739.38334339826 20688 316000 -9499.97165004752 23769.5263731486 316000 -8287.05808549061 21750.52152968 316000 -8855.30671945309 22777.9623960537 320115.354052135 -1760.87566913314 21092.3331346663 320115.239460479 -1764.74302164892 21091.6720622207 320163.487884196 -1768.94818345937 21311.4513044028 320163.363890376 -1772.82806924971 21310.7680231003 320229.883118317 -1779.27097244568 21570.3846231511 320229.744107148 -1783.16761787584 21569.6753461442 320237.87075936 -1780.46664690605 21599.0181990321 320237.729823751 -1784.36528218997 21598.3060686819 320346.565176989 -1796.050510782 21950.1046738163 320346.396275775 -1799.97590922608 21949.3580063125 320054.048860025 -2576.91692229974 20910.3537025211 320099.576312453 -2586.83926839283 21123.8760123587 320161.917395214 -2599.78089562801 21376.2720616847 320169.390952594 -2601.29665876334 21404.1889323442 320605.060796785 -1830.05972201621 22603.8061989551 320604.817245451 -1834.04804501985 22602.9983482245 320270.692883594 -2621.33676209173 21746.6137502718 320793.614089601 -1853.45760377145 22987.9773382474 320793.312092555 -1857.49205811725 22987.1361616042 319955.475094475 -3239.74371236417 20895.7212333918 319906.06040364 -3380.17629642984 20834.3356779345 320013.036985248 -3252.90636217639 21141.4966970124 320019.916825039 -3254.47349260267 21168.6897634115 320509.797736944 -2666.61325341585 22385.0365458157 321121.526406187 -1892.91283047292 23556.0849025105 321121.118635304 -1897.02853624982 23555.1984502 319962.36082484 -3393.05906922632 21078.5433259524 319969.085988897 -3394.60137257392 21105.5653808956 320112.859403038 -3275.61800883652 21502.3997018293 320683.325192768 -2698.72772933703 22760.9252201275 320059.880894663 -3415.5500551905 21437.2225681716 319825.60436199 -3685.33492314669 20928.7727441658 319831.968107147 -3686.76962089386 20955.4224494035 319756.006604374 -3805.30607079608 20859.6045197657 319762.205639055 -3806.67368110069 20886.0955860838 320330.827315322 -3325.64436748362 22125.6093121071 319917.790871056 -3706.63423146774 21282.6206226887 320984.201560206 -2754.06719156026 23317.8170888397 319845.78023427 -3825.81612005002 21211.3981797219 320272.554620998 -3465.83333995102 22056.8796923766 319575.133472904 -4075.39706554314 20714.1237373946 321100.389532689 -2775.46963713175 23511.3468658272 320488.341498115 -3362.48039239314 22493.348034318 321185.309891485 -2791.15206833224 23647.134886671 320426.123390842 -3503.26975557524 22422.7342911482 320118.419598191 -3756.25289802544 21894.6128420382 319653.208417639 -4092.34896103289 21035.0582612359 319595.25361367 -4162.21720175575 20984.9893945592 320041.045012801 -3874.67032789623 21820.1526193576 320760.77883967 -3427.58957790956 23039.2935433931 320263.116221148 -3794.28289308037 22256.4343866256 320691.622206656 -3569.92155665825 22966.1670195273 320865.843530176 -3453.1667031583 23229.3186589296 320181.831686902 -3912.67475747202 22180.2834583411 319835.515555859 -4138.48101938215 21636.3924584686 320942.600235749 -3472.01816296914 23362.7351255124 320793.988331499 -3596.21953462591 23155.3899541225 319773.94069291 -4207.41781237287 21584.3454561658 321004.124424463 -3487.23037048653 23466.791306351 320868.768502544 -3615.63397726619 23288.2635168058 320513.122815996 -3863.2556139957 22794.5188431723 320928.706011553 -3631.31782727671 23391.9072583809 319966.939569772 -4175.8795986032 21992.6743040127 319902.766449213 -4244.54035471518 21939.6066193944 320425.054787391 -3982.23446557926 22716.1381549544 320609.488567703 -3890.77011226807 22982.038389662 320679.880406709 -3911.16561058448 23113.7589816705 320518.803125178 -4010.13148025615 22902.9491441619 320736.298659735 -3927.687446015 23216.5262858955 319383.145818117 -4581.04554381145 21276.5111055901 320587.28335718 -4030.85110572507 23034.1900669198 320194.007653034 -4246.01523044116 22523.4773436966 320642.169982457 -4047.65768009788 23136.5925221392 320125.370040352 -4314.67075031147 22469.0752132875 320281.542587311 -4274.53483685527 22708.686196088 320942.801460927 -3989.44473629043 23574.8830465451 319496.838643885 -4616.02145104364 21626.2079682263 320211.192104829 -4343.30454705848 22653.8614923261 320345.490167227 -4295.82357322328 22838.8423421923 320843.073370432 -4110.62691952856 23493.7315435919 320396.747915418 -4313.15000488085 22940.4192011053 320273.891257285 -4364.70979814423 22783.7314724896 320324.150089959 -4382.14804622379 22885.0904270461 319693.554846189 -4685.28457415903 22148.4303592692 320584.402320744 -4378.45458684217 23294.7954260098 320508.161137687 -4447.98682832195 23238.7358517428 319769.470320161 -4714.28248321179 22330.9253018941 320729.500636639 -4430.85625072834 23553.5355424573 319824.955564205 -4736.15221198473 22459.2431307148 320650.457450134 -4500.92071831383 23496.9613013508 319869.445679029 -4754.07313002596 22559.4194307927 320032.437274401 -4822.42555510036 22909.0884224886 320158.585262002 -4878.01414272442 23164.4972308915 320290.815110576 -4938.62534748419 23421.0718132596 320373.278503657 -4977.59537091487 23576.2960590548 318098.843617791 -5812.48839873804 21191.9031627504 318142.730443602 -5844.98512537998 21368.5312352751 318174.883435142 -5869.9402948292 21492.8683310661 318200.708491402 -5890.6277181509 21590.0091339488 318295.623289214 -5971.08223552934 21929.4701967002 317528.129701128 -6286.62555606156 20932.9283874683 317560.3975014 -6323.46501605859 21107.9211365307 318369.382655781 -6037.89537970167 22177.665886984 317584.0510892 -6351.66675736517 21231.1467101661 317603.0568664 -6374.99706256294 21327.4422424597 318446.956744225 -6111.78777365383 22427.0485262368 318495.463058415 -6159.7590359428 22577.8866114079 317672.959850477 -6465.39544719671 21664.1122251681 317727.332248378 -6540.14527540318 21910.4318570187 317784.559387371 -6622.5461082549 22158.0746727008 317820.363944436 -6675.91039842899 22307.9332320899 318853.874718283 -6553.18833440045 23607.9749394449 318085.394099864 -7110.51199006736 23332.9152967149 2.35030198878716 5.81239782609461 0 5.17908083698012 1.29625620361845 5.4430448829673 1.1454774669468 5.38864560232275 0.982038739533831 5.33509913499375 0.712399346707969 5.26274736497442 0.468913157627896 5.21605177222586 0 4.66066861626444 0 5.00627676340596 0 4.8334726898352 3 5.24221906303494 0.470013315883743 4.68211724465811 0.930803347568053 4.74882819336701 1.0958000231212 4.78528414850428 1.26361982821358 4.82865469330834 1.48580176285685 4.89296102857527 2.11462406381462 5.07483562188914 3 5.94433420095506 3 5.47625744234165 3 5.71029582164835 0.468913157627896 4.74882819336701 0.470013315883743 4.74882819336701 0.468913157627896 4.78528414850428 0.470013315883743 4.78528414850428 0.468913157627896 4.82865469330834 0.470013315883743 4.82865469330834 0.468913157627896 4.8334726898352 0.470013315883743 4.8334726898352 0.468913157627896 4.89296102857527 0.470013315883743 4.89296102857527 0.712399346707969 4.74882819336701 0.712399346707969 4.78528414850428 0.712399346707969 4.82865469330834 0.712399346707969 4.8334726898352 0.468913157627896 5.00627676340596 0.470013315883743 5.00627676340596 0.712399346707969 4.89296102857527 0.468913157627896 5.07483562188914 0.470013315883743 5.07483562188914 0.930803347568053 4.78528414850428 0.982038739533831 4.78528414850428 0.930803347568053 4.82865469330834 0.930803347568053 4.8334726898352 0.712399346707969 5.00627676340596 0.468913157627896 5.17908083698012 0.470013315883743 5.17908083698012 0.982038739533831 4.82865469330834 0.982038739533831 4.8334726898352 0.930803347568053 4.89296102857527 0.712399346707969 5.07483562188914 0.982038739533831 4.89296102857527 1.0958000231212 4.82865469330834 1.0958000231212 4.8334726898352 1.1454774669468 4.82865469330834 1.1454774669468 4.8334726898352 0.930803347568053 5.00627676340596 1.0958000231212 4.89296102857527 0.712399346707969 5.17908083698012 1.1454774669468 4.89296102857527 0.982038739533831 5.00627676340596 1.26361982821358 4.8334726898352 0.712399346707969 5.21605177222586 0.930803347568053 5.07483562188914 0.712399346707969 5.24221906303494 0.982038739533831 5.07483562188914 1.0958000231212 5.00627676340596 1.26361982821358 4.89296102857527 1.29625620361845 4.89296102857527 1.1454774669468 5.00627676340596 0.930803347568053 5.17908083698012 1.0958000231212 5.07483562188914 0.982038739533831 5.17908083698012 0.930803347568053 5.21605177222586 1.1454774669468 5.07483562188914 1.26361982821358 5.00627676340596 0.930803347568053 5.24221906303494 0.982038739533831 5.21605177222586 1.29625620361845 5.00627676340596 0.930803347568053 5.26274736497442 0.982038739533831 5.24221906303494 1.0958000231212 5.17908083698012 0.982038739533831 5.26274736497442 1.26361982821358 5.07483562188914 1.29625620361845 5.07483562188914 1.1454774669468 5.17908083698012 1.0958000231212 5.21605177222586 1.0958000231212 5.24221906303494 1.1454774669468 5.21605177222586 1.0958000231212 5.26274736497442 1.48580176285685 5.00627676340596 1.1454774669468 5.24221906303494 1.26361982821358 5.17908083698012 1.1454774669468 5.26274736497442 1.29625620361845 5.17908083698012 1.26361982821358 5.21605177222586 1.0958000231212 5.33509913499375 1.48580176285685 5.07483562188914 1.29625620361845 5.21605177222586 1.26361982821358 5.24221906303494 1.1454774669468 5.33509913499375 1.26361982821358 5.26274736497442 1.29625620361845 5.24221906303494 1.29625620361845 5.26274736497442 1.48580176285685 5.17908083698012 1.26361982821358 5.33509913499375 1.29625620361845 5.33509913499375 1.48580176285685 5.21605177222586 1.26361982821358 5.38864560232275 1.48580176285685 5.24221906303494 1.29625620361845 5.38864560232275 1.48580176285685 5.26274736497442 1.48580176285685 5.33509913499375 1.48580176285685 5.38864560232275 1.48580176285685 5.4430448829673 1.48580176285685 5.47625744234165 2.11462406381462 5.17908083698012 2.11462406381462 5.21605177222586 2.11462406381462 5.24221906303494 2.11462406381462 5.26274736497442 2.11462406381462 5.33509913499375 2.35030198878716 5.17908083698012 2.35030198878716 5.21605177222586 2.11462406381462 5.38864560232275 2.35030198878716 5.24221906303494 2.35030198878716 5.26274736497442 2.11462406381462 5.4430448829673 2.11462406381462 5.47625744234165 2.35030198878716 5.33509913499375 2.35030198878716 5.38864560232275 2.35030198878716 5.4430448829673 2.35030198878716 5.47625744234165 2.11462406381462 5.71029582164835 2.35030198878716 5.71029582164835 18 1 20 21 10 8 21 8 12 22 21 12 23 10 21 23 21 22 24 23 22 25 10 23 26 25 23 26 23 24 27 10 25 28 25 26 28 27 25 29 9 10 29 10 27 30 27 28 30 29 27 31 12 13 31 22 12 31 24 22 32 24 31 33 26 24 33 24 32 34 28 26 34 26 33 35 9 29 35 29 30 36 35 30 37 30 28 37 28 34 38 2 9 38 9 35 39 35 36 39 38 35 40 31 13 40 32 31 41 13 14 41 40 13 42 33 32 42 32 40 43 33 42 43 34 33 44 30 37 44 36 30 45 7 2 45 2 38 45 38 39 46 45 39 46 7 45 47 42 40 47 40 41 48 43 42 48 42 47 49 34 43 49 37 34 50 36 44 50 39 36 51 43 48 51 49 43 52 47 41 52 41 14 53 48 47 53 51 48 53 47 52 54 14 15 54 52 14 55 53 52 55 52 54 56 37 49 56 44 37 57 51 53 58 46 39 58 39 50 59 53 55 59 57 53 60 49 51 60 56 49 61 54 15 61 15 16 61 59 55 61 55 54 62 46 58 62 7 46 63 44 56 63 50 44 64 6 7 64 7 62 65 56 60 65 63 56 66 51 57 66 60 51 67 59 61 68 61 16 68 67 61 69 57 59 69 66 57 70 58 50 70 50 63 70 62 58 71 65 60 71 60 66 72 63 65 72 70 63 73 64 62 73 62 70 74 66 69 74 71 66 75 69 59 75 59 67 76 64 73 77 76 73 77 70 72 77 73 70 78 67 68 78 75 67 79 64 76 79 5 6 79 6 64 80 76 77 81 65 71 81 72 65 82 5 79 82 76 80 82 79 76 83 69 75 83 74 69 84 83 75 84 75 78 85 81 71 85 74 83 85 71 74 86 80 77 86 77 72 86 72 81 87 80 86 88 86 81 88 87 86 88 81 85 89 82 80 89 80 87 90 78 68 90 16 17 90 68 16 91 89 87 91 87 88 92 85 83 92 88 85 93 89 91 94 92 83 94 83 84 95 88 92 95 91 88 96 4 5 96 82 89 96 5 82 97 78 90 97 84 78 97 90 17 98 92 94 98 95 92 99 91 95 100 4 96 100 89 93 100 96 89 101 93 91 101 91 99 102 95 98 102 99 95 102 101 99 103 101 102 104 84 97 104 94 84 105 100 93 105 93 101 106 101 103 106 105 101 107 94 104 107 98 94 107 102 98 108 3 4 108 4 100 108 100 105 109 102 107 110 3 108 110 105 106 110 108 105 111 103 102 111 102 109 112 103 111 112 106 103 113 106 112 113 110 106 114 110 113 114 3 110 115 3 114 116 97 17 116 104 97 117 104 116 117 107 104 118 109 107 118 111 109 118 107 117 119 111 118 120 112 111 120 111 119 121 17 11 121 116 17 122 121 11 122 117 116 122 118 117 122 116 121 123 113 112 123 112 120 123 114 113 124 118 122 124 122 11 125 119 118 125 124 11 125 118 124 126 114 123 127 115 114 127 114 126 128 11 19 128 125 11 128 119 125 128 120 119 129 123 120 129 128 19 129 120 128 130 129 19 130 126 123 130 123 129 131 127 126 131 130 19 131 126 130 132 1 3 132 3 115 132 115 127 132 127 131 133 19 20 133 1 132 133 131 19 133 20 1 133 132 131
+8 6 1 91.8613796084568
+307925.942834271 -14604.4351423643 20688.0062560445 307964.585063061 -15409.6848904203 23788.8306509614 312502.174784494 -12436.5747590776 23780.1401795566 316000 -9499.97165004752 23769.5263731487 316000 -7836.69546463392 20688 316000 -8559.03850811324 22268.6768099034 312989.586690224 -10800.7279434588 20688 310853.808002851 -12543.7529093181 20687.9999996005 5.60612813510504 12.641482539754 6.1822235177004 12.6628778521911 6.07423370992259 15.2500471465523 5.94433420095507 17.3505413496733 5.24221906303494 17.3505413496733 5.593276631995 17.3505413496733 5.41538935958513 15.536437533473 5.50745187967406 14.2968222413196 2 8 1 3 7 8 3 8 2 6 5 7 4 7 3 4 6 7
+151 278 1 96.5870011983953
+320467.125397522 0.0410607388638593 17391.0010676384 320023.233481529 0.0410607425919161 20688.0006639233 320154.948798745 0.04106073196 18348.001502321 319996.020753432 0.04106073196 19344.0890859954 319975.717431827 0.04106073196 20016.980814192 316000 7836.69546463271 20687.9999999966 320044.362647722 1455.77767865949 20688 319993.196426326 2765.53147250402 20688 319883.538277775 3345.44111516283 20688.0000000372 319731.258727032 3768.14939797388 20688.0000001036 319498.927818808 4184.80740845445 20688.0000001229 318264.567485339 5474.44729270223 20688 316000 7485.11428493578 17391 316000 7550.33222424823 19617.0640605255 316000 7442.90448471324 18515.409155515 320467.122621291 3.12712100019346 17391 318387.426953958 5234.93120921323 17391.0000000009 319253.196371357 4361.57385708601 17391.0000000265 319887.232557886 3398.35710954724 17391.0000000096 320155.423493943 2704.95196364468 17391 320378.820629237 1620.66842662513 17391 320449.308772612 800.533540923761 17391 320443.474149923 3.12752856852783 17448.4861208223 320390.014658475 3.12879977603786 17584.8501480478 320330.715727863 3.13087282341226 17748.2453856169 320206.536570867 3.13835683433849 18147.8254709819 320431.4573151 800.595952742789 17435.9202523813 320154.943955733 3.14334000019928 18348.0001041528 320379.62836243 800.836299275537 17571.8399707631 320322.171555575 801.242455106292 17734.667262289 320076.772644117 3.15472653570885 18721.0866181002 320397.664813144 1411.28997946 17406.1652386783 320202.010715562 802.762740673725 18132.712156037 320348.973980487 1411.52915397156 17541.1511428488 320152.184522492 803.798367450246 18332.0485804964 320295.058397984 1411.99431736752 17702.7934602529 320331.626356226 1620.8665695007 17525.5863931958 319996.021794811 3.17957824437203 19344.090628085 320279.271623245 1621.28004045331 17686.6729713611 320076.890587902 806.204961961259 18703.4676769151 320182.603323441 1413.940893511 18097.6694314744 320136.153863045 1415.34373494037 18295.2906068851 320170.20620606 1623.17326276439 18080.0740419008 320125.238285676 1624.59112134531 18276.9018989065 319975.73161591 3.21432273180913 20016.9801793246 319976.167837475 3.21547122797894 20036.842350078 319999.806394711 811.584208037206 19323.4377852177 320066.340089198 1418.71718059259 18663.31941512 320057.821603407 1628.07329399152 18643.3700159863 320113.141097289 2704.2247297369 17547.9382345847 320110.672281391 2714.44343911151 17546.0909172183 319996.176092202 1426.56925462139 19277.1727514001 319981.965994554 819.304386365989 19992.7952348714 319982.451410006 819.562824967608 20012.5501973577 319990.661691752 1636.36509713249 19254.4251688791 320025.839548839 2703.49292694855 17930.511410899 320023.597700093 2713.66283440635 17928.5357350368 319990.319725557 2703.72010495904 18121.5945248148 319988.175675543 2713.8659733513 18119.551537294 319923.145756357 3312.75368379939 17414.4588628261 319982.850331662 1438.26208225364 19939.4655726915 319983.423723516 1438.65976353469 19959.0068404141 319938.066555746 2705.26482387738 18476.8783044462 319936.078054919 2715.36740366862 18474.7054510656 319979.255940593 1648.94696222677 19913.5055644782 319979.865743413 1649.37812616156 19932.9499144217 319849.402621633 3308.01328958415 17788.4728117111 319816.07574116 3393.21496972285 17763.8239164044 319819.682773944 3306.22918464052 17975.1075132811 319787.143909097 3391.0360035178 17949.7560243113 320032.850328707 1453.4530239142 20599.4815850472 319889.523528576 2711.3474695651 19068.1634582962 319887.721544128 2721.38481073681 19065.7639252958 320029.85181852 1665.52537719721 20570.2084993703 319776.572418449 3304.0739987336 18321.8696182246 319645.266343016 3756.03466951341 17643.8099234229 319745.258089387 3388.14449520344 18295.1839218715 319619.509562419 3751.81004374452 17826.5406186556 319889.339494559 2723.39852254302 19704.859551563 319887.641963638 2733.38038572344 19702.2065915864 319890.144679222 2723.8486429015 19723.6326885807 319888.448749316 2733.82916893931 19720.9721724666 319582.489450004 3745.08355622217 18165.9268949447 319738.730700935 3304.30054533226 18898.4295119015 319359.779974472 4215.83210099615 17457.3159696837 319708.792838737 3387.16982504566 18869.4673544637 319337.622703677 4208.21139502124 17635.5927592505 319232.63756447 4352.04742461182 17567.8332300595 319942.286331792 2741.90578354694 20338.732024341 319940.596550144 2751.85421120273 20335.8232592361 319551.270918564 3737.77681925242 18729.9962711283 319305.953876432 4195.09016954698 17966.6456415738 319744.060436247 3310.82166536035 19518.8323363071 319953.452609937 2744.93549347337 20423.7273592463 319951.756616063 2754.88147944371 20420.7843595443 319744.936054581 3311.12536242904 19537.1219678088 319714.725219238 3392.4884089315 19487.3846059651 319715.605132846 3392.75878462402 19505.6009325203 319202.476472564 4336.59784752863 17896.1588747301 319559.064945674 3736.61066323966 19336.8708666185 319279.957425466 4177.11095888871 18516.807263939 319559.94175736 3736.69831786805 19354.7630398061 319796.501995069 3325.06053711282 20136.4008178388 319807.149177861 3327.63730324653 20219.2237443464 319766.89054672 3405.69334649814 20102.494094113 319177.813598549 4314.7229424255 18441.7984005812 319777.43478506 3408.14788185883 20184.9912898481 319846.308720339 3336.8714675674 20479.7599080816 319816.168611793 3417.02772876224 20444.512393656 319609.313594454 3744.02199528365 19941.1500043114 319288.482925425 4164.78505900426 19108.8583566305 319289.306450754 4164.55346390105 19126.3183684737 319619.317461268 3745.76823675271 20022.2190297017 319186.213241827 4298.29826607793 19029.0648337661 319187.009147392 4297.94885320826 19046.3858568156 319655.913668712 3752.54795216085 20277.299034398 319690.832237634 3759.45569117113 20481.2178861379 319334.594777522 4161.8778325085 19698.78391777 319343.678476728 4162.32617619685 19777.9730228396 319720.594022069 3765.60810976893 20635.207981023 319230.645585122 4291.55918096331 19614.3886780545 319239.38727674 4291.521113585 19692.9772986248 319376.815844669 4165.18638654625 20027.226018866 318368.929562403 5185.33301389957 17909.1287580307 319271.268420198 4292.90383567983 19940.3723186166 319408.351915085 4169.16048047368 20226.5942631431 319435.193447818 4173.22933677414 20377.2193698657 319301.602890908 4295.76140424792 20138.2931036392 319444.988804124 4174.84363461982 20428.7964958399 319327.420051557 4299.02988082057 20287.8499336451 319336.841476136 4300.37929871994 20339.0666092121 318373.653068287 5140.18749848272 18467.3175082825 318374.186234249 5139.01476291006 18483.7945996303 317969.541557865 5562.25589369799 17679.5402519593 318404.373405418 5106.71555281061 19024.7242704348 317972.255705988 5506.56837211611 18227.8685423711 317972.663079746 5505.10061451085 18244.056120236 318410.517849133 5103.28892078819 19099.6739018024 318433.053917814 5094.38160417539 19335.8159060597 318454.630332101 5089.46302811808 19524.9773838763 317996.621051077 5463.75484517403 18775.6046681347 318473.069200107 5087.15494419991 19668.0741300744 318001.581243246 5459.18362107145 18849.2798129031 318479.812596041 5086.65807142143 19717.1120420883 318019.873679825 5446.86781806258 19081.4606599575 318517.089373403 5086.56719201008 19963.8966387424 318037.487184538 5439.45188049205 19267.5178012167 318052.592927628 5435.40369025919 19408.3131453596 318058.127276282 5434.34161087744 19456.5725572722 318088.7976194 5431.66186959152 19699.5260255799 318236.139508317 5463.20751287568 20555.9908555068 4.12238592198063 1.0981161730079e-005 4.66066861630132 1.05429423539194e-005 4.28353900377763 1.09244666996163e-005 4.44541991842472 1.07998916762048e-005 4.55324269589555 1.06830958943693e-005 5.24221906303494 3 4.67512213491715 0.386951903129763 4.72070555953133 0.775012363057934 4.75728952629506 0.97197103323405 4.79453454783475 1.13358006356016 4.84253588202024 1.31349376557639 5.04033049009853 1.98109797124912 4.55641924184057 3 5.01361912263582 3 4.78501918223819 3 4.12238595148847 0.000836340459694936 4.34466123934778 1.78805797863436 4.250415667877 1.37335215455579 4.18344127004293 1.00171785505597 4.15566978302554 0.771778573323796 4.13229655470114 0.446654065817418 4.12453530472634 0.216727939660852 4.13229655470114 0.000836340459694936 4.15566978302554 0.000836340459694936 4.18344127004293 0.000836340459694936 4.250415667877 0.000836340459694936 4.13229655470114 0.216727939660852 4.28353900377763 0.000836340459694936 4.15566978302554 0.216727939660852 4.18344127004293 0.216727939660852 4.34466123934778 0.000836340459694936 4.13229655470114 0.386951903129763 4.250415667877 0.216727939660852 4.15566978302554 0.386951903129763 4.28353900377763 0.216727939660852 4.18344127004293 0.386951903129763 4.15566978302554 0.446654065817418 4.44541991842472 0.000836340459694936 4.18344127004293 0.446654065817418 4.34466123934778 0.216727939660852 4.250415667877 0.386951903129763 4.28353900377763 0.386951903129763 4.250415667877 0.446654065817418 4.28353900377763 0.446654065817418 4.55324269589555 0.000836340459694936 4.55641924184057 0.000836340459694936 4.44541991842472 0.216727939660852 4.34466123934778 0.386951903129763 4.34466123934778 0.446654065817418 4.18344127004293 0.771778573323796 4.18344127004293 0.775012363057934 4.44541991842472 0.386951903129763 4.55324269589555 0.216727939660852 4.55641924184057 0.216727939660852 4.44541991842472 0.446654065817418 4.250415667877 0.771778573323796 4.250415667877 0.775012363057934 4.28353900377763 0.771778573323796 4.28353900377763 0.775012363057934 4.18344127004293 0.97197103323405 4.55324269589555 0.386951903129763 4.55641924184057 0.386951903129763 4.34466123934778 0.771778573323796 4.34466123934778 0.775012363057934 4.55324269589555 0.446654065817418 4.55641924184057 0.446654065817418 4.250415667877 0.97197103323405 4.250415667877 1.00171785505597 4.28353900377763 0.97197103323405 4.28353900377763 1.00171785505597 4.66066861630132 0.386951903129763 4.44541991842472 0.771778573323796 4.44541991842472 0.775012363057934 4.66066861630132 0.446654065817418 4.34466123934778 0.97197103323405 4.250415667877 1.13358006356016 4.34466123934778 1.00171785505597 4.28353900377763 1.13358006356016 4.55324269589555 0.771778573323796 4.55324269589555 0.775012363057934 4.55641924184057 0.771778573323796 4.55641924184057 0.775012363057934 4.34466123934778 1.13358006356016 4.44541991842472 0.97197103323405 4.250415667877 1.31349376557639 4.44541991842472 1.00171785505597 4.28353900377763 1.31349376557639 4.28353900377763 1.37335215455579 4.66066861630132 0.771778573323796 4.66066861630132 0.775012363057934 4.44541991842472 1.13358006356016 4.34466123934778 1.31349376557639 4.55324269589555 0.97197103323405 4.67512213491715 0.771778573323796 4.67512213491715 0.775012363057934 4.55641924184057 0.97197103323405 4.55324269589555 1.00171785505597 4.55641924184057 1.00171785505597 4.34466123934778 1.37335215455579 4.55324269589555 1.13358006356016 4.44541991842472 1.31349376557639 4.55641924184057 1.13358006356016 4.66066861630132 0.97197103323405 4.67512213491715 0.97197103323405 4.66066861630132 1.00171785505597 4.44541991842472 1.37335215455579 4.67512213491715 1.00171785505597 4.72070555953133 0.97197103323405 4.72070555953133 1.00171785505597 4.66066861630132 1.13358006356016 4.55324269589555 1.31349376557639 4.55641924184057 1.31349376557639 4.67512213491715 1.13358006356016 4.55324269589555 1.37335215455579 4.55641924184057 1.37335215455579 4.72070555953133 1.13358006356016 4.75728952629506 1.13358006356016 4.66066861630132 1.31349376557639 4.67512213491715 1.31349376557639 4.78501918223819 1.13358006356016 4.66066861630132 1.37335215455579 4.67512213491715 1.37335215455579 4.72070555953133 1.31349376557639 4.44541991842472 1.78805797863436 4.72070555953133 1.37335215455579 4.75728952629506 1.31349376557639 4.78501918223819 1.31349376557639 4.75728952629506 1.37335215455579 4.79453454783475 1.31349376557639 4.78501918223819 1.37335215455579 4.79453454783475 1.37335215455579 4.55324269589555 1.78805797863436 4.55641924184057 1.78805797863436 4.44541991842472 1.98109797124912 4.66066861630132 1.78805797863436 4.55324269589555 1.98109797124912 4.55641924184057 1.98109797124912 4.67512213491715 1.78805797863436 4.72070555953133 1.78805797863436 4.75728952629506 1.78805797863436 4.66066861630132 1.98109797124912 4.78501918223819 1.78805797863436 4.67512213491715 1.98109797124912 4.79453454783475 1.78805797863436 4.72070555953133 1.98109797124912 4.84253588202024 1.78805797863436 4.75728952629506 1.98109797124912 4.78501918223819 1.98109797124912 4.79453454783475 1.98109797124912 4.84253588202024 1.98109797124912 5.01361912263582 1.98109797124912 6 14 12 23 22 16 23 16 1 24 23 1 25 1 3 25 24 1 26 25 3 27 22 23 27 23 24 28 26 3 29 27 24 30 29 24 30 24 25 31 3 4 31 28 3 32 21 22 32 22 27 33 25 26 33 30 25 34 27 29 34 32 27 35 33 26 35 26 28 36 29 30 36 34 29 37 20 21 37 21 32 37 32 34 38 31 4 39 34 36 39 20 37 39 37 34 40 28 31 40 35 28 40 31 38 41 30 33 41 36 30 42 33 35 42 41 33 43 36 41 43 39 36 44 43 41 44 41 42 45 4 5 45 38 4 46 5 2 46 45 5 47 38 45 47 40 38 48 40 47 48 42 35 48 35 40 49 44 42 49 42 48 50 20 39 51 20 50 52 48 47 53 45 46 53 47 45 54 2 7 54 46 2 54 53 46 55 49 48 55 48 52 56 51 50 56 50 39 56 39 43 57 51 56 58 56 43 58 57 56 58 43 44 59 57 58 60 19 20 60 20 51 61 52 47 61 47 53 62 53 54 62 61 53 63 49 55 63 44 49 63 58 44 63 59 58 64 59 63 65 55 52 65 52 61 65 61 62 66 65 62 67 51 57 67 60 51 68 19 60 68 60 67 69 57 59 69 67 57 70 68 67 70 67 69 71 54 7 71 62 54 72 63 55 72 55 65 72 64 63 73 64 72 74 7 8 74 71 7 74 66 62 74 62 71 75 59 64 75 69 59 75 70 69 75 64 73 76 19 68 77 70 75 78 68 70 78 76 68 79 72 65 80 73 72 80 72 79 81 79 65 81 80 79 81 65 66 81 66 74 82 80 81 83 70 77 83 78 70 84 73 80 84 75 73 85 18 19 85 19 76 86 77 75 86 75 84 87 85 76 87 76 78 88 17 18 88 18 85 88 85 87 89 81 74 90 82 81 90 81 89 91 77 86 91 83 77 92 87 78 92 83 91 92 78 83 93 80 82 93 84 80 94 74 8 94 89 74 94 90 89 95 90 94 95 94 8 96 93 82 96 82 90 97 93 96 97 86 84 97 84 93 98 97 96 99 17 88 99 88 87 99 87 92 100 91 86 100 86 97 100 97 98 101 92 91 101 91 100 101 99 92 102 100 98 103 90 95 103 96 90 103 98 96 104 103 95 105 98 103 106 17 99 106 99 101 107 103 104 107 105 103 108 8 9 108 95 8 108 104 95 108 107 104 109 108 9 109 107 108 110 102 98 110 98 105 111 101 100 111 100 102 111 106 101 112 111 102 113 110 105 113 105 107 114 111 112 114 106 111 115 114 112 116 113 107 116 107 109 117 116 109 117 109 9 118 102 110 118 112 102 119 110 113 119 118 110 120 9 10 120 117 9 121 112 118 121 115 112 122 118 119 122 121 118 123 116 117 123 119 113 123 122 119 123 113 116 124 17 106 124 106 114 125 122 123 126 123 117 126 117 120 127 126 120 128 125 123 128 123 126 128 126 127 129 10 11 129 120 10 129 127 120 130 128 127 130 127 129 131 129 11 131 130 129 132 124 114 132 114 115 133 132 115 134 13 17 134 124 132 134 17 124 135 133 115 135 115 121 136 13 134 136 132 133 136 134 132 137 13 136 137 136 133 138 135 121 138 121 122 139 122 125 139 125 128 139 138 122 140 139 128 141 133 135 141 13 137 141 137 133 142 128 130 142 140 128 143 15 13 143 135 138 143 13 141 143 141 135 144 130 131 144 142 130 145 139 140 145 138 139 145 15 143 145 143 138 146 131 11 146 11 12 146 144 131 147 15 145 147 145 140 147 140 142 148 147 142 148 15 147 149 142 144 149 144 146 149 148 142 149 15 148 150 14 15 150 15 149 150 149 146 151 146 12 151 150 146 151 14 150 151 12 14
+9 7 1 104.611267337447
+307925.973440302 14604.2958348035 20688.0235446493 307904.948497207 14218.5045578902 17391.0000223844 316000 7485.11428493578 17391 311957.36614133 11187.5680422803 17391 316000 7836.69546463271 20687.9999999965 316000 7442.90448471324 18515.409155515 316000 7550.33222424823 19617.0640605255 313191.59263384 10621.2168054632 20688 311208.405776928 12272.3235346948 20688 12.6415305104924 5.60612573780297 12.6296982582883 5.00534363695293 17.3505413496733 4.55641924184057 14.9325502538492 4.81604741012963 17.3505413496733 5.24221906303344 17.3505413496733 4.78501918223819 17.3505413496733 5.01361912263582 15.6557266679972 5.40549462611673 14.5000648819776 5.49358866346311 9 1 2 9 2 4 8 9 4 6 4 3 7 4 6 7 8 4 5 8 7
+9 7 1 112.154364325028
+307964.469558417 15409.7734874065 23788.9591780442 307925.8018293 14604.5293932801 20688.0000004931 316000 7836.69546463271 20687.9999999966 311661.828196182 11915.6378238231 20688 313917.030298943 9953.89695457948 20688 316000 9499.9729861176 23769.528316916 316000 8287.05842911125 21750.5222253613 316000 8855.30753603589 22777.9637401897 312502.203483842 12436.7588939963 23780.5652747058 12.6628176644904 6.1822479302895 12.6414025162435 5.60613001417962 17.3505413496733 5.24221906303494 14.7612582340304 5.47511062452639 16.0870818901182 5.36802600043518 17.3505413496733 5.94433466832183 17.3505413496733 5.47625759812957 17.3505413496733 5.7102961332257 15.2500637207519 6.07432231313464 4 1 2 9 4 5 9 1 4 7 5 3 8 5 7 6 9 5 6 5 8
+178 331 1 64.5287785187472
+320023.238828406 0.0410607425918732 20688.000015064 321186.316854091 0.0410607322220014 23752.7065407115 320236.409499229 0.04106073196 21739.3738588042 320554.416097269 0.04106073196 22613.0336415024 320857.529103008 0.04106073196 23216.4595779815 318204.686108146 7327.42064239695 23761.6627563784 321240.367552707 1696.15779612447 23753.1627980478 321207.408025652 3362.57288300682 23753.0593924461 321092.738475885 3896.93838366809 23753.5084622686 320905.407308529 4364.4856801984 23755.3941464548 320582.366378957 4883.58816382858 23758.2353193284 319451.325634475 6091.53803802708 23760.4561489148 316092.13492912 9412.51880139814 23769.0967131488 316000 9499.97298611761 23769.528316916 316000 7836.69546463271 20687.9999999966 316000 8559.03907722345 22268.6778358157 317786.218491196 5935.51351845546 20688 318859.084806481 4925.53822980876 20688.0000000017 319299.517399768 4454.10171997011 20688.0000000852 319583.357406698 4050.91155922 20688.0000001263 319787.817362946 3634.17252996008 20688.000000084 319929.533393279 3156.34508250228 20688.0000000126 320045.494368117 1687.34497526493 20688 317932.194646845 6060.70364410348 21380.0837112561 318681.103298817 5506.69466119318 21753.4170378154 318778.790444377 5568.0346812956 22050.287478049 317894.90391506 6026.92635030294 21218.3006370655 317528.413110705 6286.3768234188 20933.0466791371 317864.351068603 6000.5149563829 21080.2876735547 319101.059810865 5798.84874727744 22922.2900903104 319649.687632959 5274.7100184272 22942.5087982165 319815.737811989 5370.2660356626 23300.4772965554 318964.263390667 5696.02599363187 22568.1429110702 317553.597466322 6314.95414583897 21070.3201796822 318003.72985792 6129.66486712508 21673.4954134651 317584.344625371 6351.41350497949 21231.2662695859 318066.817579891 6194.46962562727 21917.3259298114 318864.808939755 5625.65126461647 22296.8363934152 319285.257245922 5947.5917169453 23372.9216476892 317643.351368095 6425.61767253594 21523.2467145007 318139.86117864 6273.62596869031 22185.7752517252 317695.413472606 6495.13272786698 21765.9784786657 318240.49355223 6389.23499019372 22536.3547519865 317755.716039083 6579.82319989687 22033.3206101402 317838.834659965 6703.16893324598 22382.6296105317 318376.275217138 6556.30563124169 22982.6022100446 318498.964405357 6717.74537610936 23366.3805138251 317951.053514814 6880.83582800823 22827.5784558376 316061.856855879 7776.86564071691 20707.0104393248 320113.531501181 1565.45658660915 21092.8726517132 318052.517691253 7051.96553460155 23210.560918067 320110.873820433 1699.67284395258 21071.9991715533 320162.987304914 1573.07186038976 21321.2275234451 316064.186543374 7881.84668121142 20994.1508603847 320160.032980799 1707.76840195302 21299.6056726902 316066.241324888 7978.17964390479 21233.3810764765 316068.620664456 8093.5584312222 21497.5427146854 320230.80408743 1582.665024885 21587.3086415956 320239.419064221 1583.83314343714 21618.2593539244 316071.899296156 8258.56353699803 21843.9978986549 320227.370485132 1717.99079744883 21564.8224872697 316076.324431087 8491.2981927303 22287.9711495974 320235.920230655 1719.23722936845 21595.6733784373 320327.480140937 1595.30533858385 21907.6292680222 316080.324443593 8711.00924483166 22673.088108841 316086.322004517 9056.95757061627 23233.4029899144 320323.273856057 1731.49640975991 21884.1193270689 320486.840392923 1614.59442867981 22343.6298269364 320542.075940758 1620.98568307716 22476.4187671426 320481.224202257 1752.17406180968 22318.7693782018 320535.944597164 1759.04144349468 22451.1598548477 319951.156039732 3078.04387810386 20717.8571040338 320829.396286899 1652.77929461142 23069.7340214808 320874.806695797 1657.65534570619 23152.6717779417 319995.176428321 3088.2689312356 20934.8428646155 320820.449258897 1793.30152290249 23042.7889274979 319973.166261962 3166.54143272122 20904.1805686169 320865.399813917 1798.56756270259 23125.5039818978 320054.670814612 3101.75757377353 21187.8442746949 320062.176643264 3103.442313668 21217.2878673311 320032.018526109 3179.96363799266 21156.3228016329 320039.440609688 3181.64429928615 21185.6677070503 321139.778013881 1685.66245311496 23597.9036100772 320138.41641986 3120.43107586099 21492.7424173605 321127.636441766 1828.85891017463 23569.5967827995 320114.804331672 3198.63480963864 21460.2141872184 319823.500590297 3562.19146319369 20725.311124329 319878.651549161 3574.60301430979 20972.8783986891 319885.595516438 3576.18520087007 21001.6987330136 320274.851194139 3150.60274569447 21908.5216934487 319842.460728631 3646.29818052596 20934.6244187987 319849.306705434 3647.84646135599 20963.3449914262 320249.591357963 3228.96030638902 21874.6844741305 320321.830294473 3160.99116338906 22035.3732561138 320295.987008759 3239.43621494114 22001.1542940504 319956.00005515 3592.46435421342 21271.4275941456 319918.703163859 3663.8482230614 21232.1595616595 319635.980069219 3979.80189339322 20735.419163047 319642.321058716 3981.12533150161 20763.6594362965 320081.593492107 3622.51486713752 21678.9846534881 320564.628272837 3215.04616649731 22603.7234635056 320042.454259616 3693.63215875143 21638.4111542119 320124.760703079 3633.12206301676 21803.4461433971 320602.831557403 3223.62285861539 22683.381856584 320535.689766821 3294.1474765384 22567.9138993544 319706.555680076 3995.21649197835 21028.0798541364 320573.39749275 3302.8516006075 22647.3649858052 320084.979903525 3704.19917193844 21762.4950260195 319652.333171678 4066.20915667717 20979.667847332 320825.166547621 3273.98670160013 23111.8871141273 319820.979680804 4022.85587524853 21428.0835681824 320792.820088269 3354.05166018782 23074.8170879713 320347.476379757 3689.83028832338 22361.8814053954 320909.349225708 3293.26955740804 23261.6757067162 319764.587938556 4093.20075867767 21378.2979315843 319860.279232988 4032.96917413695 21550.3667837882 320382.479692677 3699.00389370917 22440.2525220935 320304.348094171 3760.9980135203 22319.3742737221 320875.890631664 3373.68688320706 23224.2610562235 319803.141579824 4103.16152883984 21500.1865869932 320338.821585267 3770.22086572213 22397.5445647967 321011.786891453 3316.9023225853 23436.7442984347 319328.854765776 4425.41169783826 20711.0204835222 320976.970092097 3397.77090021628 23398.9413419769 320586.062770209 3753.53931966911 22862.2311171923 320539.312639835 3825.17811286198 22818.5080709147 320062.929967287 4089.05896703761 22099.863696944 320663.103979943 3774.66419905976 23009.8868324811 319429.215553611 4448.26141963753 21102.5911461857 320094.770271875 4098.36164131566 22177.0854795755 320001.950165682 4158.86640785408 22048.0734364183 319398.820618987 4476.63410858671 21078.9911538463 320615.180799011 3846.51337621412 22965.8327469687 319463.700516306 4457.19850239834 21222.4579610828 320033.187860043 4168.15561968519 22125.0892197459 320756.831147859 3800.70257054246 23182.5520952988 319432.959706532 4485.47484408636 21198.6957358171 320707.479802701 3872.83926632418 23138.1249656682 320279.939686803 4154.52061189113 22593.2658551404 320935.776572928 3851.41011400626 23494.7485161884 320214.860062239 4224.41719864848 22540.2330376782 320883.6976672 3924.18053416448 23449.6807185755 320350.011259392 4176.58649438547 22739.0330843803 319641.662300797 4509.90687054099 21762.1283619515 320283.611792214 4246.58946503739 22685.6632310106 319609.156073529 4537.88427406122 21737.708808614 319669.642630735 4518.99202420741 21838.0967923865 320435.262363124 4203.97234850585 22909.5700665979 319636.861299558 4546.94556099901 21813.5936737393 320367.260008578 4274.14655473865 22855.8203276229 318886.794802936 4933.42175781979 20805.1942477681 320598.043230178 4257.795719808 23218.1061696843 319832.454381436 4575.09110061451 22247.9804128086 320526.989592973 4328.40864145577 23163.7017811332 319798.082786473 4602.99439539739 22223.0581531865 319894.103463656 4597.58378552786 22391.7022568375 320740.855437377 4306.57068668534 23473.9768850426 319859.133900905 4625.5010509271 22366.6439763212 320667.135597443 4377.67407673498 23419.0530358453 319969.13452202 4625.76660141855 22559.9334216904 319933.439994609 4653.72120629595 22534.7217608789 319033.574959813 4980.92542277319 21334.0771857802 319056.704538238 4989.59525823546 21408.6754043017 320112.481633255 4681.8529448328 22864.4903218736 320075.410067668 4709.93305466489 22839.0135236505 320238.330523199 4733.31217410754 23117.1923442855 319191.502885056 5044.81889119472 21811.688171146 320200.058201709 4761.55339704126 23091.5035608237 319242.627132771 5067.55308667271 21953.179995174 320383.437018795 4795.03157361788 23395.1884642043 319304.902431274 5096.38242291792 22118.8955321443 318459.37062337 5388.28813216838 20978.5022664441 320343.789321209 4823.51009574189 23369.2693845624 318478.220455745 5396.91837950794 21052.0607733391 319424.029544618 5154.64165171982 22419.0989715853 318588.284978385 5453.09305324865 21449.8398064872 319528.764325109 5208.88841500434 22668.3129102919 318630.107868881 5476.62537953709 21589.6268551732 4.66066861627364 1.05429473742277e-005 5.17908083949119 9.6252924013399e-006 4.83108865549559 1.0278801480063e-005 4.97735345022551 1.00195004103412e-005 5.08241451218191 9.81832175174776e-006 5.81238440895918 2.35018289333888 5.20806417322807 0.414130104261995 5.30468759201682 0.877861025429611 5.35715165805044 1.05185267177276 5.41554001754554 1.22135187216447 5.49287115526688 1.42717867932867 5.68162590205254 1.9207416707023 5.94003576959449 2.97499311156989 5.94433466832183 3 5.24221906303344 3 5.59327686567764 3 5.09739741621206 2.21035556138763 4.9543329152774 1.68712544020903 4.87980321288109 1.44185284546968 4.82590813862084 1.25351636388256 4.7815792185729 1.08035034150741 4.74379460688466 0.905176963032726 4.68046468199539 0.451854389812949 5.24221906303344 2.21035556138763 5.24221906303344 1.9207416707023 5.30468759201682 1.9207416707023 5.20806417322807 2.21035556138763 5.17908083949119 2.35018289333888 5.17908083949119 2.21035556138763 5.49287115526688 1.9207416707023 5.41554001754554 1.68712544020903 5.49287115526688 1.68712544020903 5.41554001754554 1.9207416707023 5.20806417322807 2.35018289333888 5.30468759201682 2.21035556138763 5.24221906303344 2.35018289333888 5.35715165805044 2.21035556138763 5.35715165805044 1.9207416707023 5.59327686567764 1.9207416707023 5.30468759201682 2.35018289333888 5.41554001754554 2.21035556138763 5.35715165805044 2.35018289333888 5.49287115526688 2.21035556138763 5.41554001754554 2.35018289333888 5.49287115526688 2.35018289333888 5.59327686567764 2.21035556138763 5.68162590205254 2.21035556138763 5.59327686567764 2.35018289333888 5.24221906303344 2.97499311156989 4.74379460688466 0.414130104261995 5.68162590205254 2.35018289333888 4.74379460688466 0.451854389812949 4.7815792185729 0.414130104261995 5.30468759201682 2.97499311156989 4.7815792185729 0.451854389812949 5.35715165805044 2.97499311156989 5.41554001754554 2.97499311156989 4.82590813862084 0.414130104261995 4.83108865549559 0.414130104261995 5.49287115526688 2.97499311156989 4.82590813862084 0.451854389812949 5.59327686567764 2.97499311156989 4.83108865549559 0.451854389812949 4.87980321288109 0.414130104261995 5.68162590205254 2.97499311156989 5.81238440895918 2.97499311156989 4.87980321288109 0.451854389812949 4.9543329152774 0.414130104261995 4.97735345022551 0.414130104261995 4.9543329152774 0.451854389812949 4.97735345022551 0.451854389812949 4.74379460688466 0.877861025429611 5.08241451218191 0.414130104261995 5.09739741621206 0.414130104261995 4.7815792185729 0.877861025429611 5.08241451218191 0.451854389812949 4.7815792185729 0.905176963032726 5.09739741621206 0.451854389812949 4.82590813862084 0.877861025429611 4.83108865549559 0.877861025429611 4.82590813862084 0.905176963032726 4.83108865549559 0.905176963032726 5.17908083949119 0.414130104261995 4.87980321288109 0.877861025429611 5.17908083949119 0.451854389812949 4.87980321288109 0.905176963032726 4.7815792185729 1.05185267177276 4.82590813862084 1.05185267177276 4.83108865549559 1.05185267177276 4.9543329152774 0.877861025429611 4.82590813862084 1.08035034150741 4.83108865549559 1.08035034150741 4.9543329152774 0.905176963032726 4.97735345022551 0.877861025429611 4.97735345022551 0.905176963032726 4.87980321288109 1.05185267177276 4.87980321288109 1.08035034150741 4.82590813862084 1.22135187216447 4.83108865549559 1.22135187216447 4.9543329152774 1.05185267177276 5.08241451218191 0.877861025429611 4.9543329152774 1.08035034150741 4.97735345022551 1.05185267177276 5.09739741621206 0.877861025429611 5.08241451218191 0.905176963032726 4.87980321288109 1.22135187216447 5.09739741621206 0.905176963032726 4.97735345022551 1.08035034150741 4.87980321288109 1.25351636388256 5.17908083949119 0.877861025429611 4.9543329152774 1.22135187216447 5.17908083949119 0.905176963032726 5.08241451218191 1.05185267177276 5.20806417322807 0.877861025429611 4.9543329152774 1.25351636388256 4.97735345022551 1.22135187216447 5.09739741621206 1.05185267177276 5.08241451218191 1.08035034150741 5.20806417322807 0.905176963032726 4.97735345022551 1.25351636388256 5.09739741621206 1.08035034150741 5.24221906303344 0.877861025429611 4.87980321288109 1.42717867932867 5.24221906303344 0.905176963032726 5.17908083949119 1.05185267177276 5.17908083949119 1.08035034150741 5.08241451218191 1.22135187216447 5.20806417322807 1.05185267177276 4.9543329152774 1.42717867932867 5.09739741621206 1.22135187216447 5.08241451218191 1.25351636388256 4.9543329152774 1.44185284546968 5.20806417322807 1.08035034150741 4.97735345022551 1.42717867932867 5.09739741621206 1.25351636388256 5.24221906303344 1.05185267177276 4.97735345022551 1.44185284546968 5.24221906303344 1.08035034150741 5.17908083949119 1.22135187216447 5.30468759201682 1.05185267177276 5.17908083949119 1.25351636388256 5.30468759201682 1.08035034150741 5.20806417322807 1.22135187216447 5.08241451218191 1.42717867932867 5.20806417322807 1.25351636388256 5.08241451218191 1.44185284546968 5.09739741621206 1.42717867932867 5.24221906303344 1.22135187216447 5.09739741621206 1.44185284546968 5.24221906303344 1.25351636388256 4.97735345022551 1.68712544020903 5.30468759201682 1.22135187216447 5.17908083949119 1.42717867932867 5.30468759201682 1.25351636388256 5.17908083949119 1.44185284546968 5.20806417322807 1.42717867932867 5.35715165805044 1.22135187216447 5.20806417322807 1.44185284546968 5.35715165805044 1.25351636388256 5.24221906303344 1.42717867932867 5.24221906303344 1.44185284546968 5.08241451218191 1.68712544020903 5.09739741621206 1.68712544020903 5.30468759201682 1.42717867932867 5.30468759201682 1.44185284546968 5.35715165805044 1.42717867932867 5.17908083949119 1.68712544020903 5.35715165805044 1.44185284546968 5.20806417322807 1.68712544020903 5.41554001754554 1.42717867932867 5.24221906303344 1.68712544020903 5.08241451218191 1.9207416707023 5.41554001754554 1.44185284546968 5.09739741621206 1.9207416707023 5.30468759201682 1.68712544020903 5.17908083949119 1.9207416707023 5.35715165805044 1.68712544020903 5.20806417322807 1.9207416707023 24 25 26 24 27 25 28 17 29 30 31 32 30 33 31 34 29 27 34 27 24 34 28 29 35 24 26 36 34 24 36 24 35 37 26 38 37 38 33 37 35 26 39 30 32 39 32 12 40 36 35 41 37 33 42 37 41 42 35 37 42 40 35 43 33 30 43 41 33 44 42 41 45 41 43 45 44 41 46 30 39 46 43 30 46 45 43 47 12 6 47 39 12 47 46 39 48 45 46 49 15 17 49 28 34 50 1 3 49 34 36 50 23 1 49 17 28 51 47 6 51 46 47 52 23 50 51 48 46 53 50 3 54 15 49 54 36 40 54 40 42 54 49 36 55 50 53 55 52 50 56 15 54 56 54 42 57 16 15 58 53 3 57 42 44 57 15 56 59 58 3 57 56 42 60 44 45 60 16 57 60 57 44 61 55 53 62 60 45 61 53 58 62 45 48 62 16 60 63 58 59 63 61 58 64 3 4 65 48 51 65 16 62 65 62 48 66 6 13 66 13 14 66 14 16 66 16 65 64 59 3 66 51 6 66 65 51 67 59 64 67 63 59 68 64 4 69 68 4 70 67 64 70 64 68 71 68 69 71 70 68 72 22 23 72 23 52 73 4 5 73 69 4 74 5 2 74 73 5 75 52 55 75 72 52 76 71 69 76 69 73 77 22 72 77 72 75 78 73 74 78 76 73 79 55 61 79 75 55 80 61 63 80 79 61 81 77 75 81 75 79 82 79 80 82 81 79 83 2 7 83 74 2 84 63 67 84 80 63 85 78 74 85 7 8 85 83 7 85 74 83 86 80 84 86 82 80 87 21 22 87 22 77 88 87 77 88 77 81 88 21 87 89 81 82 89 82 86 89 88 81 90 84 67 90 67 70 91 21 88 92 88 89 92 91 88 93 86 84 93 84 90 94 90 70 94 70 71 94 71 76 95 93 90 95 90 94 96 89 86 96 92 89 97 92 96 98 20 21 98 21 91 98 91 92 99 20 98 99 92 97 99 98 92 100 86 93 100 96 86 100 97 96 101 94 76 102 97 100 103 93 95 103 100 93 103 102 100 104 76 78 104 78 85 104 101 76 105 95 94 105 94 101 105 103 95 106 99 97 107 101 104 107 105 101 108 102 103 109 20 99 109 99 106 110 104 85 111 97 102 111 106 97 112 104 110 112 107 104 113 103 105 113 108 103 114 110 85 115 106 111 115 109 106 116 111 102 116 102 108 117 107 112 117 113 105 117 105 107 118 116 108 118 108 113 119 110 114 119 112 110 120 111 116 120 115 111 121 113 117 121 118 113 122 119 114 122 114 85 122 85 8 123 19 20 123 20 109 124 119 122 124 122 8 125 121 117 125 117 112 126 121 125 127 116 118 128 112 119 128 119 124 128 126 125 128 125 112 129 109 115 129 123 109 129 19 123 130 118 121 130 127 118 130 121 126 131 120 116 131 116 127 132 18 19 132 19 129 133 126 128 134 115 120 134 120 131 134 129 115 134 132 129 135 127 130 135 131 127 136 128 124 136 133 128 137 132 134 138 133 136 139 130 126 140 8 9 140 124 8 140 136 124 140 138 136 141 135 130 141 130 139 142 140 9 142 138 140 143 139 126 143 126 133 143 133 138 144 134 131 144 137 134 145 139 143 145 141 139 146 137 144 147 144 131 147 135 141 147 131 135 147 146 144 148 143 138 149 146 147 150 145 143 150 143 148 151 18 132 151 132 137 151 137 146 152 148 138 152 138 142 153 147 141 153 141 145 153 149 147 154 150 148 154 148 152 155 149 153 156 153 145 156 155 153 156 145 150 157 9 10 157 152 142 157 142 9 158 155 156 159 154 152 159 152 157 159 157 10 160 150 154 160 156 150 160 158 156 161 158 160 162 151 146 163 149 155 163 162 146 163 146 149 164 161 160 164 160 154 165 161 164 166 164 154 166 165 164 166 154 159 167 163 155 168 165 166 169 155 158 169 158 161 169 167 155 170 10 11 170 159 10 170 166 159 170 168 166 171 169 161 172 18 151 172 17 18 172 151 162 173 170 11 173 168 170 174 162 163 174 17 172 174 163 167 174 172 162 175 161 165 175 171 161 176 174 167 177 165 168 177 168 173 177 175 165 178 169 171 178 167 169 178 176 167 25 178 171 31 177 173 26 25 171 26 171 175 32 31 173 32 11 12 32 173 11 38 26 175 38 175 177 29 176 178 29 17 174 29 174 176 27 29 178 27 178 25 33 38 177 33 177 31
+9 7 1 112.619148254795
+316000 -7485.11428493578 17391 307905.158324757 -14218.672816369 17390.9886923472 312110.273719605 -11060.8033691478 17391 307925.943077942 -14604.4335260146 20688.0003343276 316000 -7836.69546463271 20687.9999999966 312180.649757394 -11493.1069294891 20688 314154.605140053 -9727.53697488436 20688 316000 -7550.33222424823 19617.0640605255 316000 -7442.90448471324 18515.409155515 4.55641924184057 17.3505413496733 5.00533765566004 12.6297807605887 4.80758045839211 15.0214017246249 5.60612585402319 12.6414841693924 5.24221906303494 17.3505413496733 5.45281822026417 15.0624106163634 5.35507146216945 16.2293507581441 5.01361912263582 17.3505413496733 4.78501918223819 17.3505413496733 6 3 2 6 2 4 9 1 3 7 3 6 7 9 3 8 9 7 5 8 7
+132 241 1 43.7012219604535
+320467.125397541 0.02053036598 17391.0010676384 316000 -7485.11428493578 17391 320352.692895412 -1808.2500536073 17391 320128.582967256 -2793.02409264656 17391 319860.689389686 -3453.77605681891 17391 319600.575171439 -3898.68177087637 17391 318061.856480255 -5521.21718846103 17391 316000 -7836.69546463271 20687.9999999965 316000 -7442.90448471324 18515.409155515 316000 -7550.33222424823 19617.0640605255 320023.233481511 0.02053036598 20688.0006639233 317374.387638373 -6357.11761794269 20688 318493.591709174 -5264.38737374253 20688 319273.238010553 -4486.01805965329 20688 319528.315745044 -4139.89549241463 20688 319757.594662671 -3708.50654968216 20688 319907.990406935 -3250.62501529024 20688 320045.274425179 -1765.86583274309 20688 319981.656234526 0.04106073196 19568.2386729716 320129.699617494 0.04106073196 18457.105523298 320274.847933737 0.04106073196 17916.6874807581 320316.89264 -1716.32024840609 17533.726391502 320307.012045639 -1808.71506999602 17525.2891617006 320265.794800631 -1716.71693654909 17694.4114162169 320256.674959272 -1809.06579518156 17685.6874790068 320222.247479591 -1717.2808561401 17843.9561961118 320219.602016277 -1717.32313963878 17853.4819237055 320213.790334413 -1809.59226346576 17834.9529702837 320211.185635414 -1809.63234499959 17844.4605218625 320097.519804935 -1720.80122350675 18374.4265744253 320091.079362884 -1813.02718589052 18364.3482876064 320023.947064748 -1725.91477371682 18843.2196990522 320087.273004244 -2792.03665532545 17547.287879143 320018.881150802 -1818.13728525011 18832.1014224768 320052.540438445 -2791.43323177303 17692.6588626838 320050.436449506 -2791.40224920247 17701.9139413548 319957.314930617 -3213.43877899292 17455.1939295238 319976.728140378 -1735.6445923249 19461.898456206 319926.360826099 -3211.79280338346 17598.3472533518 319924.488244339 -3211.69517215515 17607.45934332 319972.929200086 -1827.98762986175 19449.3130814858 319954.466369858 -2791.13683846254 18207.2822523198 319832.102252936 -3450.83053514606 17532.6418554393 319830.357843013 -3450.68127845588 17541.662338718 319977.237818684 -1745.14068963173 19919.6734530779 319973.992948962 -1837.68055645096 19905.9545819524 319898.818634465 -2793.47621822042 18660.9748012689 319839.551922012 -3207.77929381385 18104.7328291338 319714.55514362 -3697.04573601739 17454.3912421992 319712.936741727 -3696.83116739629 17463.3093524731 319751.47582941 -3443.90779192692 18033.7992036365 319791.2533601 -3206.91300541625 18550.7689347798 320027.477775716 -1761.81483168941 20555.3423592784 320024.474998577 -1854.80779140194 20540.0126689927 319867.706882854 -2800.75474725258 19258.6043475476 319639.949132322 -3686.42613851644 17949.7481071122 319707.106418385 -3440.470627552 18475.0482439925 319532.201465795 -3884.81092006466 17872.4913174669 319874.847113787 -2809.57105770122 19700.2655910524 319766.349942149 -3210.27195482707 19137.9423073704 319599.299496672 -3679.68669622491 18385.748398509 319361.624145115 -4154.41781803508 17755.5900214787 319494.34638293 -3874.8795460278 18303.9749308444 319685.334952992 -3440.56514866841 19055.7668989554 319775.641897114 -3216.55012209617 19571.7281554352 319927.027375435 -2827.31485257663 20313.2087696765 319580.296610922 -3675.51705398998 18959.4623811932 319327.213230535 -4139.48728135775 18180.678779545 319944.174906827 -2831.90550302824 20441.1168660037 319695.508970172 -3444.60819013663 19484.7416099466 319067.667236544 -4543.04353669303 17565.0770926912 319477.2592998 -3866.54976753989 18871.7098727583 319591.024007732 -3676.57019230172 19383.2608009255 319827.458601529 -3231.49603032296 20173.7161440126 319844.041477017 -3235.63345847347 20299.353520895 319037.547429683 -4519.77366517605 17980.6647971156 319312.234928488 -4124.60565174104 18740.0065134391 319488.166783637 -3864.64746500003 19291.1202759546 319746.582550878 -3456.84168358801 20080.0972416521 319762.723540291 -3460.48558900647 20204.3679458979 319640.81769293 -3685.03695897946 19971.5347538523 319323.001383362 -4118.01047027236 19153.2834926527 319656.393241541 -3687.96795830276 20094.3534785496 319024.673942266 -4493.93553395368 18527.5836135251 319536.515991375 -3869.315698028 19873.4280218611 319551.543358083 -3871.51324196653 19995.0285087894 319716.147161764 -3699.89549130199 20474.3225697465 319034.510822829 -4479.45412029569 18931.8600407953 319368.824893369 -4116.57050537343 19727.2969903446 319753.401137372 -3707.75499973064 20667.7260183338 319382.985925284 -4117.573910644 19847.2100629493 319609.060904024 -3881.33540864257 20371.3085623896 319644.860848392 -3888.23153175218 20562.888502105 319648.871715655 -3889.03320232823 20582.9656794361 318208.114928304 -5381.39221834192 17471.9592416222 319437.08042711 -4123.92703520312 20218.3931727044 319075.634050156 -4467.66259132567 19493.767362708 319088.317322192 -4466.62497538451 19611.2265676616 319470.704150632 -4129.20708604882 20407.4609739961 319474.469903909 -4129.84591572268 20427.2784908042 318197.344559747 -5328.77981466815 17993.0534747901 319136.751689442 -4466.99935975183 19975.0166313173 318051.307673872 -5464.74258048127 17908.8236488631 319166.858484602 -4469.4597672059 20160.4515137655 319170.230678025 -4469.81286392611 20179.8939521417 318203.026655964 -5295.23929649089 18378.5664454554 319218.488704014 -4476.23958147163 20435.788994538 318056.284326827 -5428.64433970599 18291.9049610878 318230.49215581 -5258.67963981214 18915.2039345212 318239.169261875 -5252.7922421775 19027.5375742618 318081.491184765 -5388.896245772 18825.208368156 318089.507985051 -5382.40659594665 18936.8578081554 318272.665236101 -5239.02987272389 19375.880229848 318293.676812639 -5234.86322588078 19553.7223490888 318296.03706913 -5234.54637198141 19572.3808332152 318120.541998279 -5366.94319936827 19283.1224419206 318140.053494304 -5362.01427919528 19459.9342765401 318142.246773173 -5361.62192300146 19478.4860435881 318329.936461891 -5232.62926651175 19818.1892894328 317138.658170196 -6309.54831449803 17829.046157302 318173.774963704 -5358.79414742459 19722.9156198649 318368.627226628 -5235.12474645692 20060.9156567102 318209.808263334 -5360.55387406689 19964.3353332338 317151.779165295 -6261.96917356101 18348.7764712249 317156.064830568 -6254.35263204846 18457.5195731587 317172.843125959 -6236.62198897589 18794.7149216494 317183.488989992 -6231.29129589279 18966.8958558049 317184.689086003 -6230.88780351736 18984.9628350745 317202.001159924 -6228.48474988464 19223.0407204895 317221.898299738 -6231.75371417602 19458.2862704686 317286.926081521 -6269.76525429963 20067.1242841241 317289.656471701 -6272.01632793581 20089.1231780643 0 4.12238592198715 3 4.55641924184057 0.50092891839968 4.13513158541255 0.799718880768969 4.15847721745775 1.02090943483063 4.18620564468228 1.18547815158036 4.21345187849667 1.9406455271101 4.37951672589549 3 5.24221906303344 3 4.78501918223819 3 5.01361912263582 1.38777878078145e-017 4.66066861626444 2.40203152494413 5.13815559215955 1.8701307967269 5.00908436990044 1.4576570560006 4.88451782015821 1.29303246167396 4.83679131249349 1.10973659149103 4.78866511310417 0.938179654558812 4.750311070427 0.47414019773604 4.68250245855734 -1.73838787405981e-013 4.48140653980657 -1.73210169361381e-013 4.30148996727438 -1.72333541426527e-013 4.21182562234018 0.47414019773604 4.15847721745775 0.50092891839968 4.15847721745775 0.47414019773604 4.18620564468228 0.50092891839968 4.18620564468228 0.47414019773604 4.21182562234018 0.47414019773604 4.21345187849667 0.50092891839968 4.21182562234018 0.50092891839968 4.21345187849667 0.47414019773604 4.30148996727438 0.50092891839968 4.30148996727438 0.47414019773604 4.37951672589549 0.799718880768969 4.18620564468228 0.50092891839968 4.37951672589549 0.799718880768969 4.21182562234018 0.799718880768969 4.21345187849667 0.938179654558812 4.18620564468228 0.47414019773604 4.48140653980657 0.938179654558812 4.21182562234018 0.938179654558812 4.21345187849667 0.50092891839968 4.48140653980657 0.799718880768969 4.30148996727438 1.02090943483063 4.21182562234018 1.02090943483063 4.21345187849667 0.47414019773604 4.55641924184057 0.50092891839968 4.55641924184057 0.799718880768969 4.37951672589549 0.938179654558812 4.30148996727438 1.10973659149103 4.21182562234018 1.10973659149103 4.21345187849667 1.02090943483063 4.30148996727438 0.938179654558812 4.37951672589549 0.47414019773604 4.66066861626444 0.50092891839968 4.66066861626444 0.799718880768969 4.48140653980657 1.10973659149103 4.30148996727438 1.02090943483063 4.37951672589549 1.18547815158036 4.30148996727438 0.799718880768969 4.55641924184057 0.938179654558812 4.48140653980657 1.10973659149103 4.37951672589549 1.29303246167396 4.30148996727438 1.18547815158036 4.37951672589549 1.02090943483063 4.48140653980657 0.938179654558812 4.55641924184057 0.799718880768969 4.66066861626444 1.10973659149103 4.48140653980657 1.29303246167396 4.37951672589549 0.799718880768969 4.68250245855734 1.02090943483063 4.55641924184057 1.4576570560006 4.30148996727438 1.18547815158036 4.48140653980657 1.10973659149103 4.55641924184057 0.938179654558812 4.66066861626444 0.938179654558812 4.68250245855734 1.4576570560006 4.37951672589549 1.29303246167396 4.48140653980657 1.18547815158036 4.55641924184057 1.02090943483063 4.66066861626444 1.02090943483063 4.68250245855734 1.10973659149103 4.66066861626444 1.29303246167396 4.55641924184057 1.10973659149103 4.68250245855734 1.4576570560006 4.48140653980657 1.18547815158036 4.66066861626444 1.18547815158036 4.68250245855734 1.10973659149103 4.750311070427 1.4576570560006 4.55641924184057 1.29303246167396 4.66066861626444 1.10973659149103 4.78501918223819 1.29303246167396 4.68250245855734 1.18547815158036 4.750311070427 1.18547815158036 4.78501918223819 1.18547815158036 4.78866511310417 1.8701307967269 4.37951672589549 1.29303246167396 4.750311070427 1.4576570560006 4.66066861626444 1.4576570560006 4.68250245855734 1.29303246167396 4.78501918223819 1.29303246167396 4.78866511310417 1.8701307967269 4.48140653980657 1.4576570560006 4.750311070427 1.9406455271101 4.48140653980657 1.4576570560006 4.78501918223819 1.4576570560006 4.78866511310417 1.8701307967269 4.55641924184057 1.4576570560006 4.83679131249349 1.9406455271101 4.55641924184057 1.8701307967269 4.66066861626444 1.8701307967269 4.68250245855734 1.9406455271101 4.66066861626444 1.9406455271101 4.68250245855734 1.8701307967269 4.750311070427 1.8701307967269 4.78501918223819 1.8701307967269 4.78866511310417 1.9406455271101 4.750311070427 1.9406455271101 4.78501918223819 1.9406455271101 4.78866511310417 1.8701307967269 4.83679131249349 2.40203152494413 4.55641924184057 1.9406455271101 4.83679131249349 1.8701307967269 4.88451782015821 1.9406455271101 4.88451782015821 2.40203152494413 4.66066861626444 2.40203152494413 4.68250245855734 2.40203152494413 4.750311070427 2.40203152494413 4.78501918223819 2.40203152494413 4.78866511310417 2.40203152494413 4.83679131249349 2.40203152494413 4.88451782015821 2.40203152494413 5.00908436990044 2.40203152494413 5.01361912263582 8 12 10 22 1 3 22 21 1 23 3 4 23 22 3 24 21 22 25 24 22 25 22 23 26 21 24 27 20 21 27 21 26 28 24 25 28 27 26 28 26 24 29 27 28 30 20 27 31 30 27 31 27 29 32 19 20 32 20 30 32 30 31 33 25 23 33 23 4 34 32 31 35 28 25 35 25 33 36 29 28 36 28 35 37 4 5 37 35 33 37 33 4 38 19 32 39 35 37 40 36 35 40 35 39 41 32 34 41 38 32 42 31 29 42 34 31 42 29 36 42 36 40 43 37 5 43 39 37 44 39 43 44 40 39 45 11 19 45 19 38 46 45 38 46 38 41 47 34 42 48 42 40 48 47 42 48 40 44 49 5 6 49 44 43 49 43 5 50 49 6 50 44 49 51 48 44 52 47 48 53 18 11 53 11 45 54 18 53 54 53 45 54 45 46 55 34 47 55 47 52 55 41 34 56 50 6 56 44 50 56 51 44 57 52 48 57 48 51 58 56 6 59 46 41 59 54 46 59 41 55 60 55 52 61 51 56 61 57 51 61 56 58 62 58 6 63 61 58 64 52 57 64 60 52 65 59 55 65 55 60 66 59 65 66 54 59 67 64 57 67 57 61 67 61 63 68 58 62 68 63 58 69 17 18 69 18 54 69 54 66 70 60 64 70 65 60 71 6 7 71 62 6 71 68 62 72 67 63 72 63 68 73 64 67 73 70 64 73 67 72 74 66 65 75 66 74 75 17 69 75 69 66 76 68 71 77 68 76 77 72 68 78 72 77 78 73 72 79 65 70 79 74 65 80 74 79 80 17 75 80 75 74 81 73 78 81 79 70 81 70 73 82 78 77 83 79 81 83 80 79 84 82 77 84 77 76 85 81 78 86 81 85 86 83 81 87 17 80 87 80 83 87 83 86 88 82 84 89 85 78 89 78 82 89 82 88 90 16 17 90 17 87 91 86 85 91 85 89 92 87 86 93 87 92 93 90 87 94 15 16 94 16 90 94 90 93 95 76 71 95 71 7 96 86 91 96 92 86 97 89 88 98 89 97 98 91 89 99 93 92 99 94 93 99 92 96 100 15 94 100 94 99 101 88 84 101 84 76 101 76 95 102 96 91 102 91 98 103 95 7 103 101 95 104 96 102 104 99 96 105 100 99 105 99 104 106 97 88 106 88 101 107 14 15 107 15 100 107 100 105 108 101 103 108 106 101 109 97 106 109 106 108 110 98 97 110 97 109 111 109 108 112 109 111 112 110 109 113 102 98 113 98 110 114 104 102 114 102 113 115 104 114 115 105 104 116 110 112 116 113 110 117 113 116 117 114 113 118 115 114 118 114 117 119 105 115 119 115 118 119 107 105 120 7 2 120 103 7 120 108 103 121 119 118 122 13 14 122 107 119 122 119 121 122 14 107 123 13 122 123 122 121 124 108 120 124 111 108 124 2 9 124 120 2 125 112 111 125 111 124 125 124 9 126 117 116 126 116 112 126 125 9 126 112 125 127 126 9 127 117 126 128 127 9 128 118 117 128 117 127 129 121 118 129 128 9 129 118 128 130 9 10 130 129 9 130 123 121 130 121 129 131 13 123 131 130 10 131 123 130 132 12 13 132 13 131 132 10 12 132 131 10
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
+TShapes 95
+Ve
+0.0592514252469888
+318204.296811767 -7327.75514408005 23761.5936376187
+0 0
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 53.070358280000001 18.219097139999999 0.44613623619999998 60.566589360000002 17.300979609999999 0.55799841880000001 64.663330079999994 16.64876366 0.61302828789999997 70.780113220000004 11.96700573 0.62442743779999998
-53.899330139999996 18.163248060000001 1.044858217 60.288108829999999 18.42578125 1.009398818 64.948242190000002 17.283666610000001 1.025760174 69.918945309999998 14.961947439999999 1.096001029
-54.946655270000001 19.139024729999999 1.5586156849999999 60.00911713 18.98307037 1.6116827730000001 65.016891479999998 18.382038120000001 1.6106652020000001 69.923339839999997 15.87725449 1.6409964560000001
-55.764568330000003 18.950565340000001 2.447373867 59.733543400000002 19.899433139999999 2.3539123540000002 65.301231380000004 18.712757109999998 2.3616335390000001 69.061492920000006 18.605934139999999 2.4287147519999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 54.877136229999998 18.745353699999999 0.69570451970000002 60.043518069999998 17.841670990000001 0.83937382699999996 64.948829649999993 17.553913120000001 0.88402998450000003 70.161170960000007 12.8152113 0.96268367769999996
-54.886085510000001 18.74978256 1.6265054940000001 60.005241390000002 19.185029979999999 1.608615994 65.092956540000003 18.158405299999998 1.5931004289999999 69.622962950000002 16.660619740000001 1.6059371229999999
-55.029064179999999 19.925411220000001 2.5249645709999999 59.993648530000002 19.6756916 2.5362093450000001 64.996398929999998 19.337030410000001 2.5736184120000001 70.020790099999999 17.6192131 2.7022469039999999
-55.038082119999999 19.15121078 3.5815365309999998 59.9548378 20.4088192 3.64893651 65.14250183 19.38621521 3.8649113179999999 69.475143430000003 20.7708683 4.326048374
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 60.560646060000003 18.463310239999998 0.60556936260000005 64.743721010000002 16.121803280000002 0.60008114580000005 70.464477540000004 12.912498469999999 0.62864065170000005 73.398376459999994 8.7214870449999999 0.57598066329999997
-59.475872039999999 18.203905110000001 0.98701214790000003 65.103622439999995 17.468353270000001 1.031750441 70.109657290000001 14.44508839 1.0944284200000001 74.457725519999997 11.797541620000001 1.181002855
-59.19562912 19.710437769999999 1.6177821160000001 65.264846800000001 18.081317899999998 1.609415531 69.744995119999999 16.35277176 1.6398935320000001 75.755195619999995 12.43084526 1.8320217130000001
-58.113601680000002 19.101591110000001 2.3014359469999999 65.625198359999999 19.188158040000001 2.3793528080000002 69.385650630000001 17.50212479 2.4102907180000002 76.832252499999996 15.30085659 2.7175660129999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 55.056499479999999 19.785770419999999 1.561222434 59.98071289 18.85245132 1.6080559489999999 65.020675659999995 18.569110869999999 1.6761039499999999 69.936599729999998 16.139860150000001 1.8589497800000001
-54.98822784 19.369201660000002 2.551807165 59.990741730000003 19.865203860000001 2.5467615129999999 65.048820500000005 19.130342479999999 2.598058939 69.814010620000005 18.192436220000001 2.7487232690000001
-55.031013489999999 20.340091709999999 3.539469242 59.990978239999997 19.983392720000001 3.6072771549999998 65.005096440000003 19.802257539999999 3.6841669079999999 69.988655089999995 18.998950959999998 3.8871583940000001
-54.960899349999998 18.931875229999999 4.8435964580000004 60.001186369999999 20.30593872 4.8186802860000002 65.034301760000005 19.921909329999998 4.9547033310000002 69.861602779999998 19.871711730000001 5.2432503700000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 59.43629456 20.92430878 1.180487871 65.251502990000006 16.329446789999999 0.86712211370000003 69.557716369999994 14.630418779999999 0.68922036890000005 76.517646790000001 6.0777425770000004 0.40073633190000002
-58.871490479999999 18.6555748 1.510607958 65.34235382 18.42872238 1.5981874469999999 69.759109499999994 16.108802799999999 1.6835870740000001 75.621223450000002 14.003829 1.9642834659999999
-59.449646000000001 20.600690839999999 2.5366616249999998 65.167304990000005 18.93740463 2.5888903139999999 69.88111877 18.292711260000001 2.640728712 75.308204649999993 14.728858949999999 2.9687895769999999
-58.880023960000003 18.013469700000002 3.6188311579999999 65.259918209999995 20.527023320000001 3.8361082080000002 70.080352779999998 18.603212360000001 4.4713916779999998 74.418746949999999 21.865980149999999 4.883611202
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 56.125663760000002 20.80015564 4.27817297 59.489208220000002 19.72053528 2.9757840629999999 65.91753387 19.24645615 2.020106792 66.840705869999994 15.02373886 -0.70543974639999996
-55.188934330000002 19.664770130000001 3.462319613 59.949119570000001 20.113721850000001 3.6522903439999999 65.014633180000004 19.712581629999999 3.709415436 69.992431640000007 19.744298929999999 3.973162174
-53.191825870000002 20.2021637 3.4258286949999999 60.670177459999998 19.929319379999999 4.2096114160000004 64.127502440000001 20.1644516 5.4316577910000001 72.81983185 20.058712010000001 8.3533496859999996
-52.244544980000001 19.526599879999999 2.7105464939999999 61.129859920000001 20.169010159999999 4.9757776260000002 63.23596191 19.629623410000001 7.77671051 75.926322940000006 20.021205900000002 13.93407154
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 59.345355990000002 20.604497909999999 1.5532219410000001 65.198432920000002 17.87457848 1.6819019319999999 69.860946659999996 17.165924069999999 1.8905829190000001 75.357849119999997 12.336874010000001 2.1111402510000001
-59.203208920000002 19.484273909999999 2.5395309930000001 65.220130920000003 19.305736540000002 2.6015949250000001 69.916297909999997 17.871774670000001 2.7418098450000001 75.114715579999995 16.332843780000001 3.0795328620000002
-59.39187622 20.53015327 3.5647377969999998 65.192581180000005 19.607841489999998 3.7015721799999999 69.837844849999996 19.229797359999999 3.8600697519999998 75.45611572 17.11676216 4.2937860490000004
-59.245864869999998 18.843921659999999 4.8584213260000002 65.215698239999995 20.43989182 4.9249958989999998 69.891387940000001 19.261484150000001 5.3222951890000001 75.218788149999995 20.593322749999999 5.8560523990000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 75.958480829999999 20.001832960000002 7.1791601180000004 72.788040159999994 19.99908447 8.5423402789999994 70.087593080000005 20.001832960000002 9.9722366329999996 66.861579899999995 19.999080660000001 11.268705369999999
-63.229484560000003 19.999389650000001 1.1165537830000001 64.135574340000005 20.000305180000002 5.5376434330000004 64.988800049999995 19.999389650000001 9.9456348420000005 65.909294130000006 20.00030327 14.379808430000001
-61.123607640000003 20.00061226 -1.465941787 60.66970062 19.99969673 4.2468042370000001 59.957229609999999 20.00061226 9.9452228550000008 59.501258849999999 19.999691009999999 15.672292710000001
-52.276073459999999 19.99816513 -3.3011407849999999 53.185611719999997 20.00091553 3.3009672160000001 55.182277679999999 19.99816513 9.9734640120000009 56.084484099999997 20.000913619999999 16.505249020000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 59.394805910000002 20.820587159999999 1.383209109 65.172561650000006 18.296314240000001 1.6560790540000001 69.914985659999999 17.72422791 2.343272448 75.167549129999998 15.2633934 2.7555878159999998
-59.297054289999998 19.833219530000001 3.6411869530000001 65.207168580000001 19.943630219999999 3.7358560559999998 69.874328610000006 19.100629810000001 3.8784992690000002 75.295555109999995 17.718530650000002 4.3311734199999998
-59.433532710000001 20.295408250000001 5.7089514729999999 65.204948430000002 20.10616684 5.7333855629999997 69.746711730000001 19.92574501 5.6471190450000002 75.808273319999998 19.255929949999999 6.0305027960000004
-59.319087979999999 17.999731059999998 8.8964128490000007 65.244743349999993 20.122026439999999 8.2015857699999994 69.701980590000005 20.220556259999999 8.3140497209999999 75.947402949999997 19.990829470000001 8.3744640350000008
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 76.029449459999995 20.001832960000002 11.47305012 75.041587829999997 19.99908447 10.64938927 75.189750669999995 20.001832960000002 10.0121336 74.199394229999996 19.999080660000001 9.0021095280000001
-69.630371089999997 19.999389650000001 5.4610376360000004 69.920860289999993 20.000305180000002 7.7200422289999997 69.957870479999997 19.999389650000001 9.9354829789999997 70.247650149999998 20.00030327 12.2380209
-65.449035640000005 20.00061226 1.699856281 65.275047299999997 19.99969673 5.8289814 64.978721620000002 20.00061226 9.9459419249999996 64.810058589999997 19.999691009999999 14.08727455
-58.573535919999998 19.99816513 -2.0810055730000001 58.979019170000001 20.00091553 3.9037556649999998 60.127285000000001 19.99816513 9.9807786939999996 60.51142883 20.000913619999999 15.87346745
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 70 20.108734129999998 7.8999977110000001 70 20.000946039999999 9.9499998089999995 70 19.892993929999999 11.99999905 69.999969480000004 19.785196299999999 14.050006870000001
-65.000007629999999 20.107513430000001 7.8999958039999996 65 19.99972343 9.9499998089999995 65.000007629999999 19.891773220000001 12.00000191 65.000007629999999 19.783971789999999 14.050006870000001
-60 20.108125690000001 7.8999977110000001 59.999992370000001 20.000333789999999 9.9499998089999995 60 19.89238739 11.99999905 59.999988559999998 19.78458023 14.050006870000001
-55 20.10690117 7.8999953270000001 55.000015259999998 19.99911118 9.9499998089999995 55 19.891160960000001 11.99999905 55.000015259999998 19.78335762 14.050004960000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 76.215698239999995 19.999286649999998 6.9200778009999997 74.380683899999994 20.000238419999999 10.222186089999999 69.647880549999996 19.999763489999999 11.89117622 67.02777863 20.00071144 14.25459766
-77.846183780000004 20.001428600000001 9.9674015049999998 73.890724180000007 19.999525070000001 9.9476919170000002 69.977165220000003 20.000476840000001 9.9418277740000001 66.200622559999999 19.998571399999999 9.984977722
-79.172157290000001 19.999286649999998 12.910311699999999 73.442649840000001 20.000238419999999 9.6870460509999994 70.443527220000007 19.999763489999999 8.0415048599999999 64.783248900000004 20.00071144 5.5054864879999998
-80.786430359999997 20.00142288 15.90543079 72.956130979999998 19.999523159999999 9.4194717410000006 70.775253300000003 20.000473020000001 6.1166725160000004 63.942787170000003 19.998569490000001 1.1309716700000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 59.299350740000001 19.861036299999999 8.5686769490000003 65.238319399999995 20.122888570000001 5.5983428960000001 69.747428889999995 19.647420879999999 3.977671623 75.771987920000001 15.343637469999999 0.99306130410000004
-59.518394469999997 19.747037890000001 5.6598663330000001 65.189056399999998 20.108533860000001 5.8694944380000003 69.725402829999993 19.818822860000001 5.8018794060000003 75.909355160000004 19.834489820000002 6.3791036610000003
-58.977321619999998 20.16542244 4.165229321 65.277168270000004 19.93327713 5.794671535 69.914054870000001 20.101486210000001 7.5958070759999998 75.066612239999998 20.051666260000001 10.31804371
-59.18923187 19.591314319999999 1.1939735410000001 65.230194089999998 20.1583519 5.913541317 69.890037539999994 19.77526855 10.091581339999999 75.209709169999996 19.959150309999998 16.431484220000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 75.000022889999997 20.107295990000001 7.9000277519999997 75.000015259999998 20.001661299999999 9.9499855040000007 75.000022889999997 19.891555790000002 12.000021930000001 74.999969480000004 19.785951610000001 14.049963
-69.999992370000001 20.107933039999999 7.8999881739999998 70.000015259999998 19.999513629999999 9.9500064849999994 69.999992370000001 19.89219284 11.999985690000001 70 19.783752440000001 14.05002213
-65.000015259999998 20.107910159999999 7.9000120159999998 65 20.000438689999999 9.9499912259999999 65.000015259999998 19.89216995 12.00001621 64.999984740000002 19.784732819999999 14.04997826
-59.99998093 20.107357029999999 7.8999423980000003 60.000011440000002 19.99888039 9.9500226969999996 59.99998093 19.891618730000001 11.99995232 60.000011440000002 19.783287049999998 14.050170899999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 77.795639039999998 20.107051850000001 7.8999900820000004 77.795341489999998 20.001485819999999 9.9500045779999997 77.795639039999998 19.89131355 11.999996189999999 77.794799800000007 19.785816189999998 14.05001259
-73.897567749999993 20.108072279999998 7.8999958039999996 73.897796630000002 19.9995327 9.9499998089999995 73.897567749999993 19.892332079999999 12 73.898017879999998 19.783752440000001 14.05000877
-70.000236509999993 20.107542039999998 7.9000058170000003 69.999877929999997 20.000528339999999 9.9499988560000006 70.000236509999993 19.89180374 12.00000191 69.999336240000005 19.784858700000001 14.04999638
-66.101638789999996 20.10864067 7.9000096319999997 66.102561949999995 19.998542789999998 9.9499950409999993 66.101638789999996 19.892898559999999 12 66.105682369999997 19.781908040000001 14.050006870000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 75.39221191 21.526590349999999 12.14130211 72.548721310000005 19.42173004 12.64568901 84.412910460000006 20.298219679999999 12.89305878 65.120742800000002 19.385335919999999 13.29617882
-74.937049869999996 19.664571760000001 9.8080549240000003 75.866699220000001 20.135047910000001 9.7525806429999999 71.596237180000003 19.92611694 9.6848917009999997 78.366027829999993 20.16047859 9.6231899260000002
-82.786193850000004 19.33759117 8.3264722819999992 73.556045530000006 19.95248222 8.0439844130000004 72.989654540000004 20.040092470000001 8.0673751829999993 57.011695860000003 19.887086870000001 7.9110612869999999
-81.623313899999999 14.871498109999999 6.3093347550000001 76.985107420000006 19.91659546 5.9426698680000003 60.436283109999998 19.982686999999999 5.4615139959999999 70.546203610000006 20.152338029999999 5.3493943210000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 72.469955440000007 20.252885819999999 6.5004544260000001 73.969795230000003 20.08260727 7.9337396619999998 75.036979680000002 20.063604349999999 9.1645679470000001 75.882369999999995 19.915611269999999 10.3017416
-72.618186949999995 20.016595840000001 9.2471761699999995 73.936462399999996 20.005844119999999 9.9675884250000006 75.022308350000003 19.96016693 10.58247948 75.974273679999996 19.956377029999999 11.14936256
-72.801582339999996 19.902082440000001 12.003046039999999 73.896484380000004 19.888761519999999 11.99928856 74.998626709999996 19.89533424 11.99979877 76.109115599999996 19.882415770000001 12.00151825
-72.947990419999996 19.727689739999999 14.740623469999999 73.863700870000002 19.79171753 14.035275459999999 74.983322139999999 19.811107639999999 13.41831017 76.203094480000004 19.86659431 12.84470844
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 65 19.995420459999998 9.9999771119999998 69.999992370000001 19.99793816 9.9999971389999995 75.000007629999999 19.996641159999999 9.9999771119999998 80 19.999282839999999 10.00008392
-65 19.89306259 12.000009540000001 70 19.89181709 12.00000191 75.000007629999999 19.892450329999999 12.000009540000001 79.999992370000001 19.891130449999999 11.999956129999999
-65 19.78493881 13.99998379 69.999992370000001 19.78745842 14.00000477 75.000007629999999 19.786159519999998 13.99998379 80 19.788806919999999 14.00008678
-64.999984740000002 19.682716370000001 16.000099179999999 70 19.68126869 15.99996662 74.999984740000002 19.682106019999999 16.000099179999999 79.999984740000002 19.680179599999999 15.99980736
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 72.556472779999993 20.007419590000001 10.69527817 73.997444150000007 19.997419359999999 9.9355316160000005 74.840019229999996 20.002933500000001 9.2625865940000001 76.64250183 19.753379819999999 8.6342449190000004
-72.605461120000001 19.96580887 9.9343795779999997 73.963386540000002 20.011884689999999 9.9493141170000001 74.927337649999998 19.986665729999999 9.96835804 76.327255249999993 19.942813869999998 9.9883022310000005
-72.618110659999999 20.043754580000002 9.2672023770000003 73.936500550000005 19.99786186 9.9672031400000005 75.022132869999993 19.96480751 10.563982960000001 75.974967960000001 19.997880940000002 11.112544059999999
-72.66642761 20.080467219999999 8.4890050890000008 73.902725219999994 19.991466519999999 9.9852514269999997 75.108917239999997 19.95364189 11.26998901 75.661514280000006 19.689542769999999 12.46209335
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 79.3506012 19.89212418 10.297397610000001 77.511245729999999 19.911304470000001 12.078531269999999 74.900772090000004 19.815256120000001 13.38848209 72.885742190000002 19.73038292 14.920652390000001
-79.778915409999996 19.914983750000001 12.00384998 77.381195070000004 19.886640549999999 11.99992943 74.992652890000002 19.89108658 11.99643421 72.648277280000002 19.901565550000001 12.01434517
-80.126556399999998 19.80056381 13.687206270000001 77.260261540000002 19.894756319999999 11.921753880000001 75.128768919999999 19.973033910000002 10.62578487 72.224754329999996 20.015970230000001 9.0219554899999999
-80.553070070000004 19.70949173 15.38209438 77.130531309999995 19.909130099999999 11.84337139 75.221145629999995 20.006618499999998 9.2444171910000001 71.984916690000006 20.316694259999998 6.0726675989999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 80.761482240000007 19.632326129999999 19.582256319999999 77.149024960000006 19.58016014 14.994088169999999 75.115768430000003 20.05408478 11.361839290000001 72.387924190000007 19.69882965 7.0860152239999996
-80.111984250000006 19.840633390000001 13.084851260000001 77.241073610000001 19.964378360000001 11.61363029 75.131317139999993 19.927486420000001 10.60266685 72.233673100000004 20.18070221 9.3113584520000003
-79.628685000000004 19.831949229999999 10.21311378 77.439483640000006 19.937093730000001 10.081701280000001 75.087730410000006 20.025850299999998 9.9714851380000002 72.209632869999993 19.86084747 9.8434171680000002
-78.969612119999994 17.87081337 5.7626929279999999 77.534149170000006 19.406265260000001 7.7595577240000004 75.102180480000001 19.926450729999999 9.2113971709999998 72.057685849999999 20.650678630000002 11.01503563
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 86.394416809999996 20.506988530000001 10.78163052 79.403083800000005 19.558546069999998 11.96123695 75.993240360000001 20.501579280000001 12.530671119999999 66.623970029999995 17.94690323 13.533179280000001
-85.760513309999993 17.15355301 10.133910180000001 79.704078670000001 19.90885544 9.8938941959999998 75.423133849999999 19.89886284 9.7727966310000003 68.603416440000004 20.626558299999999 9.5181922910000001
-84.423934939999995 16.683935170000002 8.3827199940000003 80.139915470000005 18.631183620000002 8.1631832119999999 75.016403199999999 20.174846649999999 8.0781326290000006 69.794479370000005 19.857080459999999 8.0940561290000002
-83.819145199999994 14.2359581 7.3292779919999997 80.434265139999994 17.58245277 6.718361378 74.443710330000002 19.28164482 5.8445987700000002 71.790855410000006 19.81190681 5.4447813030000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 82.514526369999999 21.14626312 9.6714668269999997 74.030548100000004 19.810894009999998 10.31415653 71.363327029999994 20.122623440000002 10.41734791 60.516185759999999 18.916864400000001 10.727709770000001
-81.38391876 18.249567030000001 8.3036108019999997 74.48934174 20.213972089999999 7.8722066880000003 70.658706670000001 19.995199199999998 7.7812957760000003 62.875850679999999 20.19607925 7.4985504150000004
-79.655029299999995 17.741939540000001 6.5373134610000001 75.08796692 19.194763179999999 6.0682163239999998 69.9931488 19.965793609999999 5.8733172419999997 64.939491270000005 20.160331729999999 5.8946022989999998
-78.557273859999995 15.183026310000001 5.1863617900000003 75.538238530000001 17.988632200000001 4.5062556269999998 69.289726259999995 19.104463580000001 3.5731406209999999 67.302871699999997 19.649164200000001 3.702945471
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 73.851760859999999 18.545955660000001 16.066617969999999 74.315773010000001 20.196195599999999 11.431817049999999 74.73529053 19.755245209999998 10.206116679999999 75.202682499999995 20.825593949999998 7.4437179569999996
-77.689613339999994 19.918674469999999 15.12325573 77.506614690000006 19.86872864 11.696487429999999 77.451751709999996 20.09235382 10.09079552 77.26731873 18.947778700000001 7.6403250690000002
-79.863311769999996 19.786376950000001 14.360794070000001 79.865501399999999 19.954524989999999 11.92427635 79.932189940000001 19.481491089999999 9.9421052929999991 79.936447139999999 18.8056488 8.0073022839999997
-82.857368469999997 19.763538359999998 13.41560364 83.03144073 19.603040700000001 12.189315799999999 82.819702149999998 18.794553759999999 9.8271236420000001 82.98688507 16.665477750000001 8.2021818159999995
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 89.739295960000007 17.51036453 11.098337170000001 84.98090363 18.388774869999999 11.681797980000001 80.337081909999995 20.762273789999998 11.892210009999999 73.670860289999993 17.804962159999999 11.90660477
-89.471916199999995 13.077208519999999 9.9370651250000002 85.067955019999999 17.73806763 9.8618698120000001 80.256278989999998 19.51799011 9.904935837 73.906959529999995 20.877805710000001 10.00068188
-89.738922119999998 12.490625380000001 8.8534021379999999 84.984306340000003 15.97044182 8.5707254410000004 80.323875430000001 18.87940407 8.1880445480000006 73.720275880000003 19.895524980000001 7.7906670570000003
-89.481704710000002 8.4477024079999996 7.7238378519999999 85.068603519999996 14.751993179999999 6.9728536610000003 80.243850710000004 16.910026550000001 6.6795020100000002 73.955947879999997 21.45560837 6.3564348219999998
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 83.829338070000006 19.723949430000001 9.9893398280000003 80.331832890000001 19.220525739999999 10.114681239999999 74.843307499999995 20.800991060000001 10.211319919999999 70.294967650000004 18.088020319999998 10.38547707
-84.480491639999997 15.832751269999999 8.4339838030000003 80.14019012 18.871395110000002 8.1250610349999999 74.95876312 19.917312620000001 7.9112763399999997 70.024787900000007 20.56003952 7.803581715
-85.524040220000003 15.07025623 7.2688078880000004 79.80545807 17.309951779999999 6.6500406270000001 75.254127499999996 19.409633639999999 6.0735216139999997 69.178092960000001 19.538284300000001 5.7393589020000002
-86.17949677 10.89444065 5.86757946 79.614135739999995 16.21073341 5.0181345940000002 75.363883970000003 17.175159449999999 4.4892663959999997 68.930252080000002 21.330539699999999 3.8094346520000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 73.86515808 19.939178470000002 13.798629760000001 77.671951289999996 19.876728060000001 11.994821549999999 79.74343872 19.90651703 10.222082139999999 83.354377749999998 18.024637219999999 8.4945077900000001
-74.302253719999996 19.779140470000002 11.920378680000001 77.528625489999996 19.934009549999999 12.00104713 79.879577639999994 19.83743668 12.07543182 82.953048710000004 19.779483800000001 12.13962173
-74.775863650000005 20.030237199999998 10.519859309999999 77.381210330000002 19.873167039999998 12.000987050000001 79.99565887 19.829700469999999 13.47619343 82.636199950000005 19.82769012 14.94700241
-75.214820860000003 19.951530460000001 8.3762845989999999 77.236953740000004 19.927318570000001 12.015952110000001 80.133636469999999 19.691793440000001 15.55991268 82.228408810000005 19.268272400000001 19.09333801
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 89.835723880000003 21.810163500000002 14.292530060000001 84.896919249999996 19.02360535 14.49837303 80.576660160000003 20.798662190000002 14.233207699999999 72.796508790000004 16.60944366 14.55083179
-90.385429380000005 15.171604159999999 11.93405628 84.83361816 19.48332787 11.89085197 80.280120850000003 19.735424040000002 11.95582199 74.045989989999995 20.864809040000001 11.868761060000001
-89.282600400000007 14.897265429999999 9.9712362290000005 85.094047549999999 17.30654144 9.9382257460000005 80.341255189999998 20.040517810000001 9.9434967039999993 73.540969849999996 19.344251629999999 9.9741191859999994
-89.850120540000006 7.549051285 7.8809785840000002 85.027244569999993 16.601995469999999 8.0562562940000007 80.040924070000003 17.816041949999999 7.970172882 74.809150700000004 22.969219209999999 7.9344792369999997
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 79.765068049999996 19.99708176 9.9999856949999995 79.765632629999999 19.892230990000002 12.00000191 79.765068049999996 19.786613460000002 13.99998379 79.765869140000007 19.68194008 16.000062939999999
-77.382682799999998 19.99734879 10.000005720000001 77.382751459999994 19.892103200000001 12 77.382682799999998 19.78686905 14.000009540000001 77.382637020000004 19.68155479 15.999972339999999
-74.999862669999999 19.99738121 9.9999723429999996 75.000076289999996 19.89208412 12.000005720000001 74.999862669999999 19.78690529 13.99997997 75.000305179999998 19.68178558 16.000076289999999
-72.617706299999995 19.996934889999999 10.00004768 72.617050169999999 19.892309189999999 11.99996567 72.617706299999995 19.78644753 14.000058170000001 72.615478519999996 19.681446080000001 15.999668120000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 74.755912780000003 20.338815690000001 6.7914643290000001 77.385002139999997 19.939537049999998 10.006896019999999 79.99966431 19.886894229999999 13.180930139999999 82.616073610000001 19.4935112 16.336778639999999
-74.776443479999998 19.925098420000001 10.39630032 77.380310059999999 19.90901375 12.00353432 79.998992920000006 19.79157257 13.58957481 82.623825069999995 19.775583269999998 15.17191219
-74.758834840000006 19.812461849999998 13.999437329999999 77.384140009999996 19.77840424 13.999919889999999 80.000175479999996 19.79489899 14.00089073 82.614860530000001 19.76306915 13.996463779999999
-74.779838560000002 19.546619419999999 17.605892180000001 77.37919617 19.69847107 15.996833799999999 79.999977110000003 19.749435420000001 14.40680218 82.619407649999999 19.895757679999999 12.841881750000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 70.000320430000002 19.61229706 17.299989700000001 69.999877929999997 19.699066160000001 15.650001530000001 70.000320430000002 19.785942080000002 13.999994279999999 69.999008180000004 19.872694020000001 12.350016589999999
-74.999847410000001 19.613517760000001 17.300006870000001 75.000083919999994 19.70028877 15.649996760000001 74.999847410000001 19.787162779999999 14.000008579999999 75.000495909999998 19.87391663 12.350007059999999
-80.000320430000002 19.612903589999998 17.300001139999999 79.999847410000001 19.699682240000001 15.649997709999999 80.000320430000002 19.786548610000001 13.99999809 79.998985289999993 19.87330627 12.350004200000001
-84.999000550000005 19.614126209999998 17.300016400000001 85.00048065 19.700897220000002 15.64999008 84.999000550000005 19.787769319999999 14.00001144 85.005279540000004 19.874525070000001 12.34993935
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 81.376464839999997 19.784330369999999 13.59901142 80.678848270000003 19.79303741 13.99825001 79.994384769999996 19.764575959999998 14.40801048 79.343666080000006 19.740001679999999 14.83597374
-81.362228389999999 19.792999269999999 13.99961472 80.680969239999996 19.785394669999999 14.0001297 80.000152589999999 19.786472320000001 13.99987125 79.31843567 19.789733890000001 14.00039673
-81.347007750000003 19.76489067 14.40254116 80.683547970000006 19.786350250000002 14.001240729999999 80.005027769999998 19.810749049999998 13.592510219999999 79.296409609999998 19.821537020000001 13.16243839
-81.332771300000005 19.742080690000002 14.80430031 80.685661319999994 19.789552690000001 14.002734179999999 80.010795590000001 19.820741649999999 13.18475437 79.271186830000005 19.90783691 12.325760839999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 81.403381350000004 19.65188599 18.125703810000001 80.705039979999995 19.52567101 16.847894669999999 80.005462649999998 19.718893049999998 15.56755066 79.273040769999994 19.56189728 14.230777740000001
-81.323425290000003 19.76965714 14.02586842 80.671562190000003 19.84654617 13.759245870000001 80.004981990000005 19.81654739 13.4776516 79.30859375 19.906999590000002 13.18292522
-81.385940550000001 19.86417389 12.18491554 80.709594730000006 19.8085041 12.122922900000001 80.005607600000005 19.865165709999999 12.07652378 79.267890929999993 19.794061660000001 12.01334572
-81.306571959999999 18.732116699999999 9.2344694139999994 80.675811769999996 19.359935759999999 9.749077797 80.00559998 19.538721079999998 10.216244700000001 79.302062989999996 20.012941359999999 10.76364517
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 73.364997860000003 18.437547680000002 17.70075417 74.738388060000005 20.093303680000002 13.522711749999999 75.507728580000006 19.416198730000001 12.20838928 76.903198239999995 21.93323135 9.6437091830000004
-81.579048159999999 19.895540239999999 16.773906709999999 81.164047240000002 19.72557449 13.771845819999999 80.940795899999998 20.17025185 12.138709070000001 80.520507809999998 18.851570129999999 9.6733245849999996
-84.547767640000004 19.453746800000001 16.28845978 84.620063779999995 19.976770399999999 13.930409429999999 84.958976750000005 18.866138459999998 11.98989201 85.030212399999996 18.37107468 10.10999966
-90.229797360000006 20.402191160000001 15.351398469999999 90.355728150000004 17.845777510000001 14.18049049 89.223213200000004 17.357166289999999 11.92665482 89.358345029999995 12.44601727 10.112861629999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 76.550903320000003 19.630203250000001 16.97284698 75.651153559999997 19.694641109999999 15.737489699999999 80.315361019999997 19.78831482 13.97720528 79.001052860000001 19.872543329999999 12.35372353
-78.364288329999994 19.613542559999999 17.29701996 80.538139340000001 19.700119019999999 15.65084839 79.483245850000003 19.78680992 13.99958897 81.528991700000006 19.873819350000002 12.35077858
-89.991981510000002 19.594890589999999 17.63908386 82.196350100000004 19.70478439 15.559122090000001 81.751678470000002 19.785572049999999 14.024444580000001 74.882949830000001 19.87385368 12.343139649999999
-81.988288879999999 19.578468319999999 17.96378326 90.314071659999996 19.709495539999999 15.472326280000001 77.813835139999995 19.784374239999998 14.046903609999999 86.60170746 19.874153140000001 12.340081209999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 76.057937620000004 19.15641785 17.310468669999999 86.179809570000003 19.793226239999999 15.66192055 70.205047609999994 19.624332429999999 13.94185543 80.826225280000003 19.936347959999999 12.57069016
-90.216262819999997 19.84959602 17.648433690000001 81.952903750000004 19.650564190000001 15.55572796 82.515754700000002 19.87134361 14.028650280000001 75.160049439999995 19.832159040000001 12.32964134
-83.397621150000006 19.016777040000001 17.912900919999998 85.646202090000003 19.833274840000001 15.47483444 84.035888670000006 19.603782649999999 14.087765689999999 86.197250370000006 19.978500369999999 12.174135209999999
-86.193084720000002 21.956386569999999 18.234373089999998 85.462394709999998 18.973999020000001 15.37495041 91.340553279999995 18.995067599999999 14.16581631 90.050384519999994 14.1876955 11.9618082
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 65.000015259999998 19.612239840000001 17.299995419999998 64.999984740000002 19.69909668 15.649999619999999 65.000015259999998 19.785882950000001 13.99999523 65 19.8729248 12.35000896
-69.999992370000001 19.61356163 17.300008770000002 70.000007629999999 19.700273509999999 15.649996760000001 69.999992370000001 19.78720474 14.000008579999999 70 19.87382698 12.35000801
-75.000022889999997 19.61284637 17.299991609999999 74.999984740000002 19.699707029999999 15.65000057 75.000022889999997 19.786491389999998 13.999994279999999 74.999984740000002 19.87354088 12.350013730000001
-80 19.61436462 17.300006870000001 80.000015259999998 19.700794219999999 15.64999199 80 19.788007740000001 14.00000668 79.999977110000003 19.87423897 12.34995842
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 60 19.612300869999999 17.299995419999998 60.000007629999999 19.699066160000001 15.649999619999999 60 19.785945890000001 13.999994279999999 59.999984740000002 19.872714999999999 12.35001278
-65.000007629999999 19.613527300000001 17.30001068 65.000007629999999 19.700286869999999 15.649996760000001 65.000007629999999 19.787170410000002 14.000009540000001 65 19.873931880000001 12.35000801
-70 19.612913129999999 17.299995419999998 70 19.69967651 15.649999619999999 70 19.786556239999999 13.999994279999999 69.999984740000002 19.873321529999998 12.35001278
-75.000007629999999 19.61413383 17.30001068 75 19.70089531 15.6499939 75.000007629999999 19.787778849999999 14.000007630000001 75.000015259999998 19.874540329999999 12.34996128
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 55 19.612300869999999 17.299995419999998 55.000007629999999 19.699066160000001 15.649999619999999 55 19.785945890000001 13.999994279999999 54.999988559999998 19.872714999999999 12.35001278
-59.999988559999998 19.613527300000001 17.30001068 60.000003810000003 19.700286869999999 15.649996760000001 59.999988559999998 19.787170410000002 14.000009540000001 59.999984740000002 19.873931880000001 12.35000801
-65.000007629999999 19.612913129999999 17.299995419999998 65.000022889999997 19.69967651 15.649999619999999 65.000007629999999 19.786556239999999 13.999994279999999 65.000007629999999 19.873321529999998 12.35001278
-69.999977110000003 19.61413383 17.30001068 69.999992370000001 19.70089531 15.6499939 69.999977110000003 19.787778849999999 14.000007630000001 70 19.874540329999999 12.34996128
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 60 19.996141430000002 9.9999799730000003 65 19.997726440000001 10.00000477 70.000007629999999 19.996759409999999 9.9999799730000003 74.999984740000002 19.99908447 10.000026699999999
-59.999992370000001 19.891641620000001 12.000005720000001 65.000007629999999 19.892210009999999 11.99999905 69.999992370000001 19.892250059999999 12.000005720000001 75 19.891544339999999 11.999987600000001
-60 19.78567314 13.999996189999999 65 19.787242890000002 14.000003810000001 70.000007629999999 19.786285400000001 13.999996189999999 74.999984740000002 19.7885952 14.000030519999999
-60.000007629999999 19.68129158 16.000043869999999 65 19.68167686 15.99997902 70 19.681892399999999 16.000043869999999 74.999984740000002 19.68092918 16.00012207
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 55 19.996355059999999 9.9999971389999995 60.000003810000003 19.997623440000002 9.9999961850000005 65.000007629999999 19.996965410000001 9.9999971389999995 69.999977110000003 19.998313899999999 10.00002098
-55.000015259999998 19.891221999999999 12 60 19.89242363 12.00000191 65.000015259999998 19.89183044 12 69.999984740000002 19.892992020000001 11.99998856
-55 19.785879139999999 14.00000095 60.000003810000003 19.787143709999999 14 65.000007629999999 19.786487579999999 14.00000095 69.999977110000003 19.78783417 14.000028609999999
-55.000007629999999 19.680831909999998 16.000028610000001 59.999984740000002 19.681907649999999 15.999987600000001 65.000007629999999 19.681440349999999 16.000028610000001 69.999984740000002 19.682231900000001 16.00012589
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 76.454383849999999 16.915590290000001 18.000995639999999 78.613105770000004 20.67592621 15.44823456 79.136779790000006 19.315824509999999 14.106077190000001 81.345825199999993 20.690544129999999 12.12747478
-85.977844239999996 20.424289699999999 17.872669219999999 85.395004270000001 19.535255429999999 15.483080859999999 85.177467350000001 20.064022059999999 14.095026020000001 84.581802370000005 19.086978909999999 12.136837010000001
-89.634323120000005 19.260375979999999 18.042726519999999 89.806892399999995 19.14071083 15.44948673 90.153411869999999 17.709674840000002 14.05934238 90.326995850000003 16.89589119 12.313169479999999
-95.48480988 20.8349762 18.004177089999999 95.377502440000001 14.830683710000001 15.452915190000001 94.208831790000005 15.212458610000001 14.084162709999999 94.109970090000004 10.55853939 12.21044159
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 86.59938812 18.544153210000001 18.053066250000001 86.973312379999996 20.074439999999999 15.44052887 87.120826719999997 18.661138529999999 14.08482742 87.486351010000007 19.489248280000002 12.22017288
-90.298645019999995 20.23396683 17.990039830000001 90.178421020000002 18.343475340000001 15.46067429 90.082855219999999 17.894845960000001 14.06727791 89.967338560000002 15.85093689 12.270241739999999
-92.205986019999997 18.820714949999999 18.034536360000001 92.313011169999996 17.48044968 15.4507122 92.547775270000002 15.87462521 14.06262207 92.644294740000007 14.33586502 12.29881668
-95.877403259999994 19.439853670000002 18.007017139999999 95.569610600000004 14.745283130000001 15.45336533 94.726097109999998 14.30164051 14.07952023 94.454742429999996 10.23610306 12.22857952
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 94.167556759999997 20.71880531 16.533935549999999 90.143585209999998 18.166612629999999 16.56281662 85.25810242 20.89317703 16.147809980000002 78.823997500000004 16.373434069999998 16.12510872
-94.531089780000002 13.168458940000001 13.861413000000001 90.107711789999996 18.262807850000002 13.858975409999999 85.038116459999998 19.612588880000001 13.963746069999999 79.73986816 20.765222550000001 13.960020070000001
-94.031280519999996 12.84622192 12.02042389 90.173171999999994 15.65744209 12.00128746 85.276062010000004 19.53478432 11.99721718 78.722595209999994 19.195465089999999 12.03480721
-94.423500059999995 4.5193667409999998 10.05692196 90.130416870000005 14.530366900000001 10.13586712 85.054718019999996 16.73075485 10.047417640000001 79.65065002 23.329042430000001 9.9008235930000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 94.809036250000005 19.049388889999999 16.660303119999998 92.523551940000004 17.541336059999999 16.613828659999999 90.096794130000006 19.786464689999999 16.490558620000002 87.089263919999993 17.59125328 16.35697746
-94.797187809999997 12.945748330000001 13.799019810000001 92.533325199999993 16.09487343 13.829916949999999 90.069564819999997 17.478412630000001 13.878095630000001 87.188392640000004 19.823722839999999 13.91875267
-94.931488040000005 11.35541725 12.14363384 92.491622919999998 13.39397621 12.066503519999999 90.102058409999998 16.07368851 11.99707222 87.100128170000005 17.322027210000002 11.968010899999999
-94.95890808 4.6491928099999997 9.6264686580000003 92.491073610000001 10.554434779999999 9.9040527340000004 90.076766969999994 12.641752240000001 10.13363457 87.201759339999995 18.249965670000002 10.209275249999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 94.35643005 20.298069000000002 16.0466938 92.704078670000001 16.965198520000001 15.286258699999999 89.827316280000005 20.170455929999999 14.968576430000001 87.986640929999993 14.81237984 13.85889053
-94.755462649999998 8.8756885529999998 11.3690567 92.533645629999995 13.10800266 11.571294780000001 90.109992980000001 15.21380806 11.69612789 87.026351930000004 19.149551389999999 11.997549060000001
-96.103790279999998 7.2157530779999997 10.47708416 92.152244569999993 10.828046799999999 10.42856598 90.287246699999997 13.389196399999999 10.24691486 86.698699950000005 15.9514513 10.150915149999999
-96.512702939999997 -1.8482192749999999 6.4226007459999996 91.984161380000003 6.2031927109999998 6.4144454 90.550643919999999 7.2547011379999997 7.0162029270000001 85.813186650000006 15.79996109 7.0988669399999997
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 96.330512999999996 5.8201875689999998 10.844417569999999 92.081451419999993 12.880756379999999 11.20197868 90.343727110000003 14.79114914 11.62368107 86.543617249999997 20.129058839999999 12.05642319
-95.924957280000001 6.3247122759999996 9.9321889880000001 92.189620970000007 10.154259679999999 9.8552923200000002 90.316627499999996 12.494819639999999 9.7612209320000005 86.543899539999998 15.87712383 9.6891860960000002
-95.653045649999996 4.771406174 9.1268234249999995 92.286880490000001 9.1255855560000008 9.0768508909999994 90.199493410000002 11.25483322 9.0314331049999996 86.915130619999999 15.117287640000001 8.886827469
-95.238899230000001 6.1387295719999999 8.2105808259999993 92.396606449999993 6.7595491409999999 7.6735634800000003 90.174705509999995 9.4004354479999996 7.3078513149999997 86.90455627 10.68457222 6.7054142949999997
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 94.036308289999994 21.16070938 14.885744089999999 90.172744750000007 17.420541759999999 14.93555546 85.272743230000003 21.616504670000001 14.39148045 78.736282349999996 14.816713330000001 14.01771259
-94.015037539999994 9.6530990600000006 11.637689590000001 90.214355470000001 16.187175750000002 11.69954109 85.127563480000006 18.710994719999999 11.9175024 79.275405879999994 21.809207919999999 12.083767890000001
-94.983291629999997 9.2996149060000004 10.563507080000001 89.900665279999998 13.25365448 10.266281129999999 85.414100649999995 18.022003170000001 9.9385232929999994 78.442962649999998 18.822309489999999 9.6472177509999995
-95.072380069999994 -3.3752596380000002 5.8082590100000004 89.910186769999996 10.07055283 6.9353475570000001 85.286842350000001 14.114510539999999 8.0283823010000006 78.942344669999997 25.244653700000001 9.0272226329999992
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 94.944190980000002 6.7274432180000003 9.9663715360000005 92.541000370000006 10.424751280000001 10.17686176 89.891906739999996 13.62434101 10.32458973 87.89139557 15.77085304 10.51104069
-95.587005619999999 5.4164195060000004 9.1672954559999997 92.295738220000004 8.8080768589999998 8.9750185009999992 90.230026249999995 11.016471859999999 8.7959413529999999 86.784141539999993 14.42964649 8.5055360790000005
-96.483917239999997 3.1559064389999998 8.0144910809999992 92.009704589999998 7.7591094969999999 7.7593207360000003 90.477348329999998 9.2243185039999993 7.6864371299999998 86.080932619999999 13.541138650000001 7.4088034629999999
-97.160087590000003 3.0684642790000001 6.6394519809999997 91.755348209999994 6.3774795529999997 6.1976785659999996 90.818412780000003 7.133496761 6.0825085640000003 84.970855709999995 11.894090650000001 5.5221662519999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 94.658134459999999 11.214613910000001 11.852499010000001 90.050605770000004 15.29520035 11.5525856 85.139457699999994 19.778964999999999 11.690312390000001 79.391593929999999 17.416662219999999 11.40392303
-94.568717960000001 6.7292203900000001 9.6071290969999996 90.013351439999994 13.002235410000001 9.7802343369999996 85.377861019999997 17.27252769 9.8612852100000001 78.475212099999993 21.455093380000001 10.06409264
-96.087593080000005 5.3447580339999998 9.4189796450000003 89.62312317 11.968256 9.0264778139999997 85.419914250000005 16.04439545 8.5645399090000005 78.697258000000005 19.10596275 8.0397119519999993
-96.00814819 2.6160712240000001 7.6206378939999997 89.586112979999996 9.7613372799999993 7.2045922280000001 85.647354129999997 13.38421535 7.1714096070000002 77.824333190000004 21.067129139999999 6.4046611789999996
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 88.618331909999995 5.2838387490000001 4.8443903920000002 89.628852839999993 8.3535537719999997 5.2930359840000003 92.866302489999995 4.5635776520000002 5.7428274149999998 93.90605927 7.4766821859999997 6.0753407480000003
-87.354019170000001 11.19280148 6.0892028810000003 90.050178529999997 8.0821723940000005 6.5082240100000002 92.4453125 6.7529358860000004 6.8617658620000004 95.168609619999998 3.6801345350000001 7.1890139580000003
-85.999137880000006 12.667346950000001 7.2930145260000003 90.49715424 9.4059686659999997 7.6150865550000004 92.012252810000007 7.4170660970000002 7.7028436659999997 96.453979489999995 4.2286477089999996 7.9485602379999998
-84.728347779999993 18.62617302 8.4017066959999998 90.918998720000005 9.3411874770000001 8.6556539539999999 91.595657349999996 9.8007841110000005 8.5368299479999994 97.698394780000001 0.51365482809999996 8.8814496989999991
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 95.625930789999998 7.9030013080000003 10.47352695 89.830482480000001 13.58545303 10.342201230000001 85.052154540000004 18.44818115 10.143945690000001 79.960914610000003 17.634880070000001 9.6686716080000004
-95.498405460000001 5.0051889420000002 9.0828866959999992 89.742492679999998 11.6754055 8.7783327100000008 85.531578060000001 15.59680653 8.4681053160000008 78.131164549999994 20.572345729999999 8.1277322769999998
-97.307647709999998 2.8005967140000001 8.0986194610000002 89.291496280000004 10.34949684 7.6351900099999996 85.526374820000001 13.99894714 7.2744903560000003 78.602996829999995 19.02206421 6.4478144650000004
-97.21373749 1.6470040079999999 6.7433171270000001 89.196296689999997 8.4752769469999993 5.8707766530000001 86.000930789999998 11.257464410000001 5.8235273359999997 76.799858090000001 20.036800379999999 4.9671516420000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 86.194618230000003 6.7086882589999997 3.0217683320000002 90.443206790000005 6.0550308230000001 3.8550996780000002 92.032592769999994 4.8794021609999998 4.3371262550000003 96.426536560000002 4.2375922199999998 5.3318109509999996
-86.823471069999997 9.4472789759999998 4.594470501 90.234161380000003 6.9013967510000001 5.2982501979999999 92.23986816 5.9831681249999997 5.7210178379999999 95.806388850000005 3.4849381450000001 6.4032340049999998
-87.31920624 10.16652584 6.1212415699999996 90.059432979999997 8.4222450260000006 6.505684853 92.443092350000001 6.3548774720000001 6.7976512910000002 95.168296810000001 4.6388578410000001 7.0950264929999998
-87.933197019999994 12.608975409999999 7.4147744180000004 89.854789729999993 9.4978551860000007 7.6200261119999997 92.647560119999994 7.5896906849999999 7.9811067580000001 94.554916379999995 4.3854694370000002 7.9965496060000003
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 80.829330440000007 9.7879066469999998 3.4176802639999999 84.620697019999994 11.444284440000001 4.2301292420000003 90.687812809999997 5.3431444170000004 5.2548947330000004 92.627998349999999 10.444787030000001 6.509633064
-80.198143009999995 16.83145142 4.9211387630000001 84.958030699999995 12.02434635 5.7358503340000002 89.96966553 8.7901763919999993 6.5366330149999996 95.163238530000001 3.0893683429999999 7.1014671329999999
-77.967376709999996 18.878456119999999 6.3801846500000003 85.666770940000006 14.02607536 7.1932768820000001 89.365486149999995 9.8578519819999997 7.5474615099999998 96.871246339999999 4.2508230210000004 8.0730619430000008
-77.275283810000005 24.351749420000001 8.4442558289999994 86.012870789999994 14.72137165 8.8806324009999997 88.673141479999998 13.32710934 8.4633865359999998 99.294487000000004 -2.2380647659999999 8.8267574310000008
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 88.274574279999996 2.5069057940000001 1.579073548 89.738334660000007 4.0856404299999998 1.3760688299999999 92.772140500000006 2.256878376 0.99425005909999997 94.173187260000006 4.3330235479999999 0.67931920290000003
-87.459053040000001 7.5624074940000003 3.3110263350000002 90.012855529999996 5.859242439 3.7764949799999998 92.489547729999998 5.1576890950000003 4.3613266939999997 95.029060360000003 3.4487919809999998 4.9013648029999999
-86.819992069999998 7.81947422 4.1747832300000001 90.23456573 6.8998103139999998 4.8982663149999999 92.241775509999997 5.3709549900000004 5.4159345630000004 95.798377990000006 4.5795779230000004 6.1061105729999996
-86.068748470000003 15.824056629999999 7.5107293129999997 90.488174439999995 8.6243772510000003 8.1842079160000001 91.978508000000005 8.525463104 7.9937763210000004 96.597808839999999 1.049162626 8.7139883040000008
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 79.979972840000002 7.9069495200000004 1.9535061119999999 85.006370540000006 8.8164234159999992 2.9419412610000002 89.99455261 5.0643076899999997 3.6503899099999999 95.015426640000001 6.7345628739999999 5.2358107570000003
-79.818923949999999 13.84849548 3.6808598039999998 85.056579589999998 10.0412178 4.2506732940000003 89.954772950000006 7.4221687320000003 5.2319054600000001 95.124351500000003 3.3061456680000001 6.3301792140000002
-79.979652400000006 15.30662441 4.7935671810000002 85.005592350000001 12.474916459999999 5.6935229300000003 89.998001099999996 8.0646200179999994 6.5404891970000003 95.002403259999994 5.4769849779999999 7.086166382
-79.851821900000004 20.91718483 6.6273221969999998 85.040740970000002 13.626874920000001 7.3420391079999998 89.985260010000005 10.68104744 7.5550503730000003 95.018264770000002 1.8389594549999999 8.3139095310000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 84.593734740000002 0.76076757910000004 -0.062290482219999999 90.985954280000001 2.2261075969999999 0.4577968717 91.462425229999994 1.862128496 0.73583102229999997 98.164344790000001 3.1389827729999999 1.642171383
-86.061660770000003 5.46791172 1.566263199 90.481704710000002 3.8981702330000001 2.1406719679999999 92.011436459999999 4.0002460480000002 2.3014965059999999 96.472572330000006 2.4759092329999999 3.1367201809999998
-87.485809329999995 6.4821920390000001 3.105609179 90.007720950000007 5.8344516750000004 3.473984003 92.483291629999997 4.5664014819999998 3.821873665 95.059173580000007 3.9851861 4.1847972870000003
-88.925743100000005 9.1793508530000008 5.0092606540000002 89.511665339999993 7.186432838 5.3437066079999997 93.027427669999994 5.9927601810000004 6.2665033340000003 93.378509519999994 4.2912483220000004 6.5149712559999999
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 75.187057499999995 8.2862806320000004 0.9308573604 86.639251709999996 4.7779035570000001 1.5127212999999999 88.255981449999993 3.6329588890000002 1.263584614 100.33681489999999 1.7965744729999999 1.5105324979999999
-77.877616880000005 11.103858949999999 1.734305263 85.735313419999997 7.439748764 2.9166333679999998 89.181121829999995 6.5491137500000001 3.6048867699999998 97.540199279999996 2.520875454 5.4421586990000002
-79.742385859999999 13.47912502 3.659095287 85.077713009999997 10.13841343 4.2194414140000003 89.946800229999994 6.7391591069999999 4.8421506880000003 95.135070799999994 3.694579601 5.5957412719999997
-82.388145449999996 13.58716297 5.0998134610000001 84.192146300000005 13.46281624 5.8437643049999997 90.843276979999999 9.3118209840000006 8.1449995039999994 92.434738159999995 8.1367416380000002 9.8175830840000007
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 82.114753719999996 1.650707841 0.8443614841 84.254455570000005 3.3659210210000001 0.26303312179999999 90.867500309999997 0.5626130104 0.27224364880000002 92.275596620000002 5.9109535219999998 1.152714968
-80.329338070000006 8.2633419040000007 1.2273896929999999 84.926956180000005 5.1128768920000001 1.5237942929999999 89.962867739999993 4.3557839390000002 2.0511965750000001 95.22159576 2.5248229499999999 2.7018685339999999
-77.575401310000004 9.6497831339999998 1.941636562 85.814102169999998 7.7093644140000004 2.7557187079999999 89.168273929999998 5.6438269620000003 3.3266277309999999 97.512847899999997 4.1017317770000004 4.761190891
-75.809051510000003 19.318366999999999 2.5332343580000001 86.474906919999995 8.7249774930000008 4.8520293240000001 88.291336060000006 9.6374912259999999 5.1675739289999996 100.35971069999999 -3.3570120330000002 7.1282749179999998
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 74.427558899999994 9.2502593990000008 0.55688202379999996 80.236305239999993 4.3701190949999997 0.44858968259999998 84.627265929999993 2.278941154 0.36422094700000002 91.254638670000006 2.1910965440000001 0.26327016949999998
-75.279777530000004 10.85935879 1.2317680120000001 79.996368410000002 7.6843009000000002 1.3073694709999999 84.734779360000005 5.4749684329999999 1.471983671 91.064559939999995 3.4864745140000002 2.178456068
-74.987106319999995 13.153262140000001 1.7107660769999999 79.999305730000003 9.8903579710000002 2.1566829680000001 85.015701289999996 7.584828377 2.6814153190000001 89.937881469999994 5.9013676640000003 3.4087991710000001
-75.822265630000004 14.955095289999999 3.1373450759999999 79.766662600000004 13.43874454 3.48429513 85.111030580000005 10.783109659999999 4.5064611430000001 89.789131159999997 7.2844495770000002 5.5988602639999998
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 72.483726500000003 11.766097070000001 0.89095664019999998 74.205886840000005 9.2674112320000006 0.59323912860000005 80.692810059999999 4.1738138200000003 0.50905466079999995 83.022949220000001 3.0470204349999999 0.086000405249999995
-69.96156311 14.49371433 1.032214403 75.052093510000006 11.13879871 1.1851578949999999 79.830047609999994 7.6940646170000004 1.3018563990000001 85.62765503 5.1564579009999996 1.540648341
-67.124061580000003 18.0818634 1.5428309440000001 75.90673065 12.586857800000001 1.864034534 79.249069210000002 10.38875198 2.0847644810000001 87.097000120000004 6.1576743130000002 2.815815449
-64.582962039999998 19.995555880000001 1.8217949870000001 76.755287170000003 14.338018419999999 2.870505095 78.395881650000007 14.00581551 3.4087569709999999 89.661193850000004 9.1319417949999995 5.0754022599999997
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 63.953304289999998 18.68993378 0.56905841830000004 70.33550262 12.048669820000001 0.61498016119999999 74.704635620000005 9.6086969379999996 0.66164952519999998 80.845932009999999 2.5261135100000001 0.51139146089999998
-63.846942900000002 17.701246260000001 1.009078264 70.382873540000006 14.523266789999999 1.1040607689999999 74.621582029999999 11.25190639 1.1651444440000001 81.130889890000006 7.2120933530000002 1.3100630040000001
-63.660644529999999 19.639015199999999 1.597315431 70.447105410000006 15.666940690000001 1.653173327 74.550903320000003 13.61649227 1.791005492 81.349288939999994 8.685136795 2.2665402889999999
-63.556541439999997 17.99022102 2.192090034 70.49421692 17.88458443 2.4617071149999998 74.466567990000001 14.96912575 2.6991748809999998 81.639495850000003 13.59245396 3.4541809560000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 62.872463230000001 20.006095890000001 0.29412266609999999 70.704544069999997 12.406970019999999 0.71571308369999997 74.309318540000007 11.294868470000001 0.86777091029999998 82.058242800000002 4.1691784859999999 1.33220005
-63.709434510000001 18.488319400000002 1.7113950250000001 70.442878719999996 16.26785469 1.7005970479999999 74.519027710000003 13.308034899999999 1.783032537 81.481040949999993 9.7962427139999999 2.2395548820000002
-64.335861210000004 20.28815651 2.4507236479999999 70.189430239999993 17.59722519 2.6603598590000002 74.906372070000003 16.160001749999999 3.0284361839999998 80.185104370000005 12.190832139999999 3.539969921
-65.187660219999998 16.595727920000002 4.0282087329999996 69.925697330000006 20.710409160000001 4.4627184870000001 75.109527589999999 17.368240360000001 4.7261857989999996 79.636138919999993 18.724275590000001 5.3500742910000003
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 64.9072113 20.220577240000001 1.825616479 70.048851010000007 16.086036679999999 1.891028881 74.897338869999999 14.310421939999999 1.965641975 80.361785889999993 8.5203380580000001 2.345726252
-64.28202057 18.888422009999999 2.5188627239999999 70.213127139999997 18.113807680000001 2.757413626 74.865478519999996 15.782024379999999 3.0998575690000001 80.324951170000006 13.548076630000001 3.6197111610000001
-64.205276490000003 20.462371829999999 3.6414320469999999 70.224990840000004 18.82592773 3.8840782639999998 74.894752499999996 17.87773705 4.2578916549999999 80.196014399999996 14.570980069999999 4.9250063900000001
-63.586532589999997 18.626892089999998 4.8591122630000001 70.388366700000006 20.23314285 5.3484959600000002 74.859970090000004 18.519910809999999 5.8171911239999998 80.171646120000005 19.10231018 6.4600744250000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 63.507125850000001 21.241542819999999 1.64754355 70.455032349999996 16.762966160000001 2.3609108920000001 74.672714229999997 16.163221360000001 2.6935358049999998 80.854110719999994 10.56409264 3.413345337
-64.026000980000006 19.352457050000002 3.6781752110000001 70.269813540000001 19.290840150000001 3.8959486480000001 74.894729609999999 17.548833850000001 4.3190593719999999 80.151298519999997 15.87552166 4.9500551220000002
-65.078552250000001 20.713472370000002 5.5834484099999999 69.967132570000004 19.724317549999999 5.6975145339999997 75.052894589999994 19.454383849999999 5.9788303379999999 79.821319579999994 16.868289950000001 6.5661783219999998
-65.596534730000002 18.280866620000001 8.7682609560000007 69.782569890000005 20.774765009999999 8.1617374419999997 75.273155209999999 19.615325930000001 8.4169168469999995 79.124748229999994 21.051881789999999 8.4244518280000005
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 89.559013370000002 15.877869609999999 10.42998409 84.997322080000004 17.212413789999999 10.01687813 80.451766969999994 20.285476679999999 10.089159009999999 73.195716860000005 19.052715299999999 10.285858149999999
-89.824836730000001 11.34927368 8.7693471909999996 84.964744569999993 16.190551760000002 8.4654254909999995 80.316238400000003 18.52349663 8.1474504470000007 73.770385739999995 20.951105120000001 7.7902832030000004
-89.050979609999999 10.21237659 7.5671310419999998 85.217544559999993 14.397211070000001 7.2390451430000002 80.078918459999997 17.566097259999999 6.6576499939999998 74.466896059999996 19.058088300000001 6.0728387829999999
-89.320289610000003 6.7366194730000002 6.0718293189999999 85.183410640000005 12.85349083 5.7250304219999997 79.946052550000005 15.390990260000001 5.1600947379999997 75.032432560000004 18.49501038 4.0638327600000004
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 70.133552550000005 18.664798739999998 2.418375492 74.890884400000004 15.20507813 2.7381193640000001 80.302970889999997 12.494783399999999 3.1775529379999998 83.897285460000006 10.10532856 3.912018776
-69.733535770000003 18.824609760000001 3.797509909 75.07436371 17.809932709999998 4.3315958979999998 79.969062809999997 15.29742527 4.9983530040000002 85.049423219999994 13.06098652 5.7863392830000002
-69.266609189999997 20.660747529999998 5.7259521480000002 75.216178889999995 19.065258029999999 5.9883799550000001 79.86872864 17.48833466 6.4995551110000003 85.308967589999995 14.117321970000001 7.1000022889999999
-68.867469790000001 18.576152799999999 7.8690605160000002 75.400070189999994 20.66012001 8.4095182420000008 79.532272340000006 19.071153639999999 8.7467775339999996 86.470886230000005 17.47795868 9.1904411320000001
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 69.153823849999995 19.2204628 1.0994616749999999 81.633781429999999 11.33577919 3.532104731 84.311096190000001 10.72595024 4.1324844360000004 91.121833800000005 6.6686220169999997 5.5310597420000001
-72.226760859999999 18.66544914 4.1930246350000004 80.776542660000004 15.140113830000001 5.0576033589999998 84.667121890000004 12.834697719999999 5.687906742 90.554962160000002 7.2401342389999996 6.5919508929999999
-74.243110659999999 19.95859909 5.7778987879999999 80.140441890000005 17.187461849999998 6.5303292270000002 85.195182799999998 14.42747307 7.187394619 89.078849790000007 9.9432592389999996 7.4208478930000004
-77.47111511 17.178796770000002 8.8409824369999992 79.239601140000005 20.28890419 8.7592382430000004 85.570449830000001 16.0882988 8.7091636660000002 88.478546140000006 11.922202110000001 8.8345680239999993
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 72.246551510000003 15.214371679999999 2.0797562599999999 80.859481810000005 10.3557539 2.490062714 84.315589900000006 7.8675565719999998 2.6993417740000001 91.878166199999995 6.4109601969999996 4.084210873
-72.760482789999998 17.226274490000002 2.708090544 80.760498049999995 12.594281199999999 3.673787355 84.197563169999995 10.84933281 4.1737132069999996 92.449249269999996 5.443934917 5.5468268390000004
-71.817283630000006 19.110490800000001 3.9747803209999999 80.838432310000002 14.866288190000001 4.968762398 84.829032900000001 12.611953740000001 5.6551914219999997 89.84544373 7.9567928309999996 6.5186023710000001
-72.274269099999998 20.172607419999999 5.0422234540000002 80.766174320000005 17.024284359999999 6.744026184 84.661041260000005 15.195036890000001 7.2770071029999999 90.589607240000007 8.3011646270000004 7.6982712749999997
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 77.080497739999998 6.9998373989999996 0.9023358226 79.287925720000004 7.7897539140000003 0.93845915790000001 85.767791750000001 3.7298533919999999 1.3491090539999999 87.640876770000006 8.3217267990000003 1.9104398490000001
-75.423133849999999 13.67195892 1.8808028699999999 79.907775880000003 10.03120708 2.224377155 84.945808409999998 8.1519212719999992 2.807944059 90.309005740000003 4.7730612749999999 3.549561024
-72.277435299999993 16.739877700000001 2.786617041 80.841247559999999 12.7698822 3.5824337009999998 84.357589720000007 10.25988293 4.123206615 91.728347779999993 6.9625625610000004 5.3037567140000004
-70.572853089999995 22.598527910000001 3.8596286769999999 81.467109679999993 14.48840141 5.599859715 83.558670039999996 14.68542671 5.7486143109999999 94.29812622 3.5202693940000001 8.0256118769999993
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 64.038085940000002 20.235717770000001 0.50218772889999996 76.856788640000005 8.3640909190000006 1.034925938 78.534828189999999 8.0634689329999993 0.87709611649999997 89.003936769999996 1.2706695800000001 1.4619671110000001
-67.345489499999999 16.84353256 1.458460093 75.874336240000005 12.98760605 1.8626024720000001 79.157203670000001 10.50230026 2.1634168620000001 87.496871949999999 6.9519219400000001 3.0699861049999999
-69.620681759999997 19.206842420000001 2.6893050669999998 75.080184939999995 15.509741780000001 3.0264637470000002 80.058616639999997 13.18219566 3.5189096929999999 84.685379029999993 9.8406972889999995 4.1374549869999999
-73.017562870000006 14.85366821 4.3713979719999996 74.077659609999998 19.771209720000002 4.7534480090000004 80.671760559999996 14.968957899999999 5.3324260710000004 83.235275270000002 15.59017658 5.9245376590000003
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-9 0 0 0 0 3 3 4 4 8 8 69.676956180000005 17.76370811 1.541107416 75.071792599999995 13.287570000000001 2.0306396480000002 80.035949709999997 10.93414497 2.4356565479999999 84.784461980000003 7.4807987210000002 2.966073513
-69.879859920000001 17.75123215 2.805466413 75.029335020000005 16.014068600000002 3.1032361979999998 80.002838130000001 12.98242188 3.5581378940000001 84.959358219999999 10.508946419999999 4.2411623000000001
-69.6493988 19.755989069999998 3.8240971570000002 75.083633419999998 17.453916549999999 4.2783217430000002 80.016143799999995 15.33626366 4.9032664300000004 84.85185242 12.38863373 5.6136207579999997
-69.85686493 17.8488121 5.2325081830000002 75.040657039999999 19.680278779999998 5.8363633159999999 79.980545039999996 16.845350270000001 6.4993143079999998 85.037208559999996 16.40306854 7.4618010520000002
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
--3 1
--2 1
--1 1
-0 1
-1 1
-2 1
-3 1
-4 1
-
-Triangulations 12
-12 10 1 0.06583129916633
-91 11.8221269530993 9.94999977942823 91 10.2897003114331 8.9045864895427 91 11.123168907549 9.48546385384872 91 10.7086247554797 9.20224431454827 89.9999985447917 11.3362545017222 8.84881705362153 90.5703174867853 10.7434410496131 8.88124869869245 90.291235995075 11.0348569370171 8.86556011090349 89.9999958398958 12.92998808925 9.95000047435764 89.9999986569246 12.1951909941811 9.44872356315584 89.9999986832319 11.7835852471906 9.16463529828568 90.5759038741045 12.2994502810617 9.95000019832787 90.2964214953148 12.6078485416092 9.95000059170868 0 0.604624442225853 1 0.604819519992408 0.436545353361839 0.604759183970915 0.725040690189163 0.604494764107484 1 1 1 0.780454936239297 1 0.890227468119649 0 1 0.444444444444444 1 0.722222222222222 1 0 0.780344548233605 0 0.890172274116803 1 3 11 11 3 9 12 9 8 9 12 11 3 4 9 4 2 6 4 6 10 10 7 5 7 10 6 4 10 9
-12 10 1 0.06583129916633
-89.9999958398958 12.92998808925 9.95000047435764 87.8834091980003 15.0430109595111 9.94999904172264 86.4964810899597 16.2065205907414 9.94999705540232 85.0000022795833 17.2574835275174 9.94999693511805 89.9999986569246 12.1951909941811 9.44872356315584 89.9999986832319 11.7835852471906 9.16463529828568 89.9999985447917 11.3362545017222 8.84881705362153 87.8164152064541 13.4901333009694 8.71308682392886 86.4631251440784 14.6752041169537 8.62277436457534 85.0000010347917 15.8033371473194 8.52449099372917 85.0000032850141 16.6370235299299 9.30070571642356 85.0000028231666 16.2322370576288 8.91314266425845 0 0 0 0.444444444444444 0 0.722222222222222 0 1 0.444444444444444 0 0.722222222222222 0 1 0 1 0.444444444444444 1 0.722222222222222 1 1 0.444444444444444 1 0.722222222222222 1 1 5 2 8 3 2 3 11 4 9 11 3 2 5 8 6 7 8 9 3 8 12 9 10 12 11 9 8 5 6
-12 10 1 0.06583129916633
-91 10.2897003114331 8.9045864895427 91 8.68210536123528 7.63496833970034 91 9.55564338138305 8.35457051567079 91 9.10376192728806 7.99162522960735 89.9999984129861 9.63609133568403 7.56582537454167 90.4791075956943 9.1796098584643 7.59940962528095 90.7471900178788 8.92369214200347 7.61785873141418 89.9999985447917 11.3362545017222 8.84881705362153 90.0000007104569 10.5575701050795 8.28200868547527 90.0000007039794 10.0997952645434 7.9337827553948 90.5703174867853 10.7434410496131 8.88124869869245 90.291235995075 11.0348569370171 8.86556011090349 0 0.604818765723003 1 0.611496094396116 0.441118397295684 0.607830186302552 0.730621406181099 0.609364050433915 1 1 1 0.827332130283996 1 0.719414711711494 0 1 0.444444444444444 1 0.722222222222222 1 0 0.780454936239297 0 0.890227468119649 1 3 11 11 3 9 12 9 8 9 12 11 3 4 9 4 2 7 4 7 6 10 6 5 6 10 4 4 10 9
-12 10 1 0.06583129916633
-89.9999985447917 11.3362545017222 8.84881705362153 85.0000010347917 15.8033371473194 8.52449099372917 87.8164152064541 13.4901333009694 8.71308682392886 86.4631251440784 14.6752041169537 8.62277436457534 90.0000007104569 10.5575701050795 8.28200868547527 90.0000007039794 10.0997952645434 7.9337827553948 89.9999984129861 9.63609133568403 7.56582537454167 87.7446761963527 11.7599312909982 7.39756010227401 86.4319602734677 12.9401203469063 7.28739087696172 84.9999961607292 14.1568349074861 7.15651154836111 85.0000105004698 15.0850533272509 7.90729242753376 85.0000104828043 14.6308371656642 7.53469330115276 0 0 0 1 0 0.444444444444444 0 0.722222222222222 0.444444444444444 0 0.722222222222222 0 1 0 1 0.444444444444444 1 0.722222222222222 1 1 0.444444444444444 1 0.722222222222222 1 1 5 3 8 4 3 4 11 2 9 11 4 3 5 8 6 7 8 9 4 8 12 9 10 12 11 9 8 5 6
-12 10 1 0.06583129916633
-91 7.61636810981439 6.6169437167634 91 8.68210536123528 7.63496833970034 91 8.08274258370082 7.08859337954805 91 8.3800906875744 7.36575588889635 90.0000024117361 8.39076750746528 6.47641750670833 90.4483502128265 8.04344178840985 6.540225482921 90.7250010724211 7.8292170903827 6.57896471360288 89.9999984129861 9.63609133568403 7.56582537454167 90.0000046990569 8.93331708929736 6.97226487243023 90.0000033371764 9.28093559588504 7.27209640232526 90.4791075956943 9.1796098584643 7.59940962528095 90.7471900178788 8.92369214200347 7.61785873141418 0 0.39924787923266 1 0.388502517921781 0.450153418691572 0.394665173656325 0.726255493207909 0.391612621471028 0 0 0 0.177444136230332 0 0.288346721374289 1 0 0.444444444444444 0 0.722222222222222 0 1 0.172667869716004 1 0.280585288288506 5 9 6 6 9 3 7 3 1 3 7 6 9 11 3 10 8 11 11 4 3 4 12 2 12 4 11 11 9 10
-12 10 1 0.06583129916633
-84.9999954447569 12.2395795864028 5.71940350527083 87.2258451795873 10.5383523755614 6.06445414042166 88.6123119601658 9.46643188689747 6.27349639416935 90.0000024117361 8.39076750746528 6.47641750670833 85.0000009103776 13.103749219542 6.34937907888375 85.0000013066084 13.6305094768017 6.74721560889661 84.9999961607292 14.1568349074861 7.15651154836111 89.9999984129861 9.63609133568403 7.56582537454167 87.7446761963527 11.7599312909982 7.39756010227401 86.4319602734677 12.9401203469063 7.28739087696172 90.0000046990569 8.93331708929736 6.97226487243023 90.0000033371764 9.28093559588504 7.27209640232526 0 0 0 0.444444444444444 0 0.722222222222222 0 1 0.444444444444444 0 0.722222222222222 0 1 0 1 1 1 0.555555555555556 1 0.277777777777778 0.444445275561795 1 0.722223234764157 1 1 5 2 9 3 2 3 11 4 12 11 3 2 5 10 6 7 10 10 9 2 12 9 8 12 3 9 5 6 10
-12 10 1 0.06583129916633
-81 18.0954639604535 8.27666295300412 81 16.7202928907912 6.7482503535081 81 17.5174605151018 7.56982648796281 81 17.1290972301253 7.15036621605728 85.0000010347917 15.8033371473194 8.52449099372917 83.2840546680303 16.9298457994121 8.41307323433103 82.1700620313882 17.5432124717643 8.34464942664314 84.9999961607292 14.1568349074861 7.15651154836111 85.0000105004698 15.0850533272509 7.90729242753376 85.0000104828043 14.6308371656642 7.53469330115276 82.8455001946067 15.695123842792 6.94280766204936 83.9460999002772 14.9650436060387 7.05430486387075 0 0.816714986046588 1 0.811510907283606 0.447853122467915 0.814375551342694 0.72857702128032 0.812997763512315 0 0 0 0.362983812083232 0 0.589848694635251 1 0 0.444444444444444 0 0.722222222222222 0 1 0.450838588219613 1 0.225419294109806 5 9 6 11 7 6 7 3 1 4 3 7 6 9 12 10 8 12 12 11 6 4 11 2 4 7 11 9 10 12
-16 18 1 0.06583129916633
-81 19.1034753858841 9.94999708635077 81 18.0954639604535 8.27666295300412 81 18.692799746979 9.16587329691677 81 18.4057919661286 8.70903412098806 85.0000022795833 17.2574835275174 9.94999693511805 83.2886582585346 18.2142446462459 9.95000011018904 82.1724218230139 18.7000339135122 9.94999999735629 85.0000010347917 15.8033371473194 8.52449099372917 85.0000032850141 16.6370235299299 9.30070571642356 85.0000028231666 16.2322370576288 8.91314266425845 83.2840546680303 16.9298457994121 8.41307323433103 82.1700620313882 17.5432124717643 8.34464942664314 83.2867678973112 17.679939548855 9.24630307121849 83.2851150558395 17.3060950984172 8.81560596704417 82.1713603881079 18.2270198218354 9.21316847609289 82.1706901541614 17.8896866928851 8.76215991488997 0 0.816686294565297 1 0.816713899163454 0.453308544053228 0.816694638289028 0.730372493662776 0.81673831089853 0 0 0 0.362971448851166 0 0.589828604383144 1 0 0.444444444444444 0 0.722222222222222 0 1 0.362983812083232 1 0.589848694635251 0.444444444444444 0.362971448851166 0.730372493662776 0.362971448851166 0.444444444444444 0.589848694635251 0.730372493662776 0.589848694635251 6 5 9 9 13 6 14 15 13 6 13 7 1 7 15 15 3 1 16 3 15 7 13 15 13 9 10 14 16 15 14 10 8 8 11 14 14 11 16 4 3 16 4 16 2 12 2 16 16 11 12 13 10 14
-12 10 1 0.06583129916633
-89.9999989364447 14.4348512063048 11 85.000004524897 18.104871886 11 88.2439003223341 16.0051819268452 11 86.7153135318197 17.1179439265365 11 89.9999958398958 12.92998808925 9.95000047435764 90.000006313919 13.8211879962488 10.5632061620147 90.0000061710604 13.3974549208763 10.2701636154046 85.0000022795833 17.2574835275174 9.94999693511805 87.8834091980003 15.0430109595111 9.94999904172264 86.4964810899597 16.2065205907414 9.94999705540232 85.0000029254663 17.7483018062769 10.5273025570473 85.0000022170437 17.5093658745232 10.2374763083745 0.494106025260182 0 0.469900024026589 1 0.483303516265462 0.373061978264389 0.476326459281817 0.68002907240889 1 0 0.718947383975015 0 0.859473691987508 0 1 1 1 0.444444444444444 1 0.722222222222222 0.705500359935401 1 0.852750179967701 1 3 1 6 9 4 3 2 4 11 10 11 4 3 6 7 7 5 9 10 4 9 12 10 8 12 11 10 9 3 7
-15 13 1 0.06583129916633
-86.1783785373219 9.49601079415537 4.50398920584463 90.0000015631408 7.95233966419322 6.04766033580677 87.9670488493818 8.81392579095986 5.18607420904014 89.0101143720472 8.37992877785313 5.62007122214687 85.0000015094792 10.2013896183368 4.30949029896875 85.5250163095577 9.88922041496355 4.39448264541289 85.8520498299434 9.69297743286791 4.4487877613389 85.0000031464011 11.1118946806419 4.92748421303749 85.0000036225375 11.6735312450656 5.3182682611855 84.9999954447569 12.2395795864028 5.71940350527083 90.0000024117361 8.39076750746528 6.47641750670833 87.2258451795873 10.5383523755614 6.06445414042166 88.6123119601658 9.46643188689747 6.27349639416935 90.0000017321744 8.14553422057732 6.23987397592818 90.0000017737862 8.2675726163693 6.35861032764702 0 0.234549808176747 0.647032323343157 1 0.262109516966384 0.593109607865025 0.444815946709569 0.802194208612471 0 0 0 0.104244255214751 0 0.169396914723971 0.444444444444444 0 0.722222222222222 0 1 0 1 1 1 0.444444444444444 1 0.722222222222222 0.803906845341482 1 0.901953422670741 1 5 8 6 6 8 7 1 7 9 3 1 12 3 13 4 8 9 7 9 10 12 13 3 12 13 14 4 2 4 14 11 15 13 14 13 15 12 1 9
-12 10 1 0.06583129916633
-81 14.6862373140109 5.10916985938746 81 16.7202928907912 6.7482503535081 81 15.6440160642965 5.81585874819107 81 16.1998274547061 6.27926033325474 84.9999961607292 14.1568349074861 7.15651154836111 82.8455001946067 15.695123842792 6.94280766204936 83.9460999002772 14.9650436060387 7.05430486387075 84.9999954447569 12.2395795864028 5.71940350527083 85.0000009103776 13.103749219542 6.34937907888375 85.0000013066084 13.6305094768017 6.74721560889661 82.8688871592675 13.6725252586795 5.38607430592203 83.9270774195793 13.0062416776693 5.55065406428983 0 0.168245174353375 1 0.188490679297323 0.445948243311478 0.176950522790895 0.730358814442242 0.182444931773069 1 1 1 0.549161411780387 1 0.774580705890194 0 1 0.444444444444444 1 0.722222222222222 1 0 0.537914173870596 0 0.768957086935298 1 3 11 6 12 11 12 9 8 7 9 12 11 3 6 4 2 6 7 12 6 10 7 5 10 9 7 6 3 4
-12 10 1 0.06583129916633
-81 12.4860288197134 3.74435292573632 81 14.6862373140109 5.10916985938746 81 13.4833953697487 4.32542993167102 81 14.0673015946872 4.69297370251077 84.9999954447569 12.2395795864028 5.71940350527083 82.8688871592675 13.6725252586795 5.38607430592203 83.9270774195793 13.0062416776693 5.55065406428983 85.0000015094792 10.2013896183368 4.30949029896875 85.0000031464011 11.1118946806419 4.92748421303749 85.0000036225375 11.6735312450656 5.3182682611855 82.7507514817382 11.5045463357956 3.97095187526382 83.8220231335164 10.8906978826326 4.12640721559015 0 0.181114278437512 1 0.168245526127611 0.445822117677242 0.175277386739194 0.713302351433368 0.171282143796614 1 1 1 0.537914173870596 1 0.768957086935298 0 1 0.444444444444444 1 0.722222222222222 1 0 0.545063578102623 0 0.772531789051312 1 3 11 7 12 11 12 9 8 7 9 12 11 3 6 4 2 6 7 11 6 10 7 5 10 9 7 6 3 4
-
-TShapes 542
-Ve
-0.000106364940939169
-91 -8.02715773595697e-05 0
-0 0
-
-0101100
-*
-Ve
-0.000132564434852941
-91 0.58444133216986 7.49121129777525e-09
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 1 0 0 1
-2 1 1 0 0 1
-4 CN 1 0 1 0
-0
-
-0101000
-+542 0 -541 0 *
-Ve
-4.48247165110009e-05
-84.9999626995833 -0.000208381321981116 0
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 2 0 0 0.80000288773947
-2 2 1 0 0 0.80000288773947
-0
-
-0101000
-+539 0 -542 0 *
-Ve
-0.000106364940939169
-85.0000068360417 0.58441566796437 8.71180554999539e-09
-0 0
-
-0101100
-*
-Ed
- 4.48247165110009e-05 1 1 0
-1 3 0 0 1
-2 3 2 0 0 1
-2 4 1 0 0 1
-0
-
-0101000
-+539 0 -537 0 *
-Ve
-0.000132243402540292
-89.9999998934386 0.584424163629603 1.06533333305459e-08
-0 0
-
-0101100
-*
-Ed
- 0.000106364940939169 1 1 0
-1 4 0 0 0.666663792412277
-2 5 1 0 0 0.666663792412277
-2 6 3 0 0 0.666663792412277
-0
-
-0101000
-+537 0 -535 0 *
-Ed
- 9.6642946761428e-05 1 1 0
-1 4 0 0.666663792412277 0.799994824123493
-2 7 1 0 0.666663792412277 0.799994824123493
-2 8 4 0 0.666663792412277 0.799994824123493
-0
-
-0101000
--541 0 +535 0 *
-Wi
-
-0101000
--540 0 -538 0 +536 0 +534 0 +533 0 *
-Fa
-0 1e-07 1 0
-
-0111000
-+532 0 *
-Ve
-4.42093720913255e-05
-80.0000306223611 -0.000145884971833432 0
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 5 0 0 1
-2 9 2 0 0 1
-0
-
-0101000
-+530 0 -539 0 *
-Ve
-4.45088228914179e-05
-80.0000117886111 0.596342476226611 6.99444436221062e-10
-0 0
-
-0101100
-*
-Ed
- 4.42093720913255e-05 1 1 0
-1 6 0 0 1
-2 10 5 0 0 1
-2 11 2 0 0 1
-0
-
-0101000
-+530 0 -528 0 *
-Ed
- 4.45088228914179e-05 1 1 0
-1 7 0 0 1
-2 12 6 0 0 1
-2 13 2 0 0 1
-0
-
-0101000
-+537 0 -528 0 *
-Wi
-
-0101000
--529 0 +527 0 -526 0 -536 0 *
-Fa
-0 1e-07 2 0
-
-0111000
-+525 0 *
-Ve
-1.11284457766635e-05
-74.9999541179167 -7.15507500004264e-06 0
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 8 0 0 1
-2 14 5 0 0 1
-0
-
-0101000
-+523 0 -530 0 *
-Ve
-4.42220270446084e-05
-75.0000054046528 2.74175728668021 1.14079513904053e-08
-0 0
-
-0101100
-*
-Ed
- 1.11284457766635e-05 1 1 0
-1 9 0 0 1
-2 15 7 0 0 1
-2 16 5 0 0 1
-0
-
-0101000
-+523 0 -521 0 *
-Ed
- 1.36810796826077e-05 1 1 0
-1 10 0 0 1
-2 17 5 0 0 1
-2 18 8 0 0 1
-0
-
-0101000
-+521 0 -528 0 *
-Wi
-
-0101000
--522 0 +520 0 +519 0 -527 0 *
-Fa
-0 1e-07 5 0
-
-0111000
-+518 0 *
-Ve
-6.06571988742403e-05
-70.00001282125 0.000135122016667211 0
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 11 0 0 1
-2 19 7 0 0 1
-0
-
-0101000
-+516 0 -523 0 *
-Ve
-6.58845916793615e-05
-70.0000014834375 6.44284568122326 7.01666665294995e-10
-0 0
-
-0101100
-*
-Ed
- 6.06571988742403e-05 1 1 0
-1 12 0 0 1
-2 20 7 0 0 1
-2 21 9 0 0 1
-0
-
-0101000
-+516 0 -514 0 *
-Ed
- 4.18860079465931e-06 1 1 0
-1 13 0 0 1
-2 22 10 0 0 1
-2 23 7 0 0 1
-0
-
-0101000
-+521 0 -514 0 *
-Wi
-
-0101000
--515 0 +513 0 -512 0 -520 0 *
-Fa
-0 1e-07 7 0
-
-0111000
-+511 0 *
-Ve
-8.11446712234462e-05
-64.9999481822222 0.000207497001387669 0
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 14 0 0 1
-2 24 9 0 0 1
-0
-
-0101000
-+509 0 -516 0 *
-Ve
-8.11446712234462e-05
-65.0000068225694 10.4862125192861 4.96418055551728e-09
-0 0
-
-0101100
-*
-Ed
- 8.11446712234462e-05 1 1 0
-1 15 0 0 1
-2 25 11 0 0 1
-2 26 9 0 0 1
-0
-
-0101000
-+509 0 -507 0 *
-Ed
- 6.58845916793615e-05 1 1 0
-1 16 0 0 1
-2 27 12 0 0 1
-2 28 9 0 0 1
-0
-
-0101000
-+514 0 -507 0 *
-Wi
-
-0101000
--508 0 +506 0 -505 0 -513 0 *
-Fa
-0 1e-07 9 0
-
-0111000
-+504 0 *
-Ve
-2.79165048058623e-05
-60.0000078664583 0.000138785579720802 0
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 17 0 0 1
-2 29 11 0 0 1
-0
-
-0101000
-+502 0 -509 0 *
-Ve
-6.56518577966825e-05
-59.9999968991216 14.0663752954828 7.03630503728798e-09
-0 0
-
-0101100
-*
-Ed
- 2.75873009040785e-05 1 1 0
-1 18 0 0 1
-2 30 11 0 0 1
-0
-
-0101000
-+502 0 -500 0 *
-Ed
- 6.30204600120393e-05 1 1 0
-1 19 0 0 1
-2 31 11 0 0 1
-2 32 13 0 0 1
-0
-
-0101000
-+500 0 -507 0 *
-Wi
-
-0101000
--501 0 +499 0 +498 0 -506 0 *
-Fa
-0 1e-07 11 0
-
-0111000
-+497 0 *
-Ve
-5.31185825788818e-05
-65.0000014186111 13.7026770037639 0.165426750187097
-0 0
-
-0101100
-*
-Ed
- 3.01511635762364e-05 1 1 0
-1 20 0 0 1
-2 33 13 0 0 1
-2 34 12 0 0 1
-0
-
-0101000
-+507 0 -495 0 *
-Ve
-7.28995204461792e-05
-59.9999742893895 15.9635247704498 0.153884315553201
-0 0
-
-0101100
-*
-Ed
- 4.24581212646297e-05 1 1 0
-1 21 0 0 1
-2 35 13 0 0 1
-0
-
-0101000
-+500 0 -493 0 *
-Ed
- 5.31185825788818e-05 1 1 0
-1 22 0 0 1
-2 36 13 0 0 1
-2 37 14 0 0 1
-0
-
-0101000
-+495 0 -493 0 *
-Wi
-
-0101000
--494 0 -498 0 +492 0 -491 0 *
-Fa
-0 1e-07 13 0
-
-0111000
-+490 0 *
-Ve
-2.71237308143473e-05
-69.9999998953472 9.82419028248264 0.173822869324563
-0 0
-
-0101100
-*
-Ed
- 4.99104695352724e-06 1 1 0
-1 23 0 0 1
-2 38 10 0 0 1
-2 39 12 0 0 1
-0
-
-0101000
-+514 0 -488 0 *
-Ed
- 2.71237308143473e-05 1 1 0
-1 24 0 0 1
-2 40 12 0 0 1
-2 41 15 0 0 1
-0
-
-0101000
-+488 0 -495 0 *
-Wi
-
-0101000
--487 0 +505 0 +494 0 -486 0 *
-Fa
-0 1e-07 12 0
-
-0111000
-+485 0 *
-Ve
-4.4828354389927e-05
-74.99999896875 5.77371237922118 0.178579553344549
-0 0
-
-0101100
-*
-Ed
- 4.42220270446084e-05 1 1 0
-1 25 0 0 1
-2 42 10 0 0 1
-2 43 8 0 0 1
-0
-
-0101000
-+521 0 -483 0 *
-Ed
- 1.88986018320085e-05 1 1 0
-1 26 0 0 1
-2 44 16 0 0 1
-2 45 10 0 0 1
-0
-
-0101000
-+488 0 -483 0 *
-Wi
-
-0101000
--482 0 +512 0 +487 0 +481 0 *
-Fa
-0 1e-07 10 0
-
-0111000
-+480 0 *
-Ve
-4.4828354389927e-05
-80.0000020402083 2.80818951430271 0.179547936047569
-0 0
-
-0101100
-*
-Ed
- 9.50874022299606e-06 1 1 0
-1 27 0 0 1
-2 46 6 0 0 1
-2 47 8 0 0 1
-0
-
-0101000
-+528 0 -478 0 *
-Ed
- 4.4828354389927e-05 1 1 0
-1 28 0 0 1
-2 48 8 0 0 1
-2 49 17 0 0 1
-0
-
-0101000
-+478 0 -483 0 *
-Wi
-
-0101000
--477 0 -519 0 +482 0 -476 0 *
-Fa
-0 1e-07 8 0
-
-0111000
-+475 0 *
-Ve
-1.05642175606207e-05
-85.0000012181944 1.4081461282442 0.176903592677951
-0 0
-
-0101100
-*
-Ed
- 8.37003548886976e-06 1 1 0
-1 29 0 0 1
-2 50 6 0 0 1
-2 51 3 0 0 1
-0
-
-0101000
-+537 0 -473 0 *
-Ed
- 3.96962687436499e-06 1 1 0
-1 30 0 0 1
-2 52 6 0 0 1
-2 53 18 0 0 1
-0
-
-0101000
-+473 0 -478 0 *
-Wi
-
-0101000
--472 0 +526 0 +477 0 -471 0 *
-Fa
-0 1e-07 6 0
-
-0111000
-+470 0 *
-Ve
-0.000132564434852941
-89.9999931135069 1.04427273662222 0.174812063931285
-0 0
-
-0101100
-*
-Ed
- 0.000132243402540292 1 1 0
-1 31 0 0 1
-2 54 3 0 0 1
-2 55 4 0 0 1
-0
-
-0101000
-+535 0 -468 0 *
-Ed
- 6.35341597896184e-06 1 1 0
-1 32 0 0 1
-2 56 3 0 0 1
-2 57 19 0 0 1
-0
-
-0101000
-+468 0 -473 0 *
-Wi
-
-0101000
--467 0 -534 0 +472 0 -466 0 *
-Fa
-0 1e-07 3 0
-
-0111000
-+465 0 *
-Ve
-0.000132564434852941
-91 0.996835572811552 0.176469571545411
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 33 0 0 1
-2 58 4 0 0 1
-4 CN 4 0 4 0
-0
-
-0101000
--463 0 +541 0 *
-Ed
- 0.000132564434852941 1 1 0
-1 34 0 0.610636491492605 1
-2 59 4 0 0.610636491492605 1
-2 60 20 0 0.610636491492605 1
-0
-
-0101000
-+463 0 -468 0 *
-Wi
-
-0101000
--462 0 -533 0 +467 0 -461 0 *
-Fa
-0 1e-07 4 0
-
-0111000
-+460 0 *
-Ve
-0.000132564434852941
-91 2.14674389292155 0.815347438095333
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 35 0 0 1
-2 61 20 0 0 1
-4 CN 20 0 20 0
-0
-
-0101000
--458 0 +463 0 *
-Ve
-2.09007955177743e-05
-90.0000002382292 2.22963405825694 0.768185029009722
-0 0
-
-0101100
-*
-Ed
- 6.68176061621384e-06 1 1 0
-1 36 0 0 1
-2 62 20 0 0 1
-2 63 19 0 0 1
-0
-
-0101000
-+468 0 -456 0 *
-Ed
- 6.68208547009024e-06 1 1 0
-1 37 0 0 0.399331834520139
-2 64 20 0 0 0.399331834520139
-2 65 21 0 0 0.399331834520139
-0
-
-0101000
--458 0 +456 0 *
-Wi
-
-0101000
--457 0 +461 0 +455 0 +454 0 *
-Fa
-0 1e-07 20 0
-
-0111000
-+453 0 *
-Ve
-2.21045941097868e-05
-85.0000002117014 3.02250816140694 0.640571071790451
-0 0
-
-0101100
-*
-Ed
- 1.05642175606207e-05 1 1 0
-1 38 0 0 1
-2 66 18 0 0 1
-2 67 19 0 0 1
-0
-
-0101000
-+473 0 -451 0 *
-Ed
- 2.32481486968188e-06 1 1 0
-1 39 0 0 1
-2 68 22 0 0 1
-2 69 19 0 0 1
-0
-
-0101000
-+451 0 -456 0 *
-Wi
-
-0101000
-+466 0 +450 0 +449 0 -455 0 *
-Fa
-0 1e-07 19 0
-
-0111000
-+448 0 *
-Ve
-1.18754887159834e-05
-79.999999682118 5.07520279449278 0.595053373678229
-0 0
-
-0101100
-*
-Ed
- 1.18754887159834e-05 1 1 0
-1 40 0 0 1
-2 70 17 0 0 1
-2 71 18 0 0 1
-0
-
-0101000
-+478 0 -446 0 *
-Ed
- 7.53528706151755e-07 1 1 0
-1 41 0 0 1
-2 72 18 0 0 1
-2 73 23 0 0 1
-0
-
-0101000
-+446 0 -451 0 *
-Wi
-
-0101000
-+471 0 +445 0 +444 0 -450 0 *
-Fa
-0 1e-07 18 0
-
-0111000
-+443 0 *
-Ve
-1.38589868389421e-05
-75.0000031535417 8.28421165700312 0.550464560986389
-0 0
-
-0101100
-*
-Ed
- 7.31710163299559e-06 1 1 0
-1 42 0 0 1
-2 74 17 0 0 1
-2 75 16 0 0 1
-0
-
-0101000
-+483 0 -441 0 *
-Ed
- 1.18494166306383e-05 1 1 0
-1 43 0 0 1
-2 76 24 0 0 1
-2 77 17 0 0 1
-0
-
-0101000
-+441 0 -446 0 *
-Wi
-
-0101000
-+476 0 +440 0 +439 0 -445 0 *
-Fa
-0 1e-07 17 0
-
-0111000
-+438 0 *
-Ve
-2.48188108077455e-05
-69.9999960797917 12.1427858566979 0.515870183066493
-0 0
-
-0101100
-*
-Ed
- 2.00861778080046e-05 1 1 0
-1 44 0 0 1
-2 78 16 0 0 1
-2 79 15 0 0 1
-0
-
-0101000
-+488 0 -436 0 *
-Ed
- 4.36990101964063e-06 1 1 0
-1 45 0 0 1
-2 80 25 0 0 1
-2 81 16 0 0 1
-0
-
-0101000
-+436 0 -441 0 *
-Wi
-
-0101000
--481 0 +435 0 +434 0 -440 0 *
-Fa
-0 1e-07 16 0
-
-0111000
-+433 0 *
-Ve
-2.18191363515606e-05
-65.0000032830556 15.5205120868125 0.496451221033681
-0 0
-
-0101100
-*
-Ed
- 2.18191363515606e-05 1 1 0
-1 46 0 0 1
-2 82 14 0 0 1
-2 83 15 0 0 1
-0
-
-0101000
-+495 0 -431 0 *
-Ed
- 1.28866976312779e-05 1 1 0
-1 47 0 0 1
-2 84 15 0 0 1
-2 85 26 0 0 1
-0
-
-0101000
-+431 0 -436 0 *
-Wi
-
-0101000
-+486 0 +430 0 +429 0 -435 0 *
-Fa
-0 1e-07 15 0
-
-0111000
-+428 0 *
-Ve
-3.22309152116411e-05
-59.9999976164151 17.1397658485617 0.49425861458974
-0 0
-
-0101100
-*
-Ed
- 2.43956560058471e-05 1 1 0
-1 48 0 0 1
-2 86 14 0 0 1
-0
-
-0101000
-+493 0 -426 0 *
-Ed
- 1.35089550642776e-05 1 1 0
-1 49 0 0 1
-2 87 14 0 0 1
-2 88 27 0 0 1
-0
-
-0101000
-+426 0 -431 0 *
-Wi
-
-0101000
-+491 0 +425 0 +424 0 -430 0 *
-Fa
-0 1e-07 14 0
-
-0111000
-+423 0 *
-Ve
-2.32141810903688e-05
-59.9999977674123 18.1701431573532 1.03722297638841
-0 0
-
-0101100
-*
-Ed
- 2.02147057471086e-05 1 1 0
-1 50 0 0 1
-2 89 27 0 0 1
-0
-
-0101000
-+426 0 -421 0 *
-Ve
-1.54324786902773e-05
-65.0000025698264 17.0650296640278 1.06010102884653
-0 0
-
-0101100
-*
-Ed
- 1.54324786902773e-05 1 1 0
-1 51 0 0 1
-2 90 28 0 0 1
-2 91 27 0 0 1
-0
-
-0101000
-+421 0 -419 0 *
-Ed
- 1.46731301715077e-05 1 1 0
-1 52 0 0 1
-2 92 26 0 0 1
-2 93 27 0 0 1
-0
-
-0101000
-+431 0 -419 0 *
-Wi
-
-0101000
--424 0 +420 0 +418 0 -417 0 *
-Fa
-0 1e-07 27 0
-
-0111000
-+416 0 *
-Ve
-4.01180822282458e-05
-59.99999682 18.8951259716667 1.63324764065
-0 0
-
-0101100
-*
-Ed
- 1.74617025210469e-05 1 1 0
-1 53 0 0 1
-2 94 28 0 0 1
-0
-
-0101000
-+421 0 -414 0 *
-Ve
-1.13272157679175e-05
-65.0000025559722 18.0397955506944 1.64497035253229
-0 0
-
-0101100
-*
-Ed
- 4.90987002931649e-06 1 1 0
-1 54 0 0 1
-2 95 28 0 0 1
-2 96 29 0 0 1
-0
-
-0101000
-+414 0 -412 0 *
-Ed
- 2.40301865686349e-06 1 1 0
-1 55 0 0 1
-2 97 28 0 0 1
-2 98 30 0 0 1
-0
-
-0101000
-+419 0 -412 0 *
-Wi
-
-0101000
--418 0 +413 0 +411 0 -410 0 *
-Fa
-0 1e-07 28 0
-
-0111000
-+409 0 *
-Ve
-5.3014988390372e-05
-59.99999428 19.6022948675 2.57416473833333
-0 0
-
-0101100
-*
-Ed
- 3.58336901042791e-05 1 1 0
-1 56 0 0 1
-2 99 29 0 0 1
-0
-
-0101000
-+414 0 -407 0 *
-Ve
-2.43240941541086e-05
-65.0000039734722 19.0493349621181 2.64314961526042
-0 0
-
-0101100
-*
-Ed
- 1.10487634461322e-05 1 1 0
-1 57 0 0 1
-2 100 31 0 0 1
-2 101 29 0 0 1
-0
-
-0101000
-+407 0 -405 0 *
-Ed
- 1.13272157679175e-05 1 1 0
-1 58 0 0 1
-2 102 32 0 0 1
-2 103 29 0 0 1
-0
-
-0101000
-+412 0 -405 0 *
-Wi
-
-0101000
--411 0 +406 0 +404 0 -403 0 *
-Fa
-0 1e-07 29 0
-
-0111000
-+402 0 *
-Ve
-2.79627244241075e-05
-59.9999982019445 19.95393356 3.63946958358333
-0 0
-
-0101100
-*
-Ed
- 1.10240165612044e-05 1 1 0
-1 59 0 0 1
-2 104 31 0 0 1
-0
-
-0101000
-+407 0 -400 0 *
-Ve
-2.43240941541086e-05
-65.0000078159028 19.6447051436111 3.73591221805069
-0 0
-
-0101100
-*
-Ed
- 2.32039219872522e-05 1 1 0
-1 60 0 0 1
-2 105 33 0 0 1
-2 106 31 0 0 1
-0
-
-0101000
-+400 0 -398 0 *
-Ed
- 2.43240941541086e-05 1 1 0
-1 61 0 0 1
-2 107 31 0 0 1
-2 108 34 0 0 1
-0
-
-0101000
-+405 0 -398 0 *
-Wi
-
-0101000
--404 0 +399 0 +397 0 -396 0 *
-Fa
-0 1e-07 31 0
-
-0111000
-+395 0 *
-Ve
-4.67019248290997e-05
-59.9999983030556 20.00000106 4.30430406977778
-0 0
-
-0101100
-*
-Ed
- 1.55240150972988e-05 1 1 0
-1 62 0 0 1
-2 109 33 0 0 1
-0
-
-0101000
-+400 0 -393 0 *
-Ve
-3.19115800279182e-05
-65.000006762309 20.0000023845486 5.82328700209896
-0 0
-
-0101100
-*
-Ed
- 1.72581258522984e-05 1 1 0
-1 63 0 0 1
-2 110 35 0 0 1
-2 111 33 0 0 1
-0
-
-0101000
-+391 0 -393 0 *
-Ed
- 1.72887361708634e-05 1 1 0
-1 64 0 0 1
-2 112 36 0 0 1
-2 113 33 0 0 1
-0
-
-0101000
-+398 0 -391 0 *
-Wi
-
-0101000
--397 0 +392 0 -390 0 -389 0 *
-Fa
-0 1e-07 33 0
-
-0111000
-+388 0 *
-Ve
-4.87763637124305e-05
-65.0000015894792 20.0000008280208 9.95000056915278
-0 0
-
-0101100
-*
-Ed
- 3.19115800279182e-05 1 1 0
-1 65 0 0 1
-2 114 37 0 0 1
-2 115 35 0 0 1
-0
-
-0101000
-+391 0 -386 0 *
-Ve
-6.95746077108423e-05
-59.9999687075368 20.0000002640164 9.95000038429044
-0 0
-
-0101100
-*
-Ed
- 4.53286142350298e-05 1 1 0
-1 66 0 0 1
-2 116 35 0 0 1
-0
-
-0101000
-+393 0 -384 0 *
-Ed
- 4.87763637124305e-05 1 1 0
-1 67 0 0 1
-2 117 35 0 0 1
-2 118 38 0 0 1
-0
-
-0101000
-+386 0 -384 0 *
-Wi
-
-0101000
--385 0 +390 0 +383 0 -382 0 *
-Fa
-0 1e-07 35 0
-
-0111000
-+381 0 *
-Ve
-3.94941334346732e-05
-69.9999999213889 19.9999964361458 7.89309105981944
-0 0
-
-0101100
-*
-Ve
-6.90176164924024e-05
-69.999999151875 20.0000015980903 9.94999985564236
-0 0
-
-0101100
-*
-Ed
- 1.15837334624785e-05 1 1 0
-1 68 0 0 1
-2 119 37 0 0 1
-2 120 39 0 0 1
-0
-
-0101000
-+379 0 -378 0 *
-Ed
- 1.89918323696621e-05 1 1 0
-1 69 0 0 1
-2 121 37 0 0 1
-2 122 40 0 0 1
-0
-
-0101000
-+379 0 -391 0 *
-Ed
- 3.26020732965074e-05 1 1 0
-1 70 0 0 1
-2 123 37 0 0 1
-2 124 41 0 0 1
-0
-
-0101000
-+378 0 -386 0 *
-Wi
-
-0101000
--377 0 +376 0 +385 0 -375 0 *
-Fa
-0 1e-07 37 0
-
-0111000
-+374 0 *
-Ve
-3.22832667025462e-05
-73.89771733 19.9999987779861 9.94999986159028
-0 0
-
-0101100
-*
-Ed
- 1.48842459227615e-05 1 1 0
-1 71 0 0 1
-2 125 42 0 0 1
-2 126 39 0 0 1
-0
-
-0101000
-+372 0 -378 0 *
-Ed
- 1e-07 1 1 1
-2 127 39 0 0 1
-0
-
-0101000
-+372 0 -372 0 *
-Ed
- 3.22832667025462e-05 1 1 0
-1 72 0 0 1
-2 128 43 0 0 1
-2 129 39 0 0 1
-0
-
-0101000
-+372 0 -379 0 *
-Wi
-
-0101000
--371 0 +370 0 +369 0 +377 0 *
-Fa
-0 1e-07 39 0
-
-0111000
-+368 0 *
-Ve
-7.2444461966862e-05
-73.8976968150011 19.8921022673891 12.0000007116937
-0 0
-
-0101100
-*
-Ed
- 1.15800853239613e-05 1 1 0
-1 73 0 0 1
-2 130 42 0 0 1
-2 131 44 0 0 1
-0
-
-0101000
-+372 0 -366 0 *
-Ve
-7.2444461966862e-05
-70.0000045562153 19.8921042805903 12.0000002950417
-0 0
-
-0101100
-*
-Ed
- 6.90176164924024e-05 1 1 0
-1 74 0 0 1
-2 132 42 0 0 1
-2 133 41 0 0 1
-0
-
-0101000
-+378 0 -364 0 *
-Ed
- 7.2444461966862e-05 1 1 0
-1 75 0 0 0.779538430687208
-2 134 45 0 0 0.779538430687208
-2 135 42 0 0 0.779538430687208
-0
-
-0101000
-+364 0 -366 0 *
-Wi
-
-0101000
--365 0 +371 0 +363 0 +362 0 *
-Fa
-0 1e-07 42 0
-
-0111000
-+361 0 *
-Ve
-3.1700641280747e-05
-75.0000049276389 19.9671293044444 10.5744760476354
-0 0
-
-0101100
-*
-Ed
- 1.10879071226655e-05 1 1 0
-1 76 0 0 1
-2 136 44 0 0 1
-2 137 46 0 0 1
-0
-
-0101000
-+372 0 -359 0 *
-Ve
-5.66066587128093e-05
-75.0000071244097 19.8921038444792 11.9999987971181
-0 0
-
-0101100
-*
-Ed
- 1.49010219769183e-05 1 1 0
-1 77 0 0 1
-2 138 44 0 0 1
-2 139 45 0 0 1
-0
-
-0101000
-+366 0 -357 0 *
-Ed
- 2.4582785482178e-05 1 1 0
-1 78 0 0 1
-2 140 44 0 0 1
-2 141 47 0 0 1
-0
-
-0101000
-+359 0 -357 0 *
-Wi
-
-0101000
--358 0 +365 0 +356 0 -355 0 *
-Fa
-0 1e-07 44 0
-
-0111000
-+354 0 *
-Ve
-3.1700641280747e-05
-75.0000123452431 19.9784171585069 9.95000068319445
-0 0
-
-0101100
-*
-Ed
- 1.63232070498764e-05 1 1 0
-1 79 0 0 1
-2 142 43 0 0 1
-2 143 46 0 0 1
-0
-
-0101000
-+352 0 -372 0 *
-Ed
- 1e-07 1 1 1
-2 144 46 0 0 1
-0
-
-0101000
-+372 0 -372 0 *
-Ed
- 3.1700641280747e-05 1 1 0
-1 80 0 0 1
-2 145 48 0 0 1
-2 146 46 0 0 1
-0
-
-0101000
-+359 0 -352 0 *
-Wi
-
-0101000
-+351 0 +350 0 +358 0 +349 0 *
-Fa
-0 1e-07 46 0
-
-0111000
-+348 0 *
-Ve
-3.94941334346732e-05
-75.000002821875 19.7611716447222 8.00899722810417
-0 0
-
-0101100
-*
-Ed
- 2.30358001848527e-05 1 1 0
-1 81 0 0 1
-2 147 43 0 0 1
-2 148 49 0 0 1
-0
-
-0101000
-+352 0 -346 0 *
-Ed
- 3.94941334346732e-05 1 1 0
-1 82 0 0 1
-2 149 43 0 0 1
-2 150 50 0 0 1
-0
-
-0101000
-+346 0 -379 0 *
-Wi
-
-0101000
--351 0 +345 0 +344 0 -369 0 *
-Fa
-0 1e-07 43 0
-
-0111000
-+343 0 *
-Ve
-4.76775946310222e-05
-77.3975987834192 19.8186833961538 9.94999927017929
-0 0
-
-0101100
-*
-Ve
-4.76775946310222e-05
-80.0000093251736 19.3715868731944 9.94999500945139
-0 0
-
-0101100
-*
-Ed
- 4.76775946310222e-05 1 1 0
-1 83 0 0 1
-2 151 51 0 0 1
-2 152 49 0 0 1
-0
-
-0101000
-+341 0 -340 0 *
-Ve
-2.97994388426334e-05
-80.0000080277083 18.5019330750347 8.22177477498264
-0 0
-
-0101100
-*
-Ed
- 2.97994388426334e-05 1 1 0
-1 84 0 0 1
-2 153 49 0 0 1
-2 154 52 0 0 1
-0
-
-0101000
-+340 0 -338 0 *
-Ed
- 1.79448960215717e-05 1 1 0
-1 85 0 0 1
-2 155 49 0 0 1
-2 156 53 0 0 1
-0
-
-0101000
-+338 0 -346 0 *
-Ed
- 2.69707624111069e-05 1 1 0
-1 86 0 0.534943629729145 1
-2 157 49 0 0.534943629729145 1
-2 158 48 0 0.534943629729145 1
-0
-
-0101000
-+341 0 -352 0 *
-Wi
-
-0101100
-+339 0 +337 0 +336 0 -345 0 -335 0 *
-Fa
-0 1e-07 49 0
-
-0111000
-+334 0 *
-Ve
-3.59560100123656e-05
-77.3827360281858 19.8921034873785 12.0000003849575
-0 0
-
-0101100
-*
-Ed
- 3.59560100123656e-05 1 1 0
-1 87 0 0 1
-2 159 48 0 0 1
-2 160 51 0 0 1
-0
-
-0101000
-+332 0 -341 0 *
-Ve
-3.54548028719701e-05
-80.0000062245486 19.8000054022569 11.9999989432917
-0 0
-
-0101100
-*
-Ed
- 3.53500101981473e-05 1 1 0
-1 88 0 0 1
-2 161 54 0 0 1
-2 162 51 0 0 1
-0
-
-0101000
-+332 0 -330 0 *
-Ed
- 3.54548028719701e-05 1 1 0
-1 89 0 0 1
-2 163 55 0 0 1
-2 164 51 0 0 1
-0
-
-0101000
-+330 0 -340 0 *
-Wi
-
-0101000
--331 0 +329 0 +328 0 -339 0 *
-Fa
-0 1e-07 51 0
-
-0111000
-+327 0 *
-Ed
- 2.48860373198486e-05 1 1 0
-1 90 0 0 1
-2 165 48 0 0 1
-2 166 47 0 0 1
-0
-
-0101000
-+332 0 -359 0 *
-Wi
-
-0101000
--325 0 +331 0 +335 0 -349 0 *
-Fa
-0 1e-07 48 0
-
-0111000
-+324 0 *
-Ed
- 1.73842980181449e-05 1 1 0
-1 91 0 0 1
-2 167 56 0 0 1
-2 168 47 0 0 1
-0
-
-0101000
-+332 0 -357 0 *
-Ed
- 1e-07 1 1 1
-2 169 47 0 0 1
-0
-
-0101000
-+332 0 -332 0 *
-Wi
-
-0101000
--322 0 +321 0 +325 0 +355 0 *
-Fa
-0 1e-07 47 0
-
-0111000
-+320 0 *
-Ve
-0.000204317536346094
-77.3826580563885 19.7868475836931 14.0000019614178
-0 0
-
-0101100
-*
-Ed
- 2.21943780296004e-05 1 1 0
-1 92 0 0 1
-2 170 57 0 0 1
-2 171 56 0 0 1
-0
-
-0101000
-+332 0 -318 0 *
-Ve
-6.13208540096211e-05
-74.9999849262153 19.7868472809375 14.0000007276736
-0 0
-
-0101100
-*
-Ed
- 5.66066587128093e-05 1 1 0
-1 93 0 0 1
-2 172 45 0 0 1
-2 173 56 0 0 1
-0
-
-0101000
-+357 0 -316 0 *
-Ed
- 6.13208540096211e-05 1 1 0
-1 94 0 0 1
-2 174 56 0 0 1
-2 175 58 0 0 1
-0
-
-0101000
-+318 0 -316 0 *
-Wi
-
-0101000
--317 0 +322 0 +315 0 -314 0 *
-Fa
-0 1e-07 56 0
-
-0111000
-+313 0 *
-Ve
-0.000122316849809661
-80.0000045548611 19.8084754930556 13.5889545742014
-0 0
-
-0101100
-*
-Ed
- 2.67813180331808e-05 1 1 0
-1 95 0 0 1
-2 176 54 0 0 1
-2 177 57 0 0 1
-0
-
-0101000
-+332 0 -311 0 *
-Ve
-0.000204317536346094
-79.9999927156597 19.7868459422917 13.9999966477083
-0 0
-
-0101100
-*
-Ed
- 0.000204317536346094 1 1 0
-1 96 0 0.47652841820184 1
-2 178 58 0 0.47652841820184 1
-2 179 57 0 0.47652841820184 1
-0
-
-0101000
-+318 0 -309 0 *
-Ed
- 0.000122316849809661 1 1 0
-1 97 0 0 1
-2 180 59 0 0 1
-2 181 57 0 0 1
-0
-
-0101000
-+309 0 -311 0 *
-Wi
-
-0101000
--310 0 +317 0 +308 0 +307 0 *
-Fa
-0 1e-07 57 0
-
-0111000
-+306 0 *
-Ed
- 1e-07 1 1 1
-2 182 54 0 0 1
-0
-
-0101000
-+332 0 -332 0 *
-Ed
- 2.82961956121895e-05 1 1 0
-1 98 0 0 1
-2 183 60 0 0 1
-2 184 54 0 0 1
-0
-
-0101000
-+311 0 -330 0 *
-Wi
-
-0101000
--329 0 +304 0 +310 0 +303 0 *
-Fa
-0 1e-07 54 0
-
-0111000
-+302 0 *
-Ve
-9.29783715859558e-05
-80.6810371069271 19.786841898125 13.9999999124826
-0 0
-
-0101100
-*
-Ed
- 1.78677793822095e-05 1 1 0
-1 99 0 0 1
-2 185 60 0 0 1
-2 186 59 0 0 1
-0
-
-0101000
-+300 0 -311 0 *
-Ve
-3.67373464016864e-05
-80.6930473906734 19.7371199962327 12.0000004397261
-0 0
-
-0101100
-*
-Ed
- 7.66701148898324e-06 1 1 0
-1 100 0 0 1
-2 187 61 0 0 1
-2 188 60 0 0 1
-0
-
-0101000
-+300 0 -298 0 *
-Ed
- 2.86003810387358e-05 1 1 0
-1 101 0 0 1
-2 189 60 0 0 1
-2 190 55 0 0 1
-0
-
-0101000
-+298 0 -330 0 *
-Wi
-
-0101000
--299 0 +297 0 +296 0 -303 0 *
-Fa
-0 1e-07 60 0
-
-0111000
-+295 0 *
-Ed
- 9.29783715859558e-05 1 1 0
-1 102 0 0 1
-2 191 59 0 0 1
-2 192 62 0 0 1
-0
-
-0101000
-+300 0 -309 0 *
-Ed
- 1e-07 1 1 1
-2 193 59 0 0 1
-0
-
-0101000
-+300 0 -300 0 *
-Wi
-
-0101000
--293 0 +292 0 +299 0 -307 0 *
-Fa
-0 1e-07 59 0
-
-0111000
-+291 0 *
-Ve
-8.6147300432308e-05
-80.0000052961111 19.7000005780556 15.64999984375
-0 0
-
-0101100
-*
-Ed
- 8.6147300432308e-05 1 1 0
-1 103 0 0 1
-2 194 62 0 0 1
-2 195 58 0 0 1
-0
-
-0101000
-+289 0 -309 0 *
-Ve
-7.71663224501936e-05
-83.4215252151389 19.7000021379167 15.6500007720833
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 104 0 0 1
-2 196 62 0 0 1
-0
-
-0101000
-+289 0 -287 0 *
-Ed
- 7.71663224501936e-05 1 1 0
-1 105 0 0 1
-2 197 62 0 0 1
-2 198 63 0 0 1
-0
-
-0101000
-+287 0 -300 0 *
-Wi
-
-0101000
--288 0 +286 0 +285 0 +293 0 *
-Fa
-0 1e-07 62 0
-
-0111000
-+284 0 *
-Ve
-3.00013816696929e-05
-75.0000044491667 19.7000013970833 15.6499990098611
-0 0
-
-0101100
-*
-Ed
- 3.00013816696929e-05 1 1 0
-1 106 0 0 1
-2 199 64 0 0 1
-2 200 58 0 0 1
-0
-
-0101000
-+282 0 -316 0 *
-Ed
- 1e-07 1 1 0
-1 107 0 0 1
-2 201 58 0 0 1
-0
-
-0101000
-+282 0 -289 0 *
-Wi
-
-0101000
--281 0 +280 0 +288 0 -308 0 +314 0 *
-Fa
-0 1e-07 58 0
-
-0111000
-+279 0 *
-Ve
-7.56393996677992e-06
-70.0000010597222 19.7000021913889 15.6499992881944
-0 0
-
-0101100
-*
-Ve
-2.88391712116896e-05
-69.9999987018403 19.7868476105556 14.0000034781597
-0 0
-
-0101100
-*
-Ed
- 7.56393996677992e-06 1 1 0
-1 108 0 0 1
-2 202 65 0 0 1
-2 203 64 0 0 1
-0
-
-0101000
-+277 0 -276 0 *
-Ed
- 1e-07 1 1 0
-1 109 0 0 1
-2 204 64 0 0 1
-0
-
-0101000
-+277 0 -282 0 *
-Ed
- 2.88391712116896e-05 1 1 0
-1 110 0 0 1
-2 205 64 0 0 1
-2 206 45 0 0 1
-0
-
-0101000
-+276 0 -316 0 *
-Wi
-
-0101000
--275 0 +274 0 +281 0 -273 0 *
-Fa
-0 1e-07 64 0
-
-0111000
-+272 0 *
-Ve
-7.30943400232998e-06
-65.0000077358333 19.7000015044444 15.6499994345833
-0 0
-
-0101100
-*
-Ve
-2.62459975940264e-05
-65.0000021326042 19.7868430874653 14.0000034767708
-0 0
-
-0101100
-*
-Ed
- 7.30943400232998e-06 1 1 0
-1 111 0 0 1
-2 207 66 0 0 1
-2 208 65 0 0 1
-0
-
-0101000
-+270 0 -269 0 *
-Ed
- 1e-07 1 1 0
-1 112 0 0 1
-2 209 65 0 0 1
-0
-
-0101000
-+270 0 -277 0 *
-Ed
- 2.62459975940264e-05 1 1 0
-1 113 0 0 1
-2 210 67 0 0 1
-2 211 65 0 0 1
-0
-
-0101000
-+269 0 -276 0 *
-Wi
-
-0101000
--268 0 +267 0 +275 0 -266 0 *
-Fa
-0 1e-07 65 0
-
-0111000
-+265 0 *
-Ve
-2.56781214486622e-05
-59.9999998141667 19.7000017838194 15.6499982756945
-0 0
-
-0101100
-*
-Ve
-3.19090998375492e-05
-59.9999903761457 19.7868438596113 14.0000078818605
-0 0
-
-0101100
-*
-Ed
- 2.20098183765163e-05 1 1 0
-1 114 0 0 1
-2 212 66 0 0 1
-0
-
-0101000
-+263 0 -262 0 *
-Ed
- 1e-07 1 1 0
-1 115 0 0 1
-2 213 66 0 0 1
-0
-
-0101000
-+263 0 -270 0 *
-Ed
- 1.50596850834094e-05 1 1 0
-1 116 0 0 1
-2 214 66 0 0 1
-2 215 68 0 0 1
-0
-
-0101000
-+262 0 -269 0 *
-Wi
-
-0101000
--261 0 +260 0 +268 0 -259 0 *
-Fa
-0 1e-07 66 0
-
-0111000
-+258 0 *
-Ve
-1.80651891800273e-05
-65.0000032453819 19.8921035660764 12.0000008452639
-0 0
-
-0101100
-*
-Ve
-3.37990180931503e-05
-59.9999910313734 19.8921024364285 12.0000001037453
-0 0
-
-0101100
-*
-Ed
- 7.95965727164695e-06 1 1 0
-1 117 0 0 1
-2 216 38 0 0 1
-2 217 68 0 0 1
-0
-
-0101000
-+256 0 -255 0 *
-Ed
- 2.51653306919719e-05 1 1 0
-1 118 0 0 1
-2 218 68 0 0 1
-0
-
-0101000
-+255 0 -262 0 *
-Ed
- 1.28566597563753e-05 1 1 0
-1 119 0 0 1
-2 219 68 0 0 1
-2 220 67 0 0 1
-0
-
-0101000
-+256 0 -269 0 *
-Wi
-
-0101000
-+254 0 +253 0 +259 0 -252 0 *
-Fa
-0 1e-07 68 0
-
-0111000
-+251 0 *
-Ed
- 1.47713749989411e-05 1 1 0
-1 120 0 0 1
-2 221 41 0 0 1
-2 222 38 0 0 1
-0
-
-0101000
-+386 0 -256 0 *
-Ed
- 1.76367843706907e-05 1 1 0
-1 121 0 0 1
-2 223 38 0 0 1
-0
-
-0101000
-+384 0 -255 0 *
-Wi
-
-0101000
--249 0 +382 0 +248 0 -254 0 *
-Fa
-0 1e-07 38 0
-
-0111000
-+247 0 *
-Ed
- 1.80651891800273e-05 1 1 0
-1 122 0 0 1
-2 224 41 0 0 1
-2 225 67 0 0 1
-0
-
-0101000
-+364 0 -256 0 *
-Wi
-
-0101000
--363 0 +375 0 +249 0 -245 0 *
-Fa
-0 1e-07 41 0
-
-0111000
-+244 0 *
-Ed
- 2.35639928694355e-05 1 1 0
-1 123 0 0 1
-2 226 67 0 0 1
-2 227 45 0 0 1
-0
-
-0101000
-+364 0 -276 0 *
-Wi
-
-0101000
-+245 0 +252 0 +266 0 -242 0 *
-Fa
-0 1e-07 67 0
-
-0111000
-+241 0 *
-Wi
-
-0101100
--362 0 +242 0 +273 0 -315 0 -356 0 *
-Fa
-0 1e-07 45 0
-
-0111000
-+239 0 *
-Ve
-6.0913089179526e-05
-85.0000045565278 19.6384809797222 15.6500014713889
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 124 0 0 1
-2 228 63 0 0 1
-0
-
-0101000
-+287 0 -237 0 *
-Ve
-6.0913089179526e-05
-84.9999998422222 19.4727300962153 14.0000013576389
-0 0
-
-0101100
-*
-Ed
- 6.0913089179526e-05 1 1 0
-1 125 0 0 1
-2 229 69 0 0 1
-2 230 63 0 0 1
-0
-
-0101000
-+237 0 -235 0 *
-Ed
- 5.09194846712761e-05 1 1 0
-1 126 0 0 1
-2 231 61 0 0 1
-2 232 63 0 0 1
-0
-
-0101000
-+300 0 -235 0 *
-Wi
-
-0101000
--285 0 +236 0 +234 0 -233 0 *
-Fa
-0 1e-07 63 0
-
-0111000
-+232 0 *
-Ve
-2.46085840330547e-05
-90.0000028620833 18.5591962070833 15.6500022013889
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 127 0 0 1
-2 233 69 0 0 1
-0
-
-0101000
-+237 0 -230 0 *
-Ve
-3.19634782976872e-05
-89.9999991264236 17.5727300257639 14.00000199
-0 0
-
-0101100
-*
-Ed
- 2.46085840330547e-05 1 1 0
-1 128 0 0 1
-2 234 70 0 0 1
-2 235 69 0 0 1
-0
-
-0101000
-+230 0 -228 0 *
-Ed
- 2.8475441200989e-05 1 1 0
-1 129 0 0 1
-2 236 71 0 0 1
-2 237 69 0 0 1
-0
-
-0101000
-+228 0 -235 0 *
-Wi
-
-0101000
--234 0 +229 0 +227 0 +226 0 *
-Fa
-0 1e-07 69 0
-
-0111000
-+225 0 *
-Ve
-3.19634782976872e-05
-91 18.1175735317957 15.650001895175
-0 0
-
-0101100
-*
-Ve
-3.19634782976872e-05
-91 16.9412309157166 14.0000025157376
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 130 0 0 1
-2 238 70 0 0 1
-4 CN 70 0 70 0
-0
-
-0101000
-+223 0 -222 0 *
-Ed
- 3.19634782976872e-05 1 1 0
-1 131 0 0.615404939524226 1
-2 239 72 0 0.615404939524226 1
-2 240 70 0 0.615404939524226 1
-0
-
-0101000
-+222 0 -228 0 *
-Ed
- 1e-07 1 1 0
-1 132 0 0 0.394064939452013
-2 241 70 0 0 0.394064939452013
-0
-
-0101000
-+230 0 -223 0 *
-Wi
-
-0101000
-+221 0 +220 0 -227 0 +219 0 *
-Fa
-0 1e-07 70 0
-
-0111000
-+218 0 *
-Ve
-3.73599189451604e-05
-91 14.8099993484501 12.000000837245
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 133 0 0 1
-2 242 72 0 0 1
-4 CN 72 0 72 0
-0
-
-0101000
-+222 0 -216 0 *
-Ve
-3.73599189451604e-05
-89.9999968472222 15.7012992258924 12.000002151941
-0 0
-
-0101100
-*
-Ed
- 7.75352343017894e-06 1 1 0
-1 134 0 0.613942249038778 1
-2 243 73 0 0.613942249038778 1
-2 244 72 0 0.613942249038778 1
-0
-
-0101000
-+216 0 -214 0 *
-Ed
- 1.61674990849722e-05 1 1 0
-1 135 0 0 1
-2 245 72 0 0 1
-2 246 71 0 0 1
-0
-
-0101000
-+228 0 -214 0 *
-Wi
-
-0101000
-+215 0 +213 0 -212 0 -220 0 *
-Fa
-0 1e-07 72 0
-
-0111000
-+211 0 *
-Ve
-3.73599189451604e-05
-91 11.8221269530993 9.94999977942823
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 136 0 0 1
-2 247 73 0 0 1
-4 CN 73 0 73 0
-0
-
-0101000
-+216 0 -209 0 *
-Ve
-3.73599189451604e-05
-89.9999958398958 12.92998808925 9.95000047435764
-0 0
-
-0101100
-*
-Ed
- 3.21652491770359e-05 1 1 0
-1 137 0 0.604620186820489 1
-2 248 73 0 0.604620186820489 1
-2 249 74 0 0.604620186820489 1
-0
-
-0101000
-+209 0 -207 0 *
-Ed
- 3.73599189451604e-05 1 1 0
-1 138 0 0 1
-2 250 75 0 0 1
-2 251 73 0 0 1
-0
-
-0101000
-+214 0 -207 0 *
-Wi
-
-0101000
-+208 0 +206 0 -205 0 -213 0 *
-Fa
-0 1e-07 73 0
-
-0111000
-+204 0 *
-Ve
-3.21652491770359e-05
-91 10.2897003114331 8.9045864895427
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 139 0 0 1
-2 252 74 0 0 1
-4 CN 74 0 74 0
-0
-
-0101000
-+209 0 -202 0 *
-Ve
-1.74698737006962e-05
-89.9999985447917 11.3362545017222 8.84881705362153
-0 0
-
-0101100
-*
-Ed
- 1.74330203163144e-05 1 1 0
-1 140 0 0.604818885230735 1
-2 253 74 0 0.604818885230735 1
-2 254 76 0 0.604818885230735 1
-0
-
-0101000
-+202 0 -200 0 *
-Ed
- 1.37910123140874e-05 1 1 0
-1 141 0 0 1
-2 255 77 0 0 1
-2 256 74 0 0 1
-6 1 1 0
-6 2 2 0
-0
-
-0101000
-+207 0 -200 0 *
-Wi
-
-0101000
-+201 0 +199 0 -198 0 -206 0 *
-Fa
-0 1e-07 74 0
-
-0111000
-+197 0 *
-Ve
-2.54654663933075e-05
-91 8.68210536123528 7.63496833970034
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 142 0 0 1
-2 257 76 0 0 1
-4 CN 76 0 76 0
-0
-
-0101000
-+202 0 -195 0 *
-Ve
-2.54654663933075e-05
-89.9999984129861 9.63609133568403 7.56582537454167
-0 0
-
-0101100
-*
-Ed
- 1.92945244783143e-05 1 1 0
-1 143 0 0 0.388502706861007
-2 258 78 0 0 0.388502706861007
-2 259 76 0 0 0.388502706861007
-0
-
-0101000
--195 0 +193 0 *
-Ed
- 6.99649261397242e-06 1 1 0
-1 144 0 0 1
-2 260 76 0 0 1
-2 261 79 0 0 1
-6 3 3 0
-6 4 4 0
-0
-
-0101000
-+200 0 -193 0 *
-Wi
-
-0101000
-+194 0 -192 0 -191 0 -199 0 *
-Fa
-0 1e-07 76 0
-
-0111000
-+190 0 *
-Ve
-2.54654663933075e-05
-91 7.61636810981439 6.6169437167634
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 145 0 0 1
-2 262 78 0 0 1
-4 CN 78 0 78 0
-0
-
-0101000
--195 0 +188 0 *
-Ve
-2.54654663933075e-05
-90.0000024117361 8.39076750746528 6.47641750670833
-0 0
-
-0101100
-*
-Ed
- 9.0234918517165e-06 1 1 0
-1 146 0 0 0.399249306518246
-2 263 80 0 0 0.399249306518246
-2 264 78 0 0 0.399249306518246
-0
-
-0101000
--188 0 +186 0 *
-Ed
- 2.54654663933075e-05 1 1 0
-1 147 0 0 1
-2 265 78 0 0 1
-2 266 81 0 0 1
-6 5 5 0
-6 6 6 0
-0
-
-0101000
-+186 0 -193 0 *
-Wi
-
-0101000
--187 0 -185 0 +184 0 +192 0 *
-Fa
-0 1e-07 78 0
-
-0111000
-+183 0 *
-Ve
-2.03433410708813e-05
-91 6.57970659267895 5.41575932172604
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 148 0 0 1
-2 267 80 0 0 1
-4 CN 80 0 80 0
-0
-
-0101000
--188 0 +181 0 *
-Ve
-1.5757649955456e-05
-90.0000009007986 7.17118638575695 5.21541255123611
-0 0
-
-0101100
-*
-Ed
- 6.00726028633476e-06 1 1 0
-1 149 0 0 0.398118846455636
-2 268 80 0 0 0.398118846455636
-2 269 82 0 0 0.398118846455636
-0
-
-0101000
--181 0 +179 0 *
-Ed
- 9.17633448241955e-06 1 1 0
-1 150 0 0 1
-2 270 83 0 0 1
-2 271 80 0 0 1
-0
-
-0101000
-+179 0 -186 0 *
-Wi
-
-0101000
--180 0 -178 0 +177 0 +185 0 *
-Fa
-0 1e-07 80 0
-
-0111000
-+176 0 *
-Ve
-2.35316308917081e-05
-91 5.32717298582192 3.72906323267874
-0 0
-
-0101100
-*
-Ed
- 1.56868845174715e-07 1 1 0
-1 151 0 0 1
-2 272 82 0 0 1
-4 CN 82 0 82 0
-0
-
-0101000
--181 0 +174 0 *
-Ve
-2.35316308917081e-05
-90.0000007692361 5.73678587819097 3.56596440070625
-0 0
-
-0101100
-*
-Ed
- 2.03433410708813e-05 1 1 0
-1 152 0 0 0.400001671206947
-2 273 82 0 0 0.400001671206947
-2 274 84 0 0 0.400001671206947
-0
-
-0101000
--174 0 +172 0 *
-Ed
- 1.5757649955456e-05 1 1 0
-1 153 0 0 1
-2 275 82 0 0 1
-2 276 85 0 0 1
-0
-
-0101000
-+172 0 -179 0 *
-Wi
-
-0101000
--173 0 -171 0 +170 0 +178 0 *
-Fa
-0 1e-07 82 0
-
-0111000
-+169 0 *
-Ed
- 1e-07 1 1 1
-2 277 84 0 0 4.59100052463413e-06
-0
-
-0101000
-+174 0 -174 0 *
-Ve
-2.35316308917081e-05
-91 3.88175419089484 2.15893028178295
-0 0
-
-0101100
-*
-Ed
- 1e-07 1 1 0
-1 154 0 0 1
-2 278 84 0 0 1
-4 CN 84 0 84 0
-0
-
-0101000
--174 0 +166 0 *
-Ve
-2.35316308917081e-05
-89.9999949926389 4.05991910977778 2.02916518067958
-0 0
-
-0101100
-*
-Ed
- 7.30216200260413e-06 1 1 0
-1 155 0 0 0.391917713669959
-2 279 84 0 0 0.391917713669959
-2 280 21 0 0 0.391917713669959
-0
-
-0101000
--166 0 +164 0 *
-Ed
- 2.35316308917081e-05 1 1 0
-1 156 0 0 1
-2 281 86 0 0 1
-2 282 84 0 0 1
-0
-
-0101000
-+164 0 -172 0 *
-Wi
-
-0101100
-+167 0 -165 0 -163 0 +162 0 +171 0 *
-Fa
-0 1e-07 84 0
-
-0111000
-+161 0 *
-Ed
- 1e-07 1 1 0
-1 157 0 0 1
-2 283 21 0 0 1
-4 CN 21 0 21 0
-0
-
-0101000
--166 0 +458 0 *
-Ed
- 2.09007955177743e-05 1 1 0
-1 158 0 0 1
-2 284 22 0 0 1
-2 285 21 0 0 1
-0
-
-0101000
-+456 0 -164 0 *
-Wi
-
-0101000
--159 0 -454 0 +158 0 +163 0 *
-Fa
-0 1e-07 21 0
-
-0111000
-+157 0 *
-Ve
-2.21045941097868e-05
-85.0000059085417 5.39140496230764 1.55430342585035
-0 0
-
-0101100
-*
-Ed
- 2.21045941097868e-05 1 1 0
-1 159 0 0 1
-2 286 22 0 0 1
-2 287 23 0 0 1
-0
-
-0101000
-+451 0 -155 0 *
-Ed
- 6.47703491865084e-06 1 1 0
-1 160 0 0 1
-2 288 22 0 0 1
-2 289 86 0 0 1
-0
-
-0101000
-+155 0 -164 0 *
-Wi
-
-0101000
--449 0 +154 0 +153 0 -158 0 *
-Fa
-0 1e-07 22 0
-
-0111000
-+152 0 *
-Ve
-1.82185759613255e-05
-80.0000026235764 7.71098128564583 1.31853588231684
-0 0
-
-0101100
-*
-Ed
- 4.53162825461767e-06 1 1 0
-1 161 0 0 1
-2 290 23 0 0 1
-2 291 24 0 0 1
-0
-
-0101000
-+446 0 -150 0 *
-Ed
- 1.82185759613255e-05 1 1 0
-1 162 0 0 1
-2 292 87 0 0 1
-2 293 23 0 0 1
-0
-
-0101000
-+150 0 -155 0 *
-Wi
-
-0101000
--444 0 +149 0 +148 0 -154 0 *
-Fa
-0 1e-07 23 0
-
-0111000
-+147 0 *
-Ve
-2.37379626567361e-05
-75.0000021195833 11.0777641409687 1.19876414828403
-0 0
-
-0101100
-*
-Ed
- 1.38589868389421e-05 1 1 0
-1 163 0 0 1
-2 294 24 0 0 1
-2 295 25 0 0 1
-0
-
-0101000
-+441 0 -145 0 *
-Ed
- 6.4749767560045e-06 1 1 0
-1 164 0 0 1
-2 296 24 0 0 1
-2 297 88 0 0 1
-0
-
-0101000
-+145 0 -150 0 *
-Wi
-
-0101000
--439 0 +144 0 +143 0 -149 0 *
-Fa
-0 1e-07 24 0
-
-0111000
-+142 0 *
-Ve
-2.48188108077455e-05
-69.9999984111806 14.4611521391771 1.11259741402292
-0 0
-
-0101100
-*
-Ed
- 2.48188108077455e-05 1 1 0
-1 165 0 0 1
-2 298 26 0 0 1
-2 299 25 0 0 1
-0
-
-0101000
-+436 0 -140 0 *
-Ed
- 2.37379626567361e-05 1 1 0
-1 166 0 0 1
-2 300 89 0 0 1
-2 301 25 0 0 1
-0
-
-0101000
-+140 0 -145 0 *
-Wi
-
-0101000
--434 0 +139 0 +138 0 -144 0 *
-Fa
-0 1e-07 25 0
-
-0111000
-+137 0 *
-Ed
- 1.34416809704548e-05 1 1 0
-1 167 0 0 1
-2 302 30 0 0 1
-2 303 26 0 0 1
-0
-
-0101000
-+419 0 -140 0 *
-Wi
-
-0101000
--429 0 +417 0 +135 0 -139 0 *
-Fa
-0 1e-07 26 0
-
-0111000
-+134 0 *
-Ve
-2.11325098514603e-05
-69.9999972716667 15.9788046517604 1.70368357847222
-0 0
-
-0101100
-*
-Ed
- 1.11669713313368e-05 1 1 0
-1 168 0 0 1
-2 304 30 0 0 1
-2 305 32 0 0 1
-0
-
-0101000
-+412 0 -132 0 *
-Ed
- 1.39018724744241e-05 1 1 0
-1 169 0 0 1
-2 306 89 0 0 1
-2 307 30 0 0 1
-0
-
-0101000
-+140 0 -132 0 *
-Wi
-
-0101000
--135 0 +410 0 +131 0 -130 0 *
-Fa
-0 1e-07 30 0
-
-0111000
-+129 0 *
-Ve
-2.28562930648619e-05
-69.9999992326042 17.8061584462153 2.81623599430208
-0 0
-
-0101100
-*
-Ed
- 1.97694376017314e-05 1 1 0
-1 170 0 0 1
-2 308 34 0 0 1
-2 309 32 0 0 1
-0
-
-0101000
-+405 0 -127 0 *
-Ed
- 2.11325098514603e-05 1 1 0
-1 171 0 0 1
-2 310 32 0 0 1
-2 311 90 0 0 1
-0
-
-0101000
-+132 0 -127 0 *
-Wi
-
-0101000
--131 0 +403 0 +126 0 -125 0 *
-Fa
-0 1e-07 32 0
-
-0111000
-+124 0 *
-Ve
-2.75798085479969e-05
-70.0000003179167 18.8827865460417 3.9572551969375
-0 0
-
-0101100
-*
-Ed
- 1.81429179773202e-05 1 1 0
-1 172 0 0 1
-2 312 34 0 0 1
-2 313 36 0 0 1
-0
-
-0101000
-+398 0 -122 0 *
-Ed
- 2.28562930648619e-05 1 1 0
-1 173 0 0 1
-2 314 91 0 0 1
-2 315 34 0 0 1
-0
-
-0101000
-+127 0 -122 0 *
-Wi
-
-0101000
--126 0 +396 0 +121 0 -120 0 *
-Fa
-0 1e-07 34 0
-
-0111000
-+119 0 *
+0101101
+*
Ve
-4.26088083540727e-05
-70.0000042119444 19.7588873306597 5.85617519342396
+0.0592514252469888
+321186.316945408 2.66453525910038e-015 23752.7064604884
0 0
-0101100
+0101101
*
Ed
- 1.91480239722776e-05 1 1 0
-1 174 0 0 1
-2 316 36 0 0 1
-2 317 40 0 0 1
-0
-
-0101000
-+391 0 -117 0 *
-Ed
- 2.75798085479969e-05 1 1 0
-1 175 0 0 1
-2 318 36 0 0 1
-2 319 92 0 0 1
+ 0.0592514252469888 1 1 0
+1 1 0 2.03784942368079 7.15884586228625
+2 1 1 0 2.03784942368079 7.15884586228625
+6 1 1 0
0
0101000
-+122 0 -117 0 *
-Wi
-
-0101000
--121 0 +389 0 +116 0 -115 0 *
-Fa
-0 1e-07 36 0
++95 0 -94 0 *
+Ve
+0.38336583173167
+320023.238952556 0 20688
+0 0
-0111000
-+114 0 *
+0101101
+*
Ed
- 1e-07 1 1 1
-2 320 40 0 0 1
+ 1e-007 1 1 0
+1 2 0 -5.17908083697672 -4.66066861626444
+2 2 1 0 -5.17908083697672 -4.66066861626444
+6 2 1 0
0
0101000
-+391 0 -391 0 *
++94 0 -92 0 *
+Ve
+0.38336583173167
+316000 -7836.69546463392 20688
+0 0
+
+0101101
+*
Ed
- 3.78594793378773e-05 1 1 0
-1 176 0 0 1
-2 321 50 0 0 1
-2 322 40 0 0 1
+ 0.38336583173167 1 1 0
+1 3 0 -12.7914006728546 0
+2 3 1 0 -12.7914006728546 0
+6 3 1 0
0
0101000
-+379 0 -117 0 *
-Wi
-
-0101000
--116 0 +112 0 -376 0 +111 0 *
-Fa
-0 1e-07 40 0
-
-0111000
-+110 0 *
++92 0 -90 0 *
Ve
-4.26088083540727e-05
-75.0000055356597 18.9802735055208 6.14145220899653
+0.00909475804919974
+316000 -9499.97165004752 23769.5263731486
0 0
-0101100
+0101101
*
Ed
- 9.24762100938299e-06 1 1 0
-1 177 0 0 1
-2 323 53 0 0 1
-2 324 50 0 0 1
+ 1e-007 1 1 0
+1 4 0 5.24221906303494 5.94433420095506
+2 4 1 0 5.24221906303494 5.94433420095506
+6 4 1 0
0
0101000
-+346 0 -108 0 *
++90 0 -88 0 *
Ed
- 4.26088083540727e-05 1 1 0
-1 178 0 0 1
-2 325 92 0 0 1
-2 326 50 0 0 1
+ 0.00909475804919974 1 1 0
+1 5 0 0 2.03784942368079
+2 5 1 0 0 2.03784942368079
+6 5 1 0
0
0101000
-+117 0 -108 0 *
++88 0 -95 0 *
Wi
-0101000
--344 0 +107 0 -106 0 -111 0 *
+0101100
++93 0 +91 0 +89 0 +87 0 +86 0 *
Fa
-0 1e-07 50 0
-
+0 1e-007 1 0
+2 1
0111000
-+105 0 *
++85 0 *
Ve
-2.85755674106533e-05
-80.0000110471875 17.1951922805903 6.64013266390972
+0.132639823162747
+307925.942834271 -14604.4351423643 20688.0062560445
0 0
-0101100
+0101101
+*
+Ve
+0.0395909942639706
+307964.585063061 -15409.6848904203 23788.8306509614
+0 0
+
+0101101
*
Ed
- 2.85755674106533e-05 1 1 0
-1 179 0 0 1
-2 327 93 0 0 1
-2 328 53 0 0 1
+ 0.0395909942639706 1 1 0
+1 6 0 2.03797826722199 5.23408771278374
+2 6 2 0 2.03797826722199 5.23408771278374
+6 6 2 0
0
0101000
-+338 0 -103 0 *
++83 0 -82 0 *
+Ve
+0.0387048102312198
+312502.174784494 -12436.5747590776 23780.1401795566
+0 0
+
+0101101
+*
Ed
- 1.62867018453383e-05 1 1 0
-1 180 0 0 1
-2 329 94 0 0 1
-2 330 53 0 0 1
+ 0.0387048102312198 1 1 0
+1 7 0 10.5720735435623 15.9898717172678
+2 7 2 0 10.5720735435623 15.9898717172678
+6 7 2 0
0
0101000
-+108 0 -103 0 *
-Wi
-
-0101000
--336 0 +102 0 -101 0 -107 0 *
-Fa
-0 1e-07 53 0
-
-0111000
-+100 0 *
++82 0 -80 0 *
Ve
-2.99042860144067e-05
-85.0000010347917 15.8033371473194 8.52449099372917
+0.000274664703637645
+316000 -9499.97165004752 23769.5263731487
0 0
-0101100
+0101101
*
Ed
- 2.59629802790387e-05 1 1 0
-1 181 0 0 1
-2 331 52 0 0 1
-2 332 93 0 0 1
+ 0.000274664703637645 1 1 0
+1 8 0 15.9898717172678 20.5382024168754
+2 8 2 0 15.9898717172678 20.5382024168754
+6 8 2 0
0
0101000
-+98 0 -338 0 *
++80 0 -78 0 *
Ve
-2.99042860144067e-05
-84.9999961607292 14.1568349074861 7.15651154836111
+0.132639823162747
+316000 -7836.69546463392 20688
0 0
-0101100
+0101101
*
Ed
- 2.99042860144067e-05 1 1 0
-1 182 0 0 1
-2 333 93 0 0 1
-2 334 79 0 0 1
-6 7 7 0
-6 8 4 0
+ 1e-007 1 1 0
+1 9 0 -5.94433420095506 -5.24221906303494
+2 9 2 0 -5.94433420095506 -5.24221906303494
+6 9 2 0
0
0101000
-+98 0 -96 0 *
++78 0 -76 0 *
Ed
- 1.73367562838602e-05 1 1 0
-1 183 0 0 1
-2 335 95 0 0 1
-2 336 93 0 0 1
+ 0.132639823162747 1 1 0
+1 10 0 -26.3776496137573 -10.7590479567631
+2 10 2 0 -26.3776496137573 -10.7590479567631
+6 10 2 0
0
0101000
-+103 0 -96 0 *
++76 0 -83 0 *
Wi
-0101000
--97 0 +95 0 -94 0 -102 0 *
+0101100
++81 0 +79 0 +77 0 +75 0 +74 0 *
Fa
-0 1e-07 93 0
-
+0 1e-007 2 0
+2 2
0111000
-+93 0 *
++73 0 *
Ve
-4.7091265613617e-05
-85.0000022795833 17.2574835275174 9.94999693511805
+0.0151646519118349
+320467.125397522 0.0410607388638593 17391.0010676384
0 0
-0101100
+0101101
+*
+Ve
+0.305785196713225
+320023.233481529 0.0410607425919161 20688.0006639233
+0 0
+
+0101101
*
Ed
- 4.7091265613617e-05 1 1 0
-1 184 0 0 1
-2 337 52 0 0 1
-2 338 55 0 0 1
+ 0.0151646519118349 1 1 0
+1 11 0 14.3334654409567 18.8569318286958
+2 11 3 0 14.3334654409567 18.8569318286958
+6 11 3 0
0
0101000
-+91 0 -340 0 *
++71 0 -70 0 *
+Ve
+0.305785196713225
+316000 7836.69546463271 20687.9999999966
+0 0
+
+0101101
+*
Ed
- 1.71852081035584e-05 1 1 0
-1 185 0 0 1
-2 339 77 0 0 1
-2 340 52 0 0 1
-6 9 8 0
-6 10 2 0
+ 0.305785196713225 1 1 0
+1 12 0 4.106077149e-005 8.97747391972553
+2 12 3 0 4.106077149e-005 8.97747391972553
+6 12 3 0
0
0101000
-+91 0 -98 0 *
-Wi
++70 0 -68 0 *
+Ve
+0.733564849869714
+316000 7485.11428493578 17391
+0 0
-0101000
--90 0 +89 0 +97 0 -337 0 *
-Fa
-0 1e-07 52 0
+0101101
+*
+Ed
+ 1e-007 1 1 0
+1 13 0 -5.24221906303344 -4.55641924184057
+2 13 3 0 -5.24221906303344 -4.55641924184057
+6 13 3 0
+0
-0111000
-+88 0 *
+0101000
++68 0 -66 0 *
Ve
-4.43173854888558e-05
-84.9999998679167 18.7285768529514 12.0000027354861
+0.733564849869714
+320467.122621291 3.12712100019346 17391
0 0
-0101100
+0101101
*
Ed
- 3.67373464016864e-05 1 1 0
-1 186 0 0 0.872712055346906
-2 341 55 0 0 0.872712055346906
-2 342 61 0 0 0.872712055346906
+ 0.733564849869714 1 1 0
+1 14 0 -7.06834388794866 -0.00312668309766018
+2 14 3 0 -7.06834388794866 -0.00312668309766018
+6 14 3 0
0
0101000
-+86 0 -298 0 *
++66 0 -64 0 *
Ed
- 1.76363706016036e-05 1 1 0
-1 187 0 0 1
-2 343 75 0 0 1
-2 344 55 0 0 1
+ 4.07376032254805e-007 1 1 0
+1 15 0 -0.00312668309766 -4.10606701900002e-005
+2 15 3 0 -0.00312668309766 -4.10606701900002e-005
+6 15 3 0
0
0101000
-+86 0 -91 0 *
++64 0 -71 0 *
Wi
0101100
--85 0 +84 0 +90 0 -328 0 -296 0 *
++69 0 +67 0 +65 0 +63 0 +62 0 *
Fa
-0 1e-07 55 0
-
+0 1e-007 3 0
+2 3
0111000
-+83 0 *
-Ed
- 4.43173854888558e-05 1 1 0
-1 188 0 0 1
-2 345 61 0 0 1
-2 346 71 0 0 1
-0
-
-0101000
-+235 0 -86 0 *
-Wi
++61 0 *
+Ve
+0.405445665159155
+307925.973440302 14604.2958348035 20688.0235446493
+0 0
-0101000
--297 0 +233 0 +81 0 +85 0 *
-Fa
-0 1e-07 61 0
+0101101
+*
+Ve
+0.686442521885961
+307904.948497207 14218.5045578902 17391.0000223844
+0 0
-0111000
-+80 0 *
+0101101
+*
Ed
- 1.35937083741355e-05 1 1 0
-1 189 0 0 1
-2 347 75 0 0 1
-2 348 71 0 0 1
+ 0.405445665159155 1 1 0
+1 16 0 -5.53302709384876 -2.51675767383655
+2 16 4 0 -5.53302709384876 -2.51675767383655
+6 16 4 0
0
0101000
-+214 0 -86 0 *
-Wi
-
-0101000
--226 0 +212 0 +78 0 -81 0 *
-Fa
-0 1e-07 71 0
++59 0 -58 0 *
+Ve
+0.686442521885961
+316000 7485.11428493578 17391
+0 0
-0111000
-+77 0 *
+0101101
+*
Ed
- 1.29620323619958e-05 1 1 0
-1 190 0 0 1
-2 349 75 0 0 1
-2 350 77 0 0 1
-6 11 9 0
-6 12 2 0
+ 0.686442521885961 1 1 0
+1 17 0 -13.3857294552338 0
+2 17 4 0 -13.3857294552338 0
+6 17 4 0
0
0101000
-+207 0 -91 0 *
-Wi
-
-0101000
--78 0 +205 0 +75 0 -84 0 *
-Fa
-0 1e-07 75 0
++58 0 -56 0 *
+Ve
+0.127358194577747
+316000 7836.69546463271 20687.9999999965
+0 0
-0111000
-+74 0 *
+0101101
+*
Ed
- 1.74698737006962e-05 1 1 0
-1 191 0 0 1
-2 351 79 0 0 1
-2 352 77 0 0 1
-6 13 4 0
-6 14 2 0
+ 1e-007 1 1 0
+1 18 0 4.55641924184057 5.24221906303344
+2 18 4 0 4.55641924184057 5.24221906303344
+6 18 4 0
0
0101000
-+200 0 -98 0 *
-Wi
-
-0101000
--75 0 +198 0 +72 0 -89 0 *
-Fa
-0 1e-07 77 0
-2 2
-0111000
-+71 0 *
++56 0 -54 0 *
Ed
- 2.2872857526395e-05 1 1 0
-1 192 0 0 1
-2 353 79 0 0 1
-2 354 81 0 0 1
-6 15 6 0
-6 16 4 0
+ 0.127358194577747 1 1 0
+1 19 0 0 9.00835083877794
+2 19 4 0 0 9.00835083877794
+6 19 4 0
0
0101000
-+193 0 -96 0 *
++54 0 -59 0 *
Wi
-0101000
--72 0 +191 0 +69 0 -95 0 *
+0101100
++57 0 +55 0 +53 0 +52 0 *
Fa
-0 1e-07 79 0
+0 1e-007 4 0
2 4
0111000
-+68 0 *
++51 0 *
Ve
-2.30785772976202e-05
-84.9999954447569 12.2395795864028 5.71940350527083
+0.00131099059563924
+307964.469558417 15409.7734874065 23788.9591780442
0 0
-0101100
+0101101
*
-Ed
- 2.30785772976202e-05 1 1 0
-1 193 0 0 1
-2 355 83 0 0 1
-2 356 81 0 0 1
-6 17 10 0
-6 18 6 0
-0
+Ve
+0.0976266697848563
+307964.452218325 15409.8457486113 23788.9356364923
+0 0
-0101000
-+66 0 -186 0 *
+0101101
+*
Ed
- 2.10922209222994e-05 1 1 0
-1 194 0 0 1
-2 357 95 0 0 1
-2 358 81 0 0 1
-6 19 11 0
-6 20 6 0
+ 1e-005 1 1 0
+2 20 5 0 0 2.55378720422166e-005
+1 20 0 0 2.55378720422166e-005
+6 20 5 0
0
0101000
-+66 0 -96 0 *
-Wi
-
-0101000
--65 0 +64 0 -69 0 -184 0 *
-Fa
-0 1e-07 81 0
-2 6
-0111000
-+63 0 *
++49 0 -48 0 *
Ve
-2.04346804891182e-05
-85.0000015094792 10.2013896183368 4.30949029896875
+0.127358488437697
+307925.8018293 14604.5293932801 20688.0000004931
0 0
-0101100
+0101101
*
Ed
- 1.48577912160762e-05 1 1 0
-1 195 0 0 1
-2 359 83 0 0 1
-2 360 85 0 0 1
+ 0.0976266697848563 1 1 0
+1 21 0 0.82773512582161 4.02826506163477
+2 21 5 0 0.82773512582161 4.02826506163477
+6 21 5 0
0
0101000
-+61 0 -179 0 *
++48 0 -46 0 *
+Ve
+0.127358488437697
+316000 7836.69546463271 20687.9999999966
+0 0
+
+0101101
+*
Ed
- 1.52354307735754e-05 1 1 0
-1 196 0 0 1
-2 361 83 0 0 1
-2 362 96 0 0 1
-6 21 12 0
-6 22 10 0
+ 0.127358488437697 1 1 0
+1 22 0 -9.00848350427441 0
+2 22 5 0 -9.00848350427441 0
+6 22 5 0
0
0101000
-+61 0 -66 0 *
-Wi
-
-0101000
--60 0 +59 0 +65 0 -177 0 *
-Fa
-0 1e-07 83 0
-
-0111000
-+58 0 *
++46 0 -44 0 *
Ve
-2.14597079346695e-05
-85.0000031003472 7.81807332889931 2.82353471511979
+0.0263721664297389
+316000 9499.9729861176 23769.528316916
0 0
-0101100
+0101101
*
Ed
- 1.36735811051036e-05 1 1 0
-1 197 0 0 1
-2 363 85 0 0 1
-2 364 86 0 0 1
+ 1e-007 1 1 0
+1 23 0 5.24221906303344 5.94433466832183
+2 23 5 0 5.24221906303344 5.94433466832183
+6 23 5 0
0
0101000
-+56 0 -172 0 *
++44 0 -42 0 *
+Ve
+0.0263721664297389
+312502.203483842 12436.7588939963 23780.5652747058
+0 0
+
+0101101
+*
Ed
- 2.04346804891182e-05 1 1 0
-1 198 0 0 1
-2 365 97 0 0 1
-2 366 85 0 0 1
+ 0.0263721664297389 1 1 0
+1 24 0 0 4.5711852921986
+2 24 5 0 0 4.5711852921986
+6 24 5 0
0
0101000
-+56 0 -61 0 *
-Wi
-
-0101000
--55 0 +54 0 +60 0 -170 0 *
-Fa
-0 1e-07 85 0
-
-0111000
-+53 0 *
++42 0 -40 0 *
Ed
- 2.14597079346695e-05 1 1 0
-1 199 0 0 1
-2 367 86 0 0 1
-2 368 87 0 0 1
+ 0.00130969401153366 1 1 0
+1 25 0 4.5711852921986 10.0098081225668
+2 25 5 0 4.5711852921986 10.0098081225668
+6 25 5 0
0
0101000
-+155 0 -56 0 *
++40 0 -49 0 *
Wi
-0101000
--153 0 +51 0 +55 0 -162 0 *
+0101100
++47 0 +45 0 +43 0 +41 0 +39 0 +38 0 *
Fa
-0 1e-07 86 0
-
+0 1e-007 5 0
+2 5
0111000
-+50 0 *
++37 0 *
Ve
-2.47978857912091e-05
-80.0000038150694 10.215634021875 2.26638487928056
+0.353455953219811
+320023.238828406 0.0410607425918732 20688.000015064
0 0
-0101100
+0101101
*
-Ed
- 1.54757796018057e-05 1 1 0
-1 200 0 0 1
-2 369 88 0 0 1
-2 370 87 0 0 1
-0
+Ve
+0.353455953219811
+321186.316854091 0.0410607322220014 23752.7065407115
+0 0
-0101000
-+150 0 -48 0 *
+0101101
+*
Ed
- 1.16963510864887e-05 1 1 0
-1 201 0 0 1
-2 371 87 0 0 1
-2 372 97 0 0 1
+ 0.353455953219811 1 1 0
+1 26 0 0.01380223016778 4.27331312738195
+2 26 6 0 0.01380223016778 4.27331312738195
+6 26 6 0
0
0101000
-+48 0 -56 0 *
-Wi
-
-0101000
--148 0 +47 0 +46 0 -51 0 *
-Fa
-0 1e-07 87 0
-
-0111000
-+45 0 *
++35 0 -34 0 *
Ve
-1.71567087942514e-05
-75.0000060125695 13.1491281009549 1.89228356902951
+0.0178647705348319
+318204.686108146 7327.42064239695 23761.6627563784
0 0
-0101100
+0101101
*
Ed
- 1.20249028165566e-05 1 1 0
-1 202 0 0 1
-2 373 89 0 0 1
-2 374 88 0 0 1
+ 0.0178647705348319 1 1 0
+1 27 0 4.105518993e-005 4.29014029254766
+2 27 6 0 4.105518993e-005 4.29014029254766
+6 27 6 0
0
0101000
-+145 0 -43 0 *
++34 0 -32 0 *
+Ve
+0.00783241195886688
+316092.13492912 9412.51880139814 23769.0967131488
+0 0
+
+0101101
+*
Ed
- 9.56602159006149e-06 1 1 0
-1 203 0 0 1
-2 375 98 0 0 1
-2 376 88 0 0 1
+ 0.00783241195886688 1 1 0
+1 28 0 4.29014029254766 5.72775052691179
+2 28 6 0 4.29014029254766 5.72775052691179
+6 28 6 0
0
0101000
-+43 0 -48 0 *
-Wi
-
-0101000
--143 0 +42 0 +41 0 -47 0 *
-Fa
-0 1e-07 88 0
++32 0 -30 0 *
+Ve
+5.91550565818408e-007
+316000 9499.97298611761 23769.528316916
+0 0
-0111000
-+40 0 *
+0101101
+*
Ed
- 5.43747871965573e-06 1 1 0
-1 204 0 0 1
-2 377 90 0 0 1
-2 378 89 0 0 1
+ 5.91550565818408e-007 1 1 0
+1 29 0 5.72775052691179 5.85499666236443
+2 29 6 0 5.72775052691179 5.85499666236443
+6 29 6 0
0
0101000
-+132 0 -43 0 *
-Wi
-
-0101000
--138 0 +130 0 +38 0 -42 0 *
-Fa
-0 1e-07 89 0
-
-0111000
-+37 0 *
++30 0 -28 0 *
Ve
-2.42155517324698e-05
-75.0000054565972 15.7198838016389 3.14017136301042
+0.305785196713904
+316000 7836.69546463271 20687.9999999966
0 0
-0101100
+0101101
*
Ed
- 1.32661907584394e-05 1 1 0
-1 205 0 0 1
-2 379 90 0 0 1
-2 380 91 0 0 1
+ 1e-007 1 1 0
+1 30 0 -5.94433466832183 -5.24221906303344
+2 30 6 0 -5.94433466832183 -5.24221906303344
+6 30 6 0
0
0101000
-+127 0 -35 0 *
++28 0 -26 0 *
Ed
- 1.71567087942514e-05 1 1 0
-1 206 0 0 1
-2 381 90 0 0 1
-2 382 98 0 0 1
+ 0.305785196713904 1 1 0
+1 31 0 -8.97747391972553 -4.10607714904643e-005
+2 31 6 0 -8.97747391972553 -4.10607714904643e-005
+6 31 6 0
0
0101000
-+43 0 -35 0 *
++26 0 -35 0 *
Wi
-0101000
--38 0 +125 0 +34 0 -33 0 *
+0101100
++33 0 +31 0 +29 0 +27 0 +25 0 +24 0 *
Fa
-0 1e-07 90 0
-
+0 1e-007 6 0
+2 6
0111000
-+32 0 *
++23 0 *
Ve
-2.42155517324698e-05
-75.0000075494097 17.4399146915278 4.36712293003125
+0.910878697891695
+316000 -7485.11428493578 17391
0 0
-0101100
+0101101
*
-Ed
- 1.84347314616309e-05 1 1 0
-1 207 0 0 1
-2 383 92 0 0 1
-2 384 91 0 0 1
-0
+Ve
+0.910878697891695
+307905.158324757 -14218.672816369 17390.9886923472
+0 0
-0101000
-+122 0 -30 0 *
+0101101
+*
Ed
- 2.42155517324698e-05 1 1 0
-1 208 0 0 1
-2 385 99 0 0 1
-2 386 91 0 0 1
+ 0.910878697891695 1 1 0
+1 32 0 -10.097004591975 -0.0155100565362805
+2 32 7 0 -10.097004591975 -0.0155100565362805
+6 32 7 0
0
0101000
-+35 0 -30 0 *
-Wi
-
-0101000
--34 0 +120 0 +29 0 -28 0 *
-Fa
-0 1e-07 91 0
++21 0 -20 0 *
+Ve
+0.588930851781909
+307925.943077942 -14604.4335260146 20688.0003343276
+0 0
-0111000
-+27 0 *
+0101101
+*
Ed
- 1.28885941553593e-05 1 1 0
-1 209 0 0 1
-2 387 92 0 0 1
-2 388 94 0 0 1
+ 0.588930851781909 1 1 0
+1 33 0 -4.63153724787237 -1.22322291977858
+2 33 7 0 -4.63153724787237 -1.22322291977858
+6 33 7 0
0
0101000
-+30 0 -108 0 *
-Wi
-
-0101000
--29 0 +115 0 +106 0 -25 0 *
-Fa
-0 1e-07 92 0
-
-0111000
-+24 0 *
++20 0 -18 0 *
Ve
-1.51000795432281e-05
-80.0000081317361 15.1852189208681 4.96923233313195
+0.132639881965437
+316000 -7836.69546463271 20687.9999999966
0 0
-0101100
+0101101
*
Ed
- 8.26133901923663e-06 1 1 0
-1 210 0 0 1
-2 389 94 0 0 1
-2 390 99 0 0 1
+ 0.132639881965437 1 1 0
+1 34 0 10.7590452455883 26.3776496137573
+2 34 7 0 10.7590452455883 26.3776496137573
+6 34 7 0
0
0101000
-+30 0 -22 0 *
++18 0 -16 0 *
Ed
- 4.1130185571349e-06 1 1 0
-1 211 0 0 1
-2 391 95 0 0 1
-2 392 94 0 0 1
+ 1e-007 1 1 0
+1 35 0 -5.24221906303344 -4.55641924184057
+2 35 7 0 -5.24221906303344 -4.55641924184057
+6 35 7 0
0
0101000
-+22 0 -103 0 *
++16 0 -21 0 *
Wi
-0101000
--21 0 +25 0 +101 0 -20 0 *
+0101100
++19 0 +17 0 +15 0 +14 0 *
Fa
-0 1e-07 94 0
-
+0 1e-007 7 0
+2 7
0111000
-+19 0 *
++13 0 *
Ve
-2.47978857912091e-05
-80.0000056430208 13.0417601688854 3.62644929854514
+0.370801968810223
+320467.125397541 0.02053036598 17391.0010676384
0 0
-0101100
+0101101
*
-Ed
- 2.32872652605422e-05 1 1 0
-1 212 0 0 1
-2 393 98 0 0 1
-2 394 99 0 0 1
-0
+Ve
+0.370801968810223
+316000 -7485.11428493578 17391
+0 0
-0101000
-+35 0 -17 0 *
+0101101
+*
Ed
- 4.84032587064175e-06 1 1 0
-1 213 0 0 1
-2 395 99 0 0 1
-2 396 96 0 0 1
+ 0.370801968810223 1 1 0
+1 36 0 -8.51167196569059 0
+2 36 8 0 -8.51167196569059 0
+6 36 8 0
0
0101000
-+17 0 -22 0 *
-Wi
-
-0101000
--16 0 +28 0 +21 0 -15 0 *
-Fa
-0 1e-07 99 0
++11 0 -10 0 *
+Ve
+0.383365831729802
+316000 -7836.69546463271 20687.9999999965
+0 0
-0111000
-+14 0 *
+0101101
+*
Ed
- 2.47978857912091e-05 1 1 0
-1 214 0 0 1
-2 397 97 0 0 1
-2 398 98 0 0 1
+ 1e-007 1 1 0
+1 37 0 4.55641924184057 5.24221906303344
+2 37 8 0 4.55641924184057 5.24221906303344
+6 37 8 0
0
0101000
-+48 0 -17 0 *
-Wi
-
-0101000
--41 0 +33 0 +16 0 -12 0 *
-Fa
-0 1e-07 98 0
++10 0 -8 0 *
+Ve
+0.383365831729802
+320023.233481511 0.02053036598 20688.0006639233
+0 0
-0111000
-+11 0 *
+0101101
+*
Ed
- 1.4496399425563e-05 1 1 0
-1 215 0 0 1
-2 399 96 0 0 1
-2 400 97 0 0 1
+ 0.383365831729802 1 1 0
+1 38 0 0 12.7914006728546
+2 38 8 0 0 12.7914006728546
+6 38 8 0
0
0101000
-+17 0 -61 0 *
-Wi
-
-0101000
--46 0 +12 0 +9 0 -54 0 *
-Fa
-0 1e-07 97 0
-
-0111000
-+8 0 *
++8 0 -6 0 *
Ed
- 1.51000795432281e-05 1 1 0
-1 216 0 0 1
-2 401 96 0 0 1
-2 402 95 0 0 1
+ 0.0437719439812485 1 1 0
+1 39 0 -18.8569318286958 -14.3334654409567
+2 39 8 0 -18.8569318286958 -14.3334654409567
+6 39 8 0
0
0101000
-+22 0 -66 0 *
-Wi
-
-0101000
--9 0 +15 0 +6 0 -59 0 *
-Fa
-0 1e-07 96 0
-
-0111000
-+5 0 *
++6 0 -11 0 *
Wi
-0101000
--6 0 +20 0 +94 0 -64 0 *
+0101100
++9 0 +7 0 +5 0 +4 0 *
Fa
-0 1e-07 95 0
-
+0 1e-007 8 0
+2 8
0111000
+3 0 *
-Sh
-
-0101000
-+531 0 +524 0 +517 0 +510 0 +503 0 +496 0 +489 0 +484 0 +479 0 +474 0
-+469 0 +464 0 +459 0 +452 0 +447 0 +442 0 +437 0 +432 0 +427 0 +422 0
-+415 0 +408 0 +401 0 +394 0 +387 0 +380 0 +373 0 +367 0 +360 0 +353 0
-+347 0 +342 0 +333 0 +326 0 +323 0 +319 0 +312 0 +305 0 +301 0 +294 0
-+290 0 +283 0 +278 0 +271 0 +264 0 +257 0 +250 0 +246 0 +243 0 +240 0
-+238 0 +231 0 +224 0 +217 0 +210 0 +203 0 +196 0 +189 0 +182 0 +175 0
-+168 0 +160 0 +156 0 +151 0 +146 0 +141 0 +136 0 +133 0 +128 0 +123 0
-+118 0 +113 0 +109 0 +104 0 +99 0 +92 0 +87 0 +82 0 +79 0 +76 0
-+73 0 +70 0 +67 0 +62 0 +57 0 +52 0 +49 0 +44 0 +39 0 +36 0
-+31 0 +26 0 +23 0 +18 0 +13 0 +10 0 +7 0 +4 0 +2 0 *
+Co
-+1 0
-0
+1100000
++84 0 +72 0 +60 0 +50 0 +36 0 +22 0 +12 0 +2 0 *
++1 0
\ No newline at end of file
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcproj", "{AD4DADCB-F15E-37FD-B3AA-88504FAAF4FD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcproj", "{29A31181-FF46-3DB1-827A-05ADEAD293B5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {AD4DADCB-F15E-37FD-B3AA-88504FAAF4FD}.Debug|Win32.ActiveCfg = Debug|Win32
- {AD4DADCB-F15E-37FD-B3AA-88504FAAF4FD}.Debug|Win32.Build.0 = Debug|Win32
- {AD4DADCB-F15E-37FD-B3AA-88504FAAF4FD}.Release|Win32.ActiveCfg = Release|Win32
- {AD4DADCB-F15E-37FD-B3AA-88504FAAF4FD}.Release|Win32.Build.0 = Release|Win32
+ {29A31181-FF46-3DB1-827A-05ADEAD293B5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {29A31181-FF46-3DB1-827A-05ADEAD293B5}.Debug|Win32.Build.0 = Debug|Win32
+ {29A31181-FF46-3DB1-827A-05ADEAD293B5}.Release|Win32.ActiveCfg = Release|Win32
+ {29A31181-FF46-3DB1-827A-05ADEAD293B5}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial", "Tutorial.vcproj", "{28627D0B-F82A-39D5-A15D-DDAFA11059E7}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial", "Tutorial.vcproj", "{C9C6457A-5B88-3C7F-9964-9D8EE43E7414}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {28627D0B-F82A-39D5-A15D-DDAFA11059E7}.Debug|Win32.ActiveCfg = Debug|Win32
- {28627D0B-F82A-39D5-A15D-DDAFA11059E7}.Debug|Win32.Build.0 = Debug|Win32
- {28627D0B-F82A-39D5-A15D-DDAFA11059E7}.Release|Win32.ActiveCfg = Release|Win32
- {28627D0B-F82A-39D5-A15D-DDAFA11059E7}.Release|Win32.Build.0 = Release|Win32
+ {C9C6457A-5B88-3C7F-9964-9D8EE43E7414}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C9C6457A-5B88-3C7F-9964-9D8EE43E7414}.Debug|Win32.Build.0 = Debug|Win32
+ {C9C6457A-5B88-3C7F-9964-9D8EE43E7414}.Release|Win32.ActiveCfg = Release|Win32
+ {C9C6457A-5B88-3C7F-9964-9D8EE43E7414}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
IncompatibilityOfFace,
OperationAborted,
GeomAbs_C0,
+ InvalidCurveOnSurface,
NotValid
end CheckStatus;
---Purpose: Returns (modifiable) mode that means
-- checking of problem of continuity of the shape.
+ CurveOnSurfaceMode(me: in out)
+ returns Boolean from Standard;
+ ---C++: return &
+ ---C++: inline
+ ---Purpose: Returns (modifiable) mode that means
+ -- checking of problem of invalid curve on surface.
+
---
Perform(me: out);
---Purpose: performs analysis
is protected;
TestContinuity(me: out)
+ is protected;
+
+ TestCurveOnSurface(me: out)
is protected;
-- TestMergeFace(me: out)
fields
- myShape1 : Shape from TopoDS;
- myShape2 : Shape from TopoDS;
- myStopOnFirst : Boolean from Standard;
- myOperation : Operation from BOPAlgo;
- myArgumentTypeMode : Boolean from Standard;
- mySelfInterMode : Boolean from Standard;
- mySmallEdgeMode : Boolean from Standard;
- myRebuildFaceMode : Boolean from Standard;
- myTangentMode : Boolean from Standard;
- myMergeVertexMode : Boolean from Standard;
- myMergeEdgeMode : Boolean from Standard;
- myContinuityMode : Boolean from Standard;
- myEmpty1,myEmpty2 : Boolean from Standard;
- myResult : ListOfCheckResult from BOPAlgo;
-
-
+ myShape1 : Shape from TopoDS;
+ myShape2 : Shape from TopoDS;
+ myStopOnFirst : Boolean from Standard;
+ myOperation : Operation from BOPAlgo;
+ myArgumentTypeMode : Boolean from Standard;
+ mySelfInterMode : Boolean from Standard;
+ mySmallEdgeMode : Boolean from Standard;
+ myRebuildFaceMode : Boolean from Standard;
+ myTangentMode : Boolean from Standard;
+ myMergeVertexMode : Boolean from Standard;
+ myMergeEdgeMode : Boolean from Standard;
+ myContinuityMode : Boolean from Standard;
+ myCurveOnSurfaceMode : Boolean from Standard;
+ myEmpty1, myEmpty2 : Boolean from Standard;
+ myResult : ListOfCheckResult from BOPAlgo;
+
end ArgumentAnalyzer;
myMergeVertexMode(Standard_False),
myMergeEdgeMode(Standard_False),
myContinuityMode(Standard_False),
+myCurveOnSurfaceMode(Standard_False),
myEmpty1(Standard_False),
myEmpty2(Standard_False)
// myMergeFaceMode(Standard_False)
if(!(!myResult.IsEmpty() && myStopOnFirst))
TestContinuity();
}
+
+ if(myCurveOnSurfaceMode) {
+ if(!(!myResult.IsEmpty() && myStopOnFirst))
+ TestCurveOnSurface();
+ }
}
catch(Standard_Failure) {
BOPAlgo_CheckResult aResult;
}
}
+// ================================================================================
+// function: TestCurveOnSurface
+// purpose:
+// ================================================================================
+void BOPAlgo_ArgumentAnalyzer::TestCurveOnSurface()
+{
+ Standard_Integer i;
+ Standard_Real aT, aD, aTolE;
+ TopExp_Explorer aExpF, aExpE;
+ //
+ for(i = 0; i < 2; i++) {
+ const TopoDS_Shape& aS = (i == 0) ? myShape1 : myShape2;
+ if(aS.IsNull()) {
+ continue;
+ }
+ //
+ aExpF.Init(aS, TopAbs_FACE);
+ for (; aExpF.More(); aExpF.Next()) {
+ const TopoDS_Face& aF = *(TopoDS_Face*)&aExpF.Current();
+ //
+ aExpE.Init(aF, TopAbs_EDGE);
+ for (; aExpE.More(); aExpE.Next()) {
+ const TopoDS_Edge& aE = *(TopoDS_Edge*)&aExpE.Current();
+ //
+ if (BOPTools_AlgoTools::ComputeTolerance(aF, aE, aD, aT)) {
+ aTolE = BRep_Tool::Tolerance(aE);
+ if (aD > aTolE) {
+ BOPAlgo_CheckResult aResult;
+ aResult.SetCheckStatus(BOPAlgo_InvalidCurveOnSurface);
+ if(i == 0) {
+ aResult.SetShape1(myShape1);
+ aResult.AddFaultyShape1(aE);
+ aResult.AddFaultyShape1(aF);
+ aResult.SetMaxDistance1(aD);
+ aResult.SetMaxParameter1(aT);
+ }
+ else {
+ aResult.SetShape2(myShape2);
+ aResult.AddFaultyShape2(aE);
+ aResult.AddFaultyShape2(aF);
+ aResult.SetMaxDistance2(aD);
+ aResult.SetMaxParameter2(aT);
+ }
+ myResult.Append(aResult);
+ }
+ }
+ }
+ }
+ }
+}
+
// ================================================================================
// function: TestMergeFace
// purpose:
return myContinuityMode;
}
+inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::CurveOnSurfaceMode()
+{
+ return myCurveOnSurfaceMode;
+}
// inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::MergeFaceMode()
// {
// return myMergeFaceMode;
---Purpose: sets ancestor shape (tool) for faulty sub-shapes
AddFaultyShape2(me: in out; TheShape: Shape from TopoDS);
- ---Purpose: adds faulty sub-shapes from tool to a list
+ ---Purpose: adds faulty sub-shapes from tool to a list
GetShape1(me)
returns Shape from TopoDS;
GetCheckStatus(me)
returns CheckStatus from BOPAlgo;
- ---Purpose: gets status of faulty
+ ---Purpose: gets status of faulty
+
+ SetMaxDistance1(me:out;
+ theDist : Real from Standard);
+ ---Purpose: Sets max distance for the first shape
+
+ SetMaxDistance2(me:out;
+ theDist : Real from Standard);
+ ---Purpose: Sets max distance for the second shape
+
+ SetMaxParameter1(me:out;
+ thePar : Real from Standard);
+ ---Purpose: Sets the parameter for the first shape
+
+ SetMaxParameter2(me:out;
+ thePar : Real from Standard);
+ ---Purpose: Sets the parameter for the second shape
+
+ GetMaxDistance1(me)
+ returns Real from Standard;
+ ---Purpose: Returns the distance for the first shape
+
+ GetMaxDistance2(me)
+ returns Real from Standard;
+ ---Purpose: Returns the distance for the second shape
+
+ GetMaxParameter1(me)
+ returns Real from Standard;
+ ---Purpose: Returns the parameter for the fircst shape
+
+ GetMaxParameter2(me)
+ returns Real from Standard;
+ ---Purpose: Returns the parameter for the second shape
fields
myShape2 : Shape from TopoDS;
myStatus : CheckStatus from BOPAlgo;
myFaulty1 : ListOfShape from BOPCol;
- myFaulty2 : ListOfShape from BOPCol;
+ myFaulty2 : ListOfShape from BOPCol;
+ myMaxDist1 : Real from Standard;
+ myMaxDist2 : Real from Standard;
+ myMaxPar1 : Real from Standard;
+ myMaxPar2 : Real from Standard;
end CheckResult;
// function: BOPAlgo_CheckResult()
// purpose:
//=======================================================================
-BOPAlgo_CheckResult::BOPAlgo_CheckResult() : myStatus(BOPAlgo_CheckUnknown)
+BOPAlgo_CheckResult::BOPAlgo_CheckResult()
+:
+ myStatus(BOPAlgo_CheckUnknown),
+ myMaxDist1(0.),
+ myMaxDist2(0.),
+ myMaxPar1(0.),
+ myMaxPar2(0.)
{
}
{
return myStatus;
}
+
+void BOPAlgo_CheckResult::SetMaxDistance1(const Standard_Real theDist)
+{
+ myMaxDist1 = theDist;
+}
+
+void BOPAlgo_CheckResult::SetMaxDistance2(const Standard_Real theDist)
+{
+ myMaxDist2 = theDist;
+}
+
+void BOPAlgo_CheckResult::SetMaxParameter1(const Standard_Real thePar)
+{
+ myMaxPar1 = thePar;
+}
+
+void BOPAlgo_CheckResult::SetMaxParameter2(const Standard_Real thePar)
+{
+ myMaxPar2 = thePar;
+}
+
+Standard_Real BOPAlgo_CheckResult::GetMaxDistance1() const
+{
+ return myMaxDist1;
+}
+
+Standard_Real BOPAlgo_CheckResult::GetMaxDistance2() const
+{
+ return myMaxDist2;
+}
+
+Standard_Real BOPAlgo_CheckResult::GetMaxParameter1() const
+{
+ return myMaxPar1;
+}
+
+Standard_Real BOPAlgo_CheckResult::GetMaxParameter2() const
+{
+ return myMaxPar2;
+}
#include <BOPTest.ixx>
#include <TCollection_AsciiString.hxx>
+#include <TopExp_Explorer.hxx>
+
+#include <TopTools_MapOfShape.hxx>
+#include <TopTools_ShapeMapHasher.hxx>
+
#include <gp_Pnt.hxx>
#include <TopoDS_Shape.hxx>
#include <BOPAlgo_ArgumentAnalyzer.hxx>
#include <BOPAlgo_CheckResult.hxx>
+#include <BOPTools_AlgoTools.hxx>
+
static
Standard_Integer bopcheck (Draw_Interpretor&, Standard_Integer, const char** );
static
Standard_Integer bopargcheck (Draw_Interpretor&, Standard_Integer, const char** );
+
+static
+ Standard_Integer xdistef(Draw_Interpretor&, Standard_Integer, const char** );
+
+static
+ Standard_Integer checkcurveonsurf (Draw_Interpretor&, Standard_Integer, const char**);
+
+static
+ Standard_Integer csdeviation(Draw_Interpretor&, Standard_Integer, const char** );
+
+static
+ Standard_Integer checkcsdeviation(Draw_Interpretor&, Standard_Integer, const char** );
+
//
//=======================================================================
theCommands.Add("bopargcheck" ,
"Use bopargcheck without parameters to get ",
__FILE__, bopargcheck, g);
+ theCommands.Add ("xdistef" ,
+ "Use xdistef edge face",
+ __FILE__, xdistef, g);
+ theCommands.Add("checkcurveonsurf",
+ "checkcurveonsurf shape",
+ __FILE__, checkcurveonsurf, g);
+
+ theCommands.Add("csdeviation",
+ "csdeviation edge face",
+ __FILE__, csdeviation, g);
+
+ theCommands.Add("checkcsdeviation",
+ "checkcsdeviation shape",
+ __FILE__, checkcsdeviation, g);
}
//=======================================================================
const Standard_Integer aIndex,
const BOPCol_ListOfShape & aList,
Standard_Integer& aCount,
- Draw_Interpretor& di)
+ Draw_Interpretor& di,
+ Standard_Boolean bCurveOnSurf = Standard_False,
+ Standard_Real aMaxDist = 0.,
+ Standard_Real aMaxParameter = 0.)
{
TCollection_AsciiString aNum(aIndex);
TCollection_AsciiString aName = aBaseName + aNum;
BB.Add(cmp, aS);
aCount++;
}
- di << "Made faulty shape: " << name << "\n";
+ di << "Made faulty shape: " << name;
+ //
+ if (bCurveOnSurf) {
+ di << " (MaxDist = " << aMaxDist
+ << ", MaxPar = " << aMaxParameter << ")";
+ }
+ //
+ di << "\n";
+ //
DBRep::Set(name, cmp);
}
if (n<2) {
di << "\n";
di << " Use >bopargcheck Shape1 [[Shape2] ";
- di << "[-F/O/C/T/S/U] [/R|F|T|V|E|I|P]] [#BF]" << "\n" << "\n";
+ di << "[-F/O/C/T/S/U] [/R|F|T|V|E|I|P|C|S]] [#BF]" << "\n" << "\n";
di << " -<Boolean Operation>" << "\n";
di << " F (fuse)" << "\n";
di << " O (common)" << "\n";
di << " I (disable self-interference test)" << "\n";
di << " P (disable shape type test)" << "\n";
di << " C (disable test for shape continuity)" << "\n";
+ di << " S (disable curve on surface check)" << "\n";
di << " For example: \"bopargcheck s1 s2 /RI\" disables ";
di << "small edge detection and self-intersection detection" << "\n";
di << " default - all options are enabled" << "\n" << "\n";
aChecker.SetShape1(aS1);
// set default options (always tested!) for single and couple shapes
- aChecker.ArgumentTypeMode() = Standard_True;
- aChecker.SelfInterMode() = Standard_True;
- aChecker.SmallEdgeMode() = Standard_True;
- aChecker.RebuildFaceMode() = Standard_True;
- aChecker.ContinuityMode() = Standard_True;
+ aChecker.ArgumentTypeMode() = Standard_True;
+ aChecker.SelfInterMode() = Standard_True;
+ aChecker.SmallEdgeMode() = Standard_True;
+ aChecker.RebuildFaceMode() = Standard_True;
+ aChecker.ContinuityMode() = Standard_True;
+ aChecker.CurveOnSurfaceMode() = Standard_True;
// test & set options and operation for two shapes
if(!aS22.IsNull()) {
else if(a[indxOP][ind] == 'C' || a[indxOP][ind] == 'c') {
aChecker.ContinuityMode() = Standard_False;
}
+ else if(a[indxOP][ind] == 'S' || a[indxOP][ind] == 's') {
+ aChecker.CurveOnSurfaceMode() = Standard_False;
+ }
else {
di << "Error: invalid test option(s)!" << "\n";
di << "Type bopargcheck without arguments for more information" << "\n";
Standard_Integer S2_SelfIntAll = 0, S2_SmalEAll = 0, S2_BadFAll = 0, S2_BadVAll = 0, S2_BadEAll = 0;
Standard_Integer S1_OpAb = 0, S2_OpAb = 0;
Standard_Integer S1_C0 = 0, S2_C0 = 0, S1_C0All = 0, S2_C0All = 0;
+ Standard_Integer S1_COnS = 0, S2_COnS = 0, S1_COnSAll = 0, S2_COnSAll = 0;
Standard_Boolean hasUnknown = Standard_False;
TCollection_AsciiString aS1SIBaseName("s1si_");
TCollection_AsciiString aS1BVBaseName("s1bv_");
TCollection_AsciiString aS1BEBaseName("s1be_");
TCollection_AsciiString aS1C0BaseName("s1C0_");
+ TCollection_AsciiString aS1COnSBaseName("s1COnS_");
TCollection_AsciiString aS2SIBaseName("s2si_");
TCollection_AsciiString aS2SEBaseName("s2se_");
TCollection_AsciiString aS2BFBaseName("s2bf_");
TCollection_AsciiString aS2BVBaseName("s2bv_");
TCollection_AsciiString aS2BEBaseName("s2be_");
TCollection_AsciiString aS2C0BaseName("s2C0_");
+ TCollection_AsciiString aS2COnSBaseName("s2COnS_");
for(; anIt.More(); anIt.Next()) {
const BOPAlgo_CheckResult& aResult = anIt.Value();
}
}
break;
+ case BOPAlgo_InvalidCurveOnSurface: {
+ if(!aSS1.IsNull()) {
+ S1_COnS++;
+ if(isL1) {
+ Standard_Real aMaxDist = aResult.GetMaxDistance1();
+ Standard_Real aMaxParameter = aResult.GetMaxParameter1();
+ MakeShapeForFullOutput(aS1COnSBaseName, S1_COnS, aLS1, S1_COnSAll, di,
+ Standard_True, aMaxDist, aMaxParameter);
+ }
+ }
+ if(!aSS2.IsNull()) {
+ S2_COnS++;
+ if(isL2) {
+ Standard_Real aMaxDist = aResult.GetMaxDistance2();
+ Standard_Real aMaxParameter = aResult.GetMaxParameter2();
+ MakeShapeForFullOutput(aS2COnSBaseName, S2_COnS, aLS2, S2_COnSAll, di,
+ Standard_True, aMaxDist, aMaxParameter);
+ }
+ }
+ }
+ break;
case BOPAlgo_OperationAborted: {
if(!aSS1.IsNull()) S1_OpAb++;
if(!aSS2.IsNull()) S2_OpAb++;
} // switch
}// faulties
- Standard_Integer FS1 = S1_SelfInt + S1_SmalE + S1_BadF + S1_BadV + S1_BadE + S1_OpAb + S1_C0;
+ Standard_Integer FS1 = S1_SelfInt + S1_SmalE + S1_BadF + S1_BadV + S1_BadE + S1_OpAb + S1_C0 + S1_COnS;
FS1 += (S1_BadType != 0) ? 1 : 0;
- Standard_Integer FS2 = S2_SelfInt + S2_SmalE + S2_BadF + S2_BadV + S2_BadE + S2_OpAb + S2_C0;
+ Standard_Integer FS2 = S2_SelfInt + S2_SmalE + S2_BadF + S2_BadV + S2_BadE + S2_OpAb + S2_C0 + S2_COnS;
FS2 += (S2_BadType != 0) ? 1 : 0;
// output for first shape
di << " Cases(" << S1_C0 << ") Total shapes(" << S1_C0All << ")" << "\n";
else
di << "\n";
+
+ Standard_CString CString17;
+ if (S1_COnS != 0)
+ CString17="YES";
+ else
+ CString17="NO";
+ di << "Invalid Curve on Surface : " << CString17;
+ if(S1_COnS != 0)
+ di << " Cases(" << S1_COnS << ") Total shapes(" << S1_COnSAll << ")" << "\n";
+ else
+ di << "\n";
}
// output for second shape
else
di << "\n";
+ Standard_CString CString18;
+ if (S2_COnS != 0)
+ CString18="YES";
+ else
+ CString18="NO";
+ di << "Invalid Curve on Surface : " << CString18;
+ if(S2_COnS != 0)
+ di << " Cases(" << S2_COnS << ") Total shapes(" << S2_COnSAll << ")" << "\n";
+ else
+ di << "\n";
+
// warning
di << "\n";
if(hasUnknown)
return 0;
}
+
+//=======================================================================
+//function : xdistef
+//purpose :
+//=======================================================================
+Standard_Integer xdistef(Draw_Interpretor& di,
+ Standard_Integer n,
+ const char** a)
+{
+ if(n < 3) {
+ di << "Use efmaxdist edge face\n";
+ return 1;
+ }
+ //
+ const TopoDS_Shape aS1 = DBRep::Get(a[1]);
+ const TopoDS_Shape aS2 = DBRep::Get(a[2]);
+ //
+ if (aS1.IsNull() || aS2.IsNull()) {
+ di << "null shapes\n";
+ return 1;
+ }
+ //
+ if (aS1.ShapeType() != TopAbs_EDGE ||
+ aS2.ShapeType() != TopAbs_FACE) {
+ di << "type mismatch\n";
+ return 1;
+ }
+ //
+ Standard_Real aMaxDist = 0.0, aMaxPar = 0.0;
+ //
+ const TopoDS_Edge& anEdge = *(TopoDS_Edge*)&aS1;
+ const TopoDS_Face& aFace = *(TopoDS_Face*)&aS2;
+ //
+ if(!BOPTools_AlgoTools::ComputeTolerance
+ (aFace, anEdge, aMaxDist, aMaxPar)) {
+ di << "Tolerance cannot be computed\n";
+ return 1;
+ }
+ //
+ di << "Max Distance = " << aMaxDist
+ << "; Parameter on curve = " << aMaxPar << "\n";
+ //
+ return 0;
+}
+
+//=======================================================================
+//function : checkcurveonsurf
+//purpose :
+//=======================================================================
+Standard_Integer checkcurveonsurf(Draw_Interpretor& di,
+ Standard_Integer n,
+ const char** a)
+{
+ if (n != 2) {
+ di << "use checkcurveonsurf shape\n";
+ return 1;
+ }
+ //
+ TopoDS_Shape aS = DBRep::Get(a[1]);
+ if (aS.IsNull()) {
+ di << "null shape\n";
+ return 1;
+ }
+ //
+ Standard_Integer nE, nF, anECounter, aFCounter;
+ Standard_Real aT, aTolE, aDMax;
+ TopExp_Explorer aExpF, aExpE;
+ char buf[200], aFName[10], anEName[10];
+ NCollection_DataMap<TopoDS_Shape, Standard_Real, TopTools_ShapeMapHasher> aDMETol;
+ BOPCol_DataMapOfShapeInteger aMSI;
+ //
+ anECounter = 0;
+ aFCounter = 0;
+ //
+ aExpF.Init(aS, TopAbs_FACE);
+ for (; aExpF.More(); aExpF.Next()) {
+ const TopoDS_Face& aF = *(TopoDS_Face*)&aExpF.Current();
+ //
+ aExpE.Init(aF, TopAbs_EDGE);
+ for (; aExpE.More(); aExpE.Next()) {
+ const TopoDS_Edge& aE = *(TopoDS_Edge*)&aExpE.Current();
+ //
+ if (!BOPTools_AlgoTools::ComputeTolerance(aF, aE, aDMax, aT)) {
+ continue;
+ }
+ //
+ aTolE = BRep_Tool::Tolerance(aE);
+ if (aDMax < aTolE) {
+ continue;
+ }
+ //
+ if (aDMETol.IsBound(aE)) {
+ Standard_Real& aD = aDMETol.ChangeFind(aE);
+ if (aDMax > aD) {
+ aD = aDMax;
+ }
+ }
+ else {
+ aDMETol.Bind(aE, aDMax);
+ }
+ //
+ if (anECounter == 0) {
+ di << "Invalid curves on surface:\n";
+ }
+ //
+ if (aMSI.IsBound(aE)) {
+ nE = aMSI.Find(aE);
+ }
+ else {
+ nE = anECounter;
+ aMSI.Bind(aE, nE);
+ ++anECounter;
+ }
+ //
+ if (aMSI.IsBound(aF)) {
+ nF = aMSI.Find(aF);
+ } else {
+ nF = aFCounter;
+ aMSI.Bind(aF, nF);
+ ++aFCounter;
+ }
+ //
+ Sprintf(anEName, "e_%d", nE);
+ Sprintf(aFName , "f_%d", nF);
+ Sprintf(buf, "edge %s on face %s (max dist: %3.16f, parameter on curve: %3.16f)\n",
+ anEName, aFName, aDMax, aT);
+ di << buf;
+ //
+ DBRep::Set(anEName, aE);
+ DBRep::Set(aFName , aF);
+ }
+ }
+ //
+ if (anECounter > 0) {
+ di << "\n\nSugestions to fix the shape:\n";
+ di << "explode " << a[1] << " e;\n";
+ //
+ TopTools_MapOfShape M;
+ aExpE.Init(aS, TopAbs_EDGE);
+ for (anECounter = 0; aExpE.More(); aExpE.Next()) {
+ const TopoDS_Shape& aE = aExpE.Current();
+ if (!M.Add(aE)) {
+ continue;
+ }
+ ++anECounter;
+ //
+ if (!aDMETol.IsBound(aE)) {
+ continue;
+ }
+ //
+ aTolE = aDMETol.Find(aE);
+ aTolE *= 1.001;
+ sprintf(buf, "settolerance %s_%d %3.16f;\n", a[1], anECounter, aTolE);
+ di << buf;
+ }
+ }
+ else {
+ di << "This shape seems to be OK.\n";
+ }
+ //
+ return 0;
+}
+
+//=======================================================================
+//function : csdeviation
+//purpose :
+//=======================================================================
+Standard_Integer csdeviation(Draw_Interpretor& di,
+ Standard_Integer n,
+ const char** a)
+{
+ if(n != 3) {
+ di << "Use csdeviation edge face\n";
+ return 1;
+ }
+ //
+ const TopoDS_Shape aS1 = DBRep::Get(a[1]);
+ const TopoDS_Shape aS2 = DBRep::Get(a[2]);
+ //
+ if (aS1.IsNull() || aS2.IsNull()) {
+ di << "null shapes\n";
+ return 1;
+ }
+ //
+ if (aS1.ShapeType() != TopAbs_EDGE ||
+ aS2.ShapeType() != TopAbs_FACE) {
+ di << "type mismatch\n";
+ return 1;
+ }
+ //
+ Standard_Real aMaxDist = 0., aMaxPar = 0.;
+ //
+ const TopoDS_Edge& anEdge = *(TopoDS_Edge*)&aS1;
+ const TopoDS_Face& aFace = *(TopoDS_Face*)&aS2;
+ //
+ if(!BOPTools_AlgoTools::Deviation
+ (anEdge, aFace, aMaxDist, aMaxPar)) {
+ di << "Deviation cannot be computed\n";
+ return 1;
+ }
+ //
+ di << "Max Distance = " << aMaxDist
+ << "; Parameter on curve = " << aMaxPar << "\n";
+ //
+ return 0;
+}
+
+//=======================================================================
+//function : checkcsdeviation
+//purpose :
+//=======================================================================
+Standard_Integer checkcsdeviation(Draw_Interpretor& di,
+ Standard_Integer n,
+ const char** a)
+{
+ if (n != 2) {
+ di << "use checkcsdeviation shape\n";
+ return 1;
+ }
+ //
+ TopoDS_Shape aS = DBRep::Get(a[1]);
+ if (aS.IsNull()) {
+ di << "null shape\n";
+ return 1;
+ }
+ //
+ Standard_Integer nE, nF, anECounter, aFCounter;
+ Standard_Real aT, aTolE, aDMax;
+ TopExp_Explorer aExpF, aExpE;
+ char buf[200], aFName[10], anEName[10];
+ NCollection_DataMap<TopoDS_Shape, Standard_Real, TopTools_ShapeMapHasher> aDMETol;
+ BOPCol_DataMapOfShapeInteger aMSI;
+ //
+ anECounter = 0;
+ aFCounter = 0;
+ //
+ aExpF.Init(aS, TopAbs_FACE);
+ for (; aExpF.More(); aExpF.Next()) {
+ const TopoDS_Face& aF = *(TopoDS_Face*)&aExpF.Current();
+ //
+ aExpE.Init(aF, TopAbs_EDGE);
+ for (; aExpE.More(); aExpE.Next()) {
+ const TopoDS_Edge& aE = *(TopoDS_Edge*)&aExpE.Current();
+ //
+ if (!BOPTools_AlgoTools::Deviation(aE, aF, aDMax, aT)) {
+ continue;
+ }
+ //
+ aTolE = BRep_Tool::Tolerance(aE);
+ if (aDMax <= aTolE) {
+ continue;
+ }
+ //
+ if (aDMETol.IsBound(aE)) {
+ Standard_Real& aD = aDMETol.ChangeFind(aE);
+ if (aDMax > aD) {
+ aD = aDMax;
+ }
+ }
+ else {
+ aDMETol.Bind(aE, aDMax);
+ }
+ //
+ if (anECounter == 0) {
+ di << "Invalid curves on surface:\n";
+ }
+ //
+ if (aMSI.IsBound(aE)) {
+ nE = aMSI.Find(aE);
+ }
+ else {
+ nE = anECounter;
+ aMSI.Bind(aE, nE);
+ ++anECounter;
+ }
+ //
+ if (aMSI.IsBound(aF)) {
+ nF = aMSI.Find(aF);
+ } else {
+ nF = aFCounter;
+ aMSI.Bind(aF, nF);
+ ++aFCounter;
+ }
+ //
+ Sprintf(anEName, "e_%d", nE);
+ Sprintf(aFName , "f_%d", nF);
+ Sprintf(buf, "edge %s on face %s (max dist: %3.16f, parameter on curve: %3.16f)\n",
+ anEName, aFName, aDMax, aT);
+ di << buf;
+ //
+ DBRep::Set(anEName, aE);
+ DBRep::Set(aFName , aF);
+ }
+ }
+ //
+ if (anECounter > 0) {
+ di << "\n\nSugestions to fix the shape:\n";
+ di << "explode " << a[1] << " e;\n";
+ //
+ TopTools_MapOfShape M;
+ aExpE.Init(aS, TopAbs_EDGE);
+ for (anECounter = 0; aExpE.More(); aExpE.Next()) {
+ const TopoDS_Shape& aE = aExpE.Current();
+ if (!M.Add(aE)) {
+ continue;
+ }
+ ++anECounter;
+ //
+ if (!aDMETol.IsBound(aE)) {
+ continue;
+ }
+ //
+ aTolE = aDMETol.Find(aE);
+ aTolE *= 1.001;
+ sprintf(buf, "settolerance %s_%d %3.16f;\n", a[1], anECounter, aTolE);
+ di << buf;
+ }
+ }
+ else {
+ di << "This shape seems to be OK.\n";
+ }
+ //
+ return 0;
+}
+
Wire from TopoDS,
Shell from TopoDS,
Solid from TopoDS,
+ Curve from Geom,
+ Curve from Geom2d,
+ Surface from Geom,
--
BaseAllocator from BOPCol,
ListOfShape from BOPCol,
returns Boolean from Standard;
---Purpose: Returns true if the solid <theSolid> is inverted
+ ComputeTolerance(myclass;
+ theCurve3D : Curve from Geom;
+ theCurve2D : Curve from Geom2d;
+ theSurf : Surface from Geom;
+ theMaxDist : out Real from Standard;
+ theMaxPar : out Real from Standard)
+ returns Boolean from Standard;
+ ---Purpose:
+ -- Computes the max distance between points
+ -- taken from 3D and 2D curves by the same parameter
+
+ ComputeTolerance(myclass;
+ theFace : Face from TopoDS;
+ theEdge : Edge from TopoDS;
+ theMaxDist : out Real from Standard;
+ theMaxPar : out Real from Standard)
+ returns Boolean from Standard;
+ ---Purpose:
+ -- Computes the neccessary value of the tolerance for the edge
+
+ Deviation(myclass;
+ theEdge : Edge from TopoDS;
+ theFace : Face from TopoDS;
+ theDist : out Real from Standard;
+ theParam : out Real from Standard)
+ returns Boolean from Standard;
+ ---Purpose:
+ -- Computes the max distance between edge and face
+
+ Deviation(myclass;
+ theCurve : Curve from Geom;
+ theSurface : Surface from Geom;
+ theFirst : Real from Standard;
+ theLast : Real from Standard;
+ theDist : out Real from Standard;
+ theParam : out Real from Standard)
+ returns Boolean from Standard;
+ ---Purpose:
+ -- Computes the max distance between curve and surface
+
end AlgoTools;
}
//
- aToler=.5*BRep_Tool::Tolerance(aE);
+ aToler = BRep_Tool::Tolerance(aE);
BOPTools_AlgoTools2D::MakePCurveOnFace(aF, C3D2, f3d, l3d, aC2D, aToler);
//
aFirst = f3d;
}
}
TolReached2d=aTolR;
-
- BOPTools_AlgoTools2D::AdjustPCurveOnFace (aF, aFirst, aLast, aC2D, aC2DA);
- aC2D=aC2DA;
+ //
+ if (!aC2D.IsNull()) {
+ BOPTools_AlgoTools2D::AdjustPCurveOnFace (aF, aFirst, aLast, aC2D, aC2DA);
+ aC2D=aC2DA;
+ }
}
//=======================================================================
static
void UpdateVertices(const TopoDS_Edge& aE);
+//=======================================================================
+//class : BOPTools_CheckCurveOnSurface
+//purpose : it is used to check the curve on the surface
+//=======================================================================
+#include <math_GlobOptMin.hxx>
+#include <math_MultipleVarFunctionWithHessian.hxx>
+#include <math_Matrix.hxx>
+#include <Geom2d_TrimmedCurve.hxx>
+
+class BOPTools_CheckCurveOnSurface :
+ public math_MultipleVarFunctionWithHessian
+{
+ public:
+ BOPTools_CheckCurveOnSurface(BOPTools_CheckCurveOnSurface&);
+ BOPTools_CheckCurveOnSurface(const Handle(Geom_Curve)& theC3D,
+ const Handle(Geom2d_Curve)& theC2D,
+ const Handle(Geom_Surface)& theSurf)
+ :
+ my3DCurve(theC3D),
+ my2DCurve(theC2D),
+ mySurf(theSurf)
+ {
+ }
+ //
+ virtual Standard_Integer NbVariables() const {
+ return 1;
+ }
+ //
+ virtual Standard_Boolean Value(const math_Vector& theX,
+ Standard_Real& theFVal)
+ {
+ Standard_Real u = theX(1);
+ Standard_Real aFirst = my3DCurve->FirstParameter();
+ Standard_Real aLast = my3DCurve->LastParameter();
+
+ if ((u < aFirst) || (u > aLast))
+ {
+ return Standard_False;
+ }
+
+ try {
+ const Standard_Real aPar = theX(1);
+ gp_Pnt aP1, aP2;
+ gp_Pnt2d aP2d;
+ my3DCurve->D0(aPar, aP1);
+ my2DCurve->D0(aPar, aP2d);
+ mySurf->D0(aP2d.X(), aP2d.Y(), aP2);
+ //
+ theFVal = -1.0*aP1.SquareDistance(aP2);
+ }
+ catch(...) {
+ return Standard_False;
+ }
+ //
+ return Standard_True;
+ }
+ //
+ virtual Standard_Integer GetStateNumber() {
+ return 0;
+ }
+ //
+ virtual Standard_Boolean Gradient(const math_Vector& theX,
+ math_Vector& theGrad) {
+
+ Standard_Real u = theX(1);
+ Standard_Real aRange = (my3DCurve->LastParameter() - my3DCurve->FirstParameter());
+ Standard_Real aFirst = my3DCurve->FirstParameter() - 0.1*aRange;
+ Standard_Real aLast = my3DCurve->LastParameter() + 0.1*aRange;
+
+ if ((u < aFirst) || (u > aLast))
+ {
+ return Standard_False;
+ }
+
+ try {
+ const Standard_Real aPar = theX(1);
+
+ gp_Pnt aP1, aP2;
+ gp_Vec aDC3D, aDSU, aDSV;
+ gp_Pnt2d aP2d;
+ gp_Vec2d aDC2D;
+
+ my3DCurve->D1(aPar, aP1, aDC3D);
+ my2DCurve->D1(aPar, aP2d, aDC2D);
+ mySurf->D1(aP2d.X(), aP2d.Y(), aP2, aDSU, aDSV);
+
+ aP1.SetXYZ(aP1.XYZ() - aP2.XYZ());
+ aP2.SetXYZ(aDC3D.XYZ() - aDC2D.X()*aDSU.XYZ() - aDC2D.Y()*aDSV.XYZ());
+
+ theGrad(1) = -2.0*aP1.XYZ().Dot(aP2.XYZ());
+ }
+ catch(...) {
+ return Standard_False;
+ }
+
+ return Standard_True;
+ }
+ //
+ virtual Standard_Boolean Values(const math_Vector& theX,
+ Standard_Real& theVal,
+ math_Vector& theGrad) {
+ if(!Value(theX, theVal))
+ return Standard_False;
+
+ if(!Gradient(theX, theGrad))
+ return Standard_False;
+
+ return Standard_True;
+ }
+ //
+ virtual Standard_Boolean Values(const math_Vector& theX,
+ Standard_Real& theVal,
+ math_Vector& theGrad,
+ math_Matrix& theHessian) {
+ if(!Value(theX, theVal))
+ return Standard_False;
+
+ if(!Gradient(theX, theGrad))
+ return Standard_False;
+
+ theHessian(1,1) = theGrad(1);
+
+ return Standard_True;
+ }
+ //
+ private:
+ Handle(Geom_Curve) my3DCurve;
+ Handle(Geom2d_Curve) my2DCurve;
+ Handle(Geom_Surface) mySurf;
+};
+
+//=======================================================================
+//class : BOPTools_CheckCSDistance
+//purpose : the class is used to measure the deviation between
+// edge and face
+//=======================================================================
+///--------------------------------------------------
+#include <Precision.hxx>
+#include <GeomAPI_ProjectPointOnSurf.hxx>
+
+#ifdef HAVE_TBB
+#include <tbb\parallel_reduce.h>
+#include <tbb\blocked_range.h>
+
+using namespace tbb;
+#endif
+
+class BOPTools_CheckCSDistance
+{
+ BOPTools_CheckCSDistance operator=(BOPTools_CheckCSDistance&);
+public:
+ BOPTools_CheckCSDistance( const Handle(Geom_Curve)& theC3D,
+ const Handle(Geom_Surface)& theSurface,
+ const Standard_Boolean theIsNotOptimize,
+ const Standard_Real theFirst,
+ const Standard_Real theLast)
+ :
+ myGoldRatio((sqrt(5.)-1.)/2.),
+ myCurve(theC3D),
+ mySurface(theSurface),
+ myFirst(theFirst),
+ myLast(theLast),
+ myIsNotOptimize(theIsNotOptimize),
+ myMaxStep(1.e-4*(myLast - myFirst))
+ {
+ Standard_Real aUMin = 0.0, aUMax = 0.0, aVMin = 0.0, aVMax = 0.0;
+ theSurface->Bounds(aUMin, aUMax, aVMin, aVMax);
+ myProjPS.Init(theSurface, aUMin, aUMax, aVMin, aVMax);
+
+ myMaxParam = theFirst;
+ Value(myMaxParam, myMaxValue);
+ }
+
+ //
+ Standard_Boolean Value(const Standard_Real thePar,
+ Standard_Real& theFVal)
+ {
+ if ((thePar < myFirst) || (thePar > myLast)) {
+ return Standard_False;
+ }
+ //
+ gp_Pnt aPOnC;
+ myCurve->D0(thePar, aPOnC);
+ myProjPS.Perform(aPOnC);
+ theFVal = myProjPS.IsDone() ? myProjPS.LowerDistance() : 0.;
+ //
+ return Standard_True;
+ }
+ //GoldRatio method
+ void MinimizeByGoldenRatio(const Standard_Real theFirst,
+ const Standard_Real theLast)
+ {
+
+ Standard_Real aFirst, aLast, aMidPar1, aMidPar2, aMidVal1, aMidVal2;
+ //
+ aFirst = theFirst;
+ aLast = theLast;
+ aMidPar1 = aLast - (aLast - aFirst) * myGoldRatio;
+ aMidPar2 = aFirst + (aLast - aFirst) * myGoldRatio;
+ Value(aMidPar1, aMidVal1);
+ Value(aMidPar2, aMidVal2);
+ //
+ Standard_Boolean bIsEqual = Standard_False;
+ //
+ do {
+ if (Abs(aMidVal1 - aMidVal2) <= Precision::Confusion()) {
+ bIsEqual = Standard_True;
+ break;
+ }
+ //
+ if (aMidVal1 > aMidVal2) {
+ aLast = aMidPar2;
+ aMidPar2 = aMidPar1;
+ aMidVal2 = aMidVal1;
+ aMidPar1 = aLast - (aLast - aFirst) * myGoldRatio;
+ Value(aMidPar1, aMidVal1);
+ }
+ else
+ {
+ aFirst = aMidPar1;
+ aMidPar1 = aMidPar2;
+ aMidVal1 = aMidVal2;
+ aMidPar2 = aFirst + (aLast - aFirst) * myGoldRatio;
+ Value(aMidPar2, aMidVal2);
+ }
+ }
+ while ((aMidPar2 - aMidPar1) > myMaxStep);
+
+ const Standard_Real aTMax = (aLast + aFirst)*0.5;
+
+ if(myIsNotOptimize)
+ {
+ if (bIsEqual && ((aMidPar2-aMidPar1) > myMaxStep))
+ {
+ MinimizeByGoldenRatio(aMidPar1, aMidPar2);
+ MinimizeByGoldenRatio(aFirst, aMidPar1);
+ MinimizeByGoldenRatio(aMidPar2, aLast);
+ }
+ }
+
+ //
+ Standard_Real aVal = 0.;
+ Value(aTMax, aVal);
+ //
+ if (aVal > myMaxValue) {
+ myMaxParam = aTMax;
+ myMaxValue = aVal;
+ }
+
+ //if(!myIsNotOptimize)
+ //{
+ // if( ((aTMax - theFirst) > myMaxStep) &&
+ // ((theLast - aTMax) > myMaxStep))
+ // {
+ // const Standard_Real aSt = 0.5*myMaxStep;
+ // MinimizeByGoldenRatio(theFirst, aTMax-aSt);
+ // MinimizeByGoldenRatio(aTMax+aSt, theLast);
+ // }
+ //}
+ }
+
+ Handle(Geom_Curve) GetCurve() const
+ {
+ return myCurve;
+ }
+
+ Handle(Geom_Surface) GetSurface() const
+ {
+ return mySurface;
+ }
+
+ Standard_Real GetFirstParam() const
+ {
+ return myFirst;
+ }
+
+ Standard_Real GetLastParam() const
+ {
+ return myLast;
+ }
+
+ Standard_Boolean GetOptimizeFlag() const
+ {
+ return myIsNotOptimize;
+ }
+ //
+ Standard_Real ParameterOnCurve() const
+ {
+ return myMaxParam;
+ }
+ //
+ Standard_Real MaxDistance() const
+ {
+ return myMaxValue;
+ }
+ //
+
+
+private:
+ const Handle(Geom_Curve) myCurve;
+ const Handle(Geom_Surface) mySurface;
+
+ const Standard_Real myFirst;
+ const Standard_Real myLast;
+ const Standard_Real myMaxStep;
+ const Standard_Real myGoldRatio;
+
+ const Standard_Boolean myIsNotOptimize;
+ //
+ GeomAPI_ProjectPointOnSurf myProjPS;
+ //
+ Standard_Real myMaxValue;
+ Standard_Real myMaxParam;
+};
+
+#ifdef HAVE_TBB
+class BOPTools_CSDParallelComputing
+{
+public:
+ BOPTools_CSDParallelComputing(const BOPTools_CheckCSDistance& theCD,
+ const Standard_Real theDeltaParam): myBTCheckDist(theCD.GetCurve(), theCD.GetSurface(), theCD.GetOptimizeFlag(),theCD.GetFirstParam(), theCD.GetLastParam()), myDeltaParam(theDeltaParam){}
+//
+ BOPTools_CSDParallelComputing(BOPTools_CSDParallelComputing& theCD, split ) :
+ myBTCheckDist(theCD.myBTCheckDist.GetCurve(), theCD.myBTCheckDist.GetSurface(), theCD.myBTCheckDist.GetOptimizeFlag(), theCD.myBTCheckDist.GetFirstParam(), theCD.myBTCheckDist.GetLastParam()),
+ myMaxValue(theCD.myMaxValue),
+ myMaxParam(theCD.myMaxParam), myDeltaParam(theCD.myDeltaParam) {}
+
+ void join(const BOPTools_CSDParallelComputing& theCD)
+ {
+ if(theCD.myMaxValue > myMaxValue)
+ {
+ myMaxValue = theCD.myMaxValue;
+ myMaxParam = theCD.myMaxParam;
+ }
+ }
+
+ void operator()(const blocked_range<Standard_Integer>& theRange)
+ {
+ for(Standard_Integer anInd = theRange.begin(); anInd != theRange.end(); anInd++)
+ {
+ const Standard_Real aStart = myBTCheckDist.GetFirstParam() + anInd*myDeltaParam;
+ myBTCheckDist.MinimizeByGoldenRatio(aStart, aStart+myDeltaParam);
+
+ if(myBTCheckDist.MaxDistance() > myMaxValue)
+ {
+ myMaxValue = myBTCheckDist.MaxDistance();
+ myMaxParam = myBTCheckDist.ParameterOnCurve();
+ }
+ }
+ }
+
+ Standard_Real ParameterOnCurve() const
+ {
+ return myMaxParam;
+ }
+ //
+ Standard_Real MaxDistance() const
+ {
+ return myMaxValue;
+ }
+
+
+private:
+ BOPTools_CheckCSDistance myBTCheckDist;
+
+ Standard_Real myMaxValue;
+ Standard_Real myMaxParam;
+
+ const Standard_Real myDeltaParam;
+};
+#endif
+
//=======================================================================
// Function : CorrectTolerances
// purpose :
}
}
}
+
+//=======================================================================
+// Function : MinComputing
+// purpose :
+//=======================================================================
+static Standard_Boolean MinComputing( BOPTools_CheckCurveOnSurface& theFunction,
+ const Standard_Real theFirst,
+ const Standard_Real theLast,
+ const Standard_Real theEpsilon, //1.0e-3
+ Standard_Real & theBestValue,
+ Standard_Real & theBestParameter)
+{
+ //Standard_Real aPrevValue = theBestValue;
+ const Standard_Real aStepMin = 1.0e-2/**Min(1.0, theLast-theFirst)*/;
+ math_Vector aFirstV(1, 1), aLastV(1, 1), anOutputParam(1, 1);
+ aFirstV(1) = theFirst;
+ aLastV(1) = theLast;
+
+ math_GlobOptMin aFinder(&theFunction, aFirstV, aLastV);
+ aFinder.SetTol(aStepMin, theEpsilon);
+ aFinder.Perform();
+
+ const Standard_Integer aNbExtr = aFinder.NbExtrema();
+ for(Standard_Integer i = 1; i <= aNbExtr; i++)
+ {
+ Standard_Real aValue = 0.0;
+ aFinder.Points(i, anOutputParam);
+ theFunction.Value(anOutputParam, aValue);
+
+ if(aValue < theBestValue)
+ {
+ theBestValue = aValue;
+ theBestParameter = anOutputParam(1);
+ }
+ }
+
+ return Standard_True;
+}
+
+
+//=======================================================================
+// Function : ComputeTolerance
+// purpose :
+//=======================================================================
+Standard_Boolean BOPTools_AlgoTools::
+ ComputeTolerance( const Handle(Geom_Curve)& theCurve3D,
+ const Handle(Geom2d_Curve)& theCurve2D,
+ const Handle(Geom_Surface)& theSurf,
+ Standard_Real& theMaxDist,
+ Standard_Real& theMaxPar)
+{
+ if (theCurve3D.IsNull() ||
+ theCurve2D.IsNull() ||
+ theSurf.IsNull()) {
+ return Standard_False;
+ }
+
+ const Standard_Real anEpsilonRange = 1.0e-3, aMinDelta = 1.0e-5;
+
+ //
+ try {
+ Standard_Real aFirst = theCurve3D->FirstParameter(),
+ aLast = theCurve3D->LastParameter();
+
+ BOPTools_CheckCurveOnSurface aFunc(theCurve3D, theCurve2D, theSurf);
+ //
+ math_Vector anOutputParam(1, 1);
+ anOutputParam(1) = theMaxPar = aFirst;
+ //
+ theMaxDist = 0.;
+ MinComputing(aFunc, aFirst, aLast, anEpsilonRange, theMaxDist, theMaxPar);
+
+ Standard_Integer aNbIteration = 100;
+ Standard_Boolean aStatus = Standard_True;
+ while((aNbIteration-- >= 0) && aStatus)
+ {
+ Standard_Real aValue = theMaxDist, aParam = theMaxPar;
+ Standard_Real aBP = theMaxPar - aMinDelta;
+ MinComputing(aFunc, aFirst, aBP, anEpsilonRange, theMaxDist, theMaxPar);
+
+ if(theMaxDist < aValue)
+ {
+ aLast = aBP;
+ aStatus = Standard_True;
+ }
+ else
+ {
+ theMaxDist = aValue;
+ theMaxPar = aParam;
+ aStatus = Standard_False;
+ }
+
+ if(!aStatus)
+ {
+ aBP = theMaxPar + aMinDelta;
+ MinComputing(aFunc, aBP, aLast, 1.0e-3, theMaxDist, theMaxPar);
+
+ if(theMaxDist < aValue)
+ {
+ aFirst = aBP;
+ aStatus = Standard_True;
+ }
+ else
+ {
+ theMaxDist = aValue;
+ theMaxPar = aParam;
+ aStatus = Standard_False;
+ }
+ }
+ }
+
+ theMaxDist = sqrt(Abs(theMaxDist));
+ }
+ catch (...) {
+ return Standard_False;
+ }
+ //
+ return Standard_True;
+}
+
+//=======================================================================
+// Function : ComputeTolerance
+// purpose :
+//=======================================================================
+Standard_Boolean BOPTools_AlgoTools::ComputeTolerance
+ (const TopoDS_Face& theFace,
+ const TopoDS_Edge& theEdge,
+ Standard_Real& theMaxDist,
+ Standard_Real& theParameter)
+{
+ Standard_Boolean bRet;
+ Standard_Real aT, aD, aFirst, aLast;
+ TopLoc_Location aLocC, aLocS;
+ //
+ theMaxDist = 0.;
+ theParameter = 0.;
+ bRet = Standard_False;
+ //
+ const Handle(BRep_TEdge)& aTE = *((Handle(BRep_TEdge)*)&theEdge.TShape());
+ //The edge is considered to be same range and not degenerated
+ if ((!aTE->SameRange() && aTE->SameParameter()) ||
+ aTE->Degenerated()) {
+ return bRet;
+ }
+ //
+ Handle(Geom_Curve) aC = Handle(Geom_Curve)::
+ DownCast(BRep_Tool::Curve(theEdge, aLocC, aFirst, aLast)->Copy());
+ aC = new Geom_TrimmedCurve(aC, aFirst, aLast);
+ aC->Transform(aLocC.Transformation());
+ //
+ const Handle(Geom_Surface)& aSurfF = BRep_Tool::Surface(theFace, aLocS);
+ const Handle(Geom_Surface)& aSurf = Handle(Geom_Surface)::
+ DownCast(aSurfF->Copy()->Transformed(aLocS.Transformation()));
+ //
+ Standard_Boolean isPCurveFound = Standard_False;
+ BRep_ListIteratorOfListOfCurveRepresentation itcr(aTE->Curves());
+ for (; itcr.More(); itcr.Next()) {
+ const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
+ if (!(cr->IsCurveOnSurface(aSurfF, aLocS.Predivided(theEdge.Location())))) {
+ continue;
+ }
+ isPCurveFound = Standard_True;
+ //
+ Handle(Geom2d_Curve) aC2d = Handle(Geom2d_Curve)::
+ DownCast(cr->PCurve()->Copy());
+ aC2d = new Geom2d_TrimmedCurve(aC2d, aFirst, aLast);
+ //
+ if(BOPTools_AlgoTools::ComputeTolerance
+ (aC, aC2d, aSurf, aD, aT)) {
+ bRet = Standard_True;
+ if (aD > theMaxDist) {
+ theMaxDist = aD;
+ theParameter = aT;
+ }
+ }
+ //
+ if (cr->IsCurveOnClosedSurface()) {
+ Handle(Geom2d_Curve) aC2d = Handle(Geom2d_Curve)::
+ DownCast(cr->PCurve2()->Copy());
+ aC2d = new Geom2d_TrimmedCurve(aC2d, aFirst, aLast);
+ //
+ if(BOPTools_AlgoTools::ComputeTolerance
+ (aC, aC2d, aSurf, aD, aT)) {
+ bRet = Standard_True;
+ if (aD > theMaxDist) {
+ theMaxDist = aD;
+ theParameter = aT;
+ }
+ }
+ }
+ }
+ //
+ if (isPCurveFound) {
+ return bRet;
+ }
+ //
+ Handle(Geom_Plane) aPlane;
+ Handle(Standard_Type) dtyp = aSurf->DynamicType();
+ //
+ if (dtyp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) {
+ aPlane = Handle(Geom_Plane)::
+ DownCast(Handle(Geom_RectangularTrimmedSurface)::
+ DownCast(aSurf)->BasisSurface()->Copy());
+ }
+ else {
+ aPlane = Handle(Geom_Plane)::DownCast(aSurf->Copy());
+ }
+ //
+ if (aPlane.IsNull()) { // not a plane
+ return bRet;
+ }
+ //
+ aPlane = Handle(Geom_Plane)::DownCast(aPlane);//
+ //
+ Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(aPlane);
+ Handle(Geom_Curve) ProjOnPlane =
+ GeomProjLib::ProjectOnPlane (new Geom_TrimmedCurve(aC, aFirst, aLast),
+ aPlane, aPlane->Position().Direction(),
+ Standard_True);
+ Handle(GeomAdaptor_HCurve) aHCurve = new GeomAdaptor_HCurve(ProjOnPlane);
+ //
+ ProjLib_ProjectedCurve proj(GAHS,aHCurve);
+ Handle(Geom2d_Curve) aC2d = Geom2dAdaptor::MakeCurve(proj);
+ aC2d = new Geom2d_TrimmedCurve(aC2d, aFirst, aLast);
+ //
+ if(BOPTools_AlgoTools::ComputeTolerance
+ (aC, aC2d, aPlane, aD, aT)) {
+ bRet = Standard_True;
+ if (aD > theMaxDist) {
+ theMaxDist = aD;
+ theParameter = aT;
+ }
+ }
+ //
+ return bRet;
+}
+
+//=======================================================================
+// Function : Deviation
+// purpose :
+//=======================================================================
+Standard_Boolean BOPTools_AlgoTools::Deviation
+ (const TopoDS_Edge& theEdge,
+ const TopoDS_Face& theFace,
+ Standard_Real& theMaxDist,
+ Standard_Real& theParam)
+{
+ Standard_Boolean bFound = Standard_False;
+ //
+ if (theEdge.IsNull() || theFace.IsNull()) {
+ return bFound;
+ }
+ //
+ if (BRep_Tool::Degenerated(theEdge) ||
+ !BRep_Tool::IsGeometric(theEdge)) {
+ return bFound;
+ }
+ //
+ Standard_Real aFirst, aLast;
+ const Handle(Geom_Curve)& aC = BRep_Tool::Curve(theEdge, aFirst, aLast);
+ const Handle(Geom_Surface)& aS = BRep_Tool::Surface(theFace);
+ //
+ bFound = BOPTools_AlgoTools::Deviation
+ (aC, aS, aFirst, aLast, theMaxDist, theParam);
+ //
+ return bFound;
+}
+
+//=======================================================================
+// Function : Deviation
+// purpose :
+//=======================================================================
+
+
+
+Standard_Boolean BOPTools_AlgoTools::Deviation
+ (const Handle(Geom_Curve)& theCurve,
+ const Handle(Geom_Surface)& theSurface,
+ const Standard_Real theFirst,
+ const Standard_Real theLast,
+ Standard_Real& theMaxDist,
+ Standard_Real& theParam)
+{
+ if (theCurve.IsNull() || theSurface.IsNull()) {
+ return Standard_False;
+ }
+ //
+ const Standard_Integer aNbParts = 10;
+ const Standard_Real aDeltaPar = (theLast - theFirst) / aNbParts;
+ theMaxDist = 0.;
+ theParam = theFirst;
+
+ const Standard_Boolean isNotOptimize = ((theCurve->Continuity() == GeomAbs_C0) ||
+ (theSurface->Continuity() == GeomAbs_C0));
+
+
+ BOPTools_CheckCSDistance aFunc(theCurve, theSurface, isNotOptimize, theFirst, theLast);
+
+
+ if(isNotOptimize)
+ {
+#ifdef HAVE_TBB
+ BOPTools_CSDParallelComputing aParall(aFunc, aDeltaPar);
+ parallel_reduce(blocked_range<Standard_Integer>(0,aNbParts-2), aParall);
+ const Standard_Real aDist = aParall.MaxDistance();
+
+ if (aDist > theMaxDist)
+ {
+ theMaxDist = aDist;
+ theParam = aParall.ParameterOnCurve();
+ }
+#else
+ Standard_Real aT1, aT2 = theFirst;
+ for (;;)
+ {
+ aT1 = aT2;
+ aT2 += aDeltaPar;
+
+ if (aT2 > theLast)
+ {
+ break;
+ }
+
+ aFunc.MinimizeByGoldenRatio(aT1, aT2);
+
+ const Standard_Real aDist = aFunc.MaxDistance();
+ if (aDist > theMaxDist)
+ {
+ theMaxDist = aDist;
+ theParam = aFunc.ParameterOnCurve();
+ }
+ }
+#endif
+ }
+ else
+ {
+ aFunc.MinimizeByGoldenRatio(theFirst, theLast);
+ const Standard_Real aDist = aFunc.MaxDistance();
+ if (aDist > theMaxDist)
+ {
+ theMaxDist = aDist;
+ theParam = aFunc.ParameterOnCurve();
+ }
+ }
+
+ return Standard_True;
+}
\ No newline at end of file
#include <math_RealRandom.hxx>
#include <BRepTopAdaptor_FClass2d.hxx>
+#include <vector>
+
static
Standard_Boolean FaceNormal (const TopoDS_Face& aF,
const Standard_Real U,
gp_Pnt aPoint;
gp_Dir aDN;
- math_RealRandom RandomGenerator(0.1, 0.9);
+ math_RealRandom aRandomGenerator(0.1, 0.9);
myFace.Nullify();
myState=2;
- aSE.InitShell();
- if (aSE.MoreShell())
+ // Collect faces in sequence to iterate
+ std::vector<TopoDS_Face> aFaces;
+ for (aSE.InitShell(); aSE.MoreShell(); aSE.NextShell())
+ {
+ for (aSE.InitFace(); aSE.MoreFace(); aSE.NextFace())
+ {
+ aFaces.push_back (aSE.CurrentFace());
+ }
+ }
+
+ // iteratively try up to 10 probing points from each face
+ const int NB_MAX_POINTS_PER_FACE = 10;
+ for (int itry = 0; itry < NB_MAX_POINTS_PER_FACE; itry++)
{
- aSE.InitFace();
- if (aSE.MoreFace())
+ for (std::vector<TopoDS_Face>::iterator iFace = aFaces.begin(); iFace != aFaces.end(); ++iFace)
{
- TopoDS_Face aF = aSE.CurrentFace();
+ TopoDS_Face aF = *iFace;
+
TopAbs_State aState = TopAbs_OUT;
IntCurveSurface_TransitionOnCurve aTransition = IntCurveSurface_Tangent;
- TopoDS_Face MinFace = aF;
- for (;;)
- {
- aParam = RandomGenerator.Next();
- bFound = aSE.FindAPointInTheFace(aF, aPoint, aU, aV, aParam);
- if (!bFound)
- return;
-
- if (!FaceNormal(aF, aU, aV, aDN))
- continue;
- gp_Lin aLin(aPoint, -aDN);
- Standard_Real parmin = RealLast();
- for (aSE.InitShell();aSE.MoreShell();aSE.NextShell()) {
- if (aSE.RejectShell(aLin) == Standard_False) {
- for (aSE.InitFace();aSE.MoreFace(); aSE.NextFace()) {
- if (aSE.RejectFace(aLin) == Standard_False) {
- TopoDS_Shape aLocalShape = aSE.CurrentFace();
- TopoDS_Face CurFace = TopoDS::Face(aLocalShape);
- IntCurvesFace_Intersector& Intersector3d = aSE.Intersector(CurFace);
- Intersector3d.Perform(aLin,-RealLast(),parmin);
-
- if(Intersector3d.IsDone()) {
- if(Intersector3d.NbPnt()) {
- Standard_Integer imin = 1;
- for (Standard_Integer i = 2; i <= Intersector3d.NbPnt(); i++)
- if (Intersector3d.WParameter(i) < Intersector3d.WParameter(imin))
- imin = i;
- parmin = Intersector3d.WParameter(imin);
- aState = Intersector3d.State(imin);
- aTransition = Intersector3d.Transition(imin);
- MinFace = CurFace;
- }
+
+ aParam = 0.1 + 0.8 * aRandomGenerator.Next(); // random number in range [0.1, 0.9]
+ bFound = aSE.FindAPointInTheFace(aF, aPoint, aU, aV, aParam);
+ if (!bFound || !FaceNormal(aF, aU, aV, aDN))
+ continue;
+
+ gp_Lin aLin(aPoint, -aDN);
+ Standard_Real parmin = RealLast();
+ for (aSE.InitShell();aSE.MoreShell();aSE.NextShell()) {
+ if (aSE.RejectShell(aLin) == Standard_False) {
+ for (aSE.InitFace();aSE.MoreFace(); aSE.NextFace()) {
+ if (aSE.RejectFace(aLin) == Standard_False) {
+ TopoDS_Shape aLocalShape = aSE.CurrentFace();
+ TopoDS_Face CurFace = TopoDS::Face(aLocalShape);
+ IntCurvesFace_Intersector& Intersector3d = aSE.Intersector(CurFace);
+ Intersector3d.Perform(aLin,-RealLast(),parmin);
+
+ if(Intersector3d.IsDone()) {
+ if(Intersector3d.NbPnt()) {
+ Standard_Integer imin = 1;
+ for (Standard_Integer i = 2; i <= Intersector3d.NbPnt(); i++)
+ if (Intersector3d.WParameter(i) < Intersector3d.WParameter(imin))
+ imin = i;
+ parmin = Intersector3d.WParameter(imin);
+ aState = Intersector3d.State(imin);
+ aTransition = Intersector3d.Transition(imin);
}
}
}
}
- else
- myState = 1;
- } //end of loop on the whole solid
+ }
+ else
+ myState = 1;
+ } //end of loop on the whole solid
- if (aState == TopAbs_IN)
- {
- if (aTransition == IntCurveSurface_Out) {
- //-- The line is going from inside the solid to outside
- //-- the solid.
- myState = 3; //-- IN --
- return;
- }
- else if (aTransition == IntCurveSurface_In) {
- myState = 4; //-- OUT --
- return;
- }
+ if (aState == TopAbs_IN)
+ {
+ if (aTransition == IntCurveSurface_Out) {
+ //-- The line is going from inside the solid to outside
+ //-- the solid.
+ myState = 3; //-- IN --
+ return;
+ }
+ else if (aTransition == IntCurveSurface_In) {
+ myState = 4; //-- OUT --
+ return;
}
- aF = MinFace;
}
- } //if (aSE.MoreFace())
- } //if (aSE.MoreShell())
+ } // iteration by faces
+ } // iteration by points
}
//=======================================================================
#include <gp_Vec2d.hxx>
#include <gp_XYZ.hxx>
#include <Precision.hxx>
+#include <TColStd_Array1OfReal.hxx>
+#include <math_Function.hxx>
+#include <gp_Lin.hxx>
+#include <gp_Lin2d.hxx>
+//
+class GCPnts_DistFunction : public math_Function
+{
+public:
+ Standard_EXPORT GCPnts_DistFunction(const Adaptor3d_Curve& theCurve,
+ const Standard_Real U1, const Standard_Real U2)
+ : myCurve(theCurve),
+ myU1(U1), myU2(U2)
+ {
+ gp_Pnt P1 = theCurve.Value(U1), P2 = theCurve.Value(U2);
+ myLin = gp_Lin(P1, P2.XYZ() - P1.XYZ());
+ }
+
+ //
+ Standard_EXPORT GCPnts_DistFunction(const GCPnts_DistFunction& theOther);
+
+
+ Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real X,
+ Standard_Real& F)
+ {
+ if (X < myU1 || X > myU2)
+ return Standard_False;
+ //
+ F = -myLin.SquareDistance(myCurve.Value(X));
+ return Standard_True;
+ }
+
+private:
+ GCPnts_DistFunction & operator = (const GCPnts_DistFunction & theOther);
+
+ const Adaptor3d_Curve& myCurve;
+ gp_Lin myLin;
+ Standard_Real myU1;
+ Standard_Real myU2;
+};
+//
+class GCPnts_DistFunction2d : public math_Function
+{
+public:
+ Standard_EXPORT GCPnts_DistFunction2d(const Adaptor2d_Curve2d& theCurve,
+ const Standard_Real U1, const Standard_Real U2)
+ : myCurve(theCurve),
+ myU1(U1), myU2(U2)
+ {
+ gp_Pnt2d P2d1 = theCurve.Value(U1), P2d2 = theCurve.Value(U2);
+ myLin = gp_Lin2d(P2d1, P2d2.XY() - P2d1.XY());
+ }
+ //
+ Standard_EXPORT GCPnts_DistFunction2d(const GCPnts_DistFunction2d& theOther);
+
+ Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real X,
+ Standard_Real& F)
+ {
+ if (X < myU1 || X > myU2)
+ return Standard_False;
+ //
+ gp_Pnt2d aP2d = myCurve.Value(X);
+ F = -myLin.SquareDistance(aP2d);
+ return Standard_True;
+ }
+
+private:
+ GCPnts_DistFunction2d & operator = (const GCPnts_DistFunction2d & theOther);
+ const Adaptor2d_Curve2d& myCurve;
+ gp_Lin2d myLin;
+ Standard_Real myU1;
+ Standard_Real myU2;
+};
+//
inline static void D0 (const Adaptor3d_Curve& C, const Standard_Real U, gp_Pnt& P)
{
C.D0 (U, P);
VV2.SetCoord (X, Y, 0.0);
}
+static Standard_Real EstimAngl(const gp_Pnt& P1, const gp_Pnt& Pm, const gp_Pnt& P2)
+{
+ gp_Vec V1(P1, Pm), V2(Pm, P2);
+ Standard_Real L = V1.Magnitude() * V2.Magnitude();
+ //
+ if(L > gp::Resolution())
+ {
+ return V1.CrossMagnitude(V2)/L;
+ }
+ else
+ {
+ return 0.;
+ }
+}
+// Return number of interval of continuity on which theParam is located.
+// Last parameter is used to increase search speed.
+static Standard_Integer getIntervalIdx(const Standard_Real theParam,
+ TColStd_Array1OfReal& theIntervs,
+ const Standard_Integer thePreviousIdx)
+{
+ Standard_Integer anIdx;
+ for(anIdx = thePreviousIdx; anIdx < theIntervs.Upper(); anIdx++)
+ {
+ if (theParam >= theIntervs(anIdx) &&
+ theParam <= theIntervs(anIdx + 1)) // Inside of anIdx interval.
+ {
+ break;
+ }
+ }
+ return anIdx;
+}
//=======================================================================
//function : CPnts_TangentialDeflection
#define TheCurve Adaptor3d_Curve
#define Handle_TheBezierCurve Handle(Geom_BezierCurve)
#define Handle_TheBSplineCurve Handle(Geom_BSplineCurve)
+#define TheMaxCurvLinDist GCPnts_DistFunction
#include <GCPnts_TangentialDeflection.gxx>
#undef Handle_TheBezierCurve
#undef Handle_TheBSplineCurve
#undef TheCurve
+#undef TheMaxCurvLinDist
+
#include <Geom2d_BezierCurve.hxx>
#define TheCurve Adaptor2d_Curve2d
#define Handle_TheBezierCurve Handle(Geom2d_BezierCurve)
#define Handle_TheBSplineCurve Handle(Geom2d_BSplineCurve)
+#define TheMaxCurvLinDist GCPnts_DistFunction2d
#include <GCPnts_TangentialDeflection.gxx>
#undef Handle_TheBezierCurve
#undef Handle_TheBSplineCurve
#undef TheCurve
+#undef TheMaxCurvLinDist
+
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <gp.hxx>
-
+#include <TColStd_Array1OfReal.hxx>
+#include <math_BrentMinimum.hxx>
+//
#define Us3 0.3333333333333333333333333333
+//=======================================================================
+//function : EstimDefl
+//purpose : Estimation of maximal deflection for interval [U1, U2]
+//
+//=======================================================================
+static void EstimDefl (const TheCurve& C,
+ const Standard_Real U1, const Standard_Real U2,
+ const Standard_Real Tol,
+ Standard_Real& MaxDefl, Standard_Real& UMax)
+{
+ //
+ TheMaxCurvLinDist aFunc(C, U1, U2);
+ //
+ math_BrentMinimum anOptLoc(Tol);
+ anOptLoc.Perform(aFunc, U1, (U1+U2)/2., U2);
+ if(anOptLoc.IsDone())
+ {
+ MaxDefl = Sqrt(-anOptLoc.Minimum());
+ UMax = anOptLoc.Location();
+ return;
+ }
+ //
+ Standard_Real Du = (C.LastParameter() - C.FirstParameter());
+ Standard_Integer aNbInt = Max(16, RealToInt(64 * (U2 - U1) / Du));
+ Standard_Real du = (U2 - U1) / aNbInt;
+ Standard_Real umax = (U1 + U2) / 2.;
+ Standard_Real dmax = 0., d = 0.;
+ aFunc.Value(umax, dmax);
+ //
+ Standard_Real u;
+ for(u = U1 + du; u <= U2 - du; u += du)
+ {
+ aFunc.Value(u, d);
+ if(d < dmax) //d, dmax are negative values
+ {
+ dmax = d;
+ umax = u;
+ }
+ }
+ //
+ //math_BrentMinimum anOptLoc(Tol);
+ anOptLoc.Perform(aFunc, umax - du, umax, umax + du);
+ if(anOptLoc.IsDone())
+ {
+ MaxDefl = Sqrt(-anOptLoc.Minimum());
+ UMax = anOptLoc.Location();
+ }
+ else
+ {
+ MaxDefl = Sqrt(-dmax);
+ UMax = umax;
+ }
+
+}
void GCPnts_TangentialDeflection::EvaluateDu (
const TheCurve& C,
void GCPnts_TangentialDeflection::PerformCurve (const TheCurve& C)
{
- Standard_Integer i;
+ Standard_Integer i, j;
gp_XYZ V1, V2;
gp_Pnt MiddlePoint, CurrentPoint, LastPoint;
Standard_Real Du, Dusave, MiddleU, L1, L2;
parameters.Append (U1);
points .Append (CurrentPoint);
+ // Used to detect "isLine" current bspline and in Du computation in general handling.
+ TheCurve* CPtr = const_cast<TheCurve*>(&C);
+ Standard_Integer NbInterv = CPtr->NbIntervals(GeomAbs_CN);
+ TColStd_Array1OfReal Intervs(1, NbInterv+1);
+ CPtr->Intervals(Intervs, GeomAbs_CN);
+
if (NotDone) {
//C'est soit une droite, soit une singularite :
- V1 = LastPoint.XYZ ();
- V1.Subtract (CurrentPoint.XYZ());
+ V1 = (LastPoint.XYZ() - CurrentPoint.XYZ());
L1 = V1.Modulus ();
- if (L1 > LTol) {
+ if (L1 > LTol)
+ {
//Si c'est une droite on verifie en calculant minNbPoints :
Standard_Boolean IsLine = Standard_True;
- Standard_Integer NbPoints = 3;
- if (minNbPnts > 3) NbPoints = minNbPnts;
- Du = (lastu-firstu)/NbPoints;
- MiddleU = firstu + Du;
- for (i = 2; i < NbPoints; i++) {
- D0 (C, MiddleU, MiddlePoint);
- V2 = MiddlePoint.XYZ();
- V2.Subtract (CurrentPoint.XYZ());
- L2 = V2.Modulus ();
- if (L2 > LTol) {
- if (((V2.CrossMagnitude (V1))/(L1*L2)) >= ATol) {
- //C'etait une singularite
- IsLine = Standard_False;
- break;
- }
- if (minNbPnts > 2) {
- parameters.Append (MiddleU);
- points .Append (MiddlePoint);
+ Standard_Integer NbPoints = (minNbPnts > 3) ? minNbPnts : 3;
+ ////
+ Standard_Real param = 0.;
+ for (i = 1; i <= NbInterv && IsLine; ++i)
+ {
+ // Avoid usage intervals out of [firstu, lastu].
+ if ((Intervs(i+1) < firstu) ||
+ (Intervs(i) > lastu))
+ {
+ continue;
+ }
+ // Fix border points in applicable intervals, to avoid be out of target interval.
+ if ((Intervs(i) < firstu) &&
+ (Intervs(i+1) > firstu))
+ {
+ Intervs(i) = firstu;
+ }
+ if ((Intervs(i) < lastu) &&
+ (Intervs(i+1) > lastu))
+ {
+ Intervs(i + 1) = lastu;
+ }
+
+ Standard_Real delta = (Intervs(i+1) - Intervs(i))/NbPoints;
+ for (j = 1; j <= NbPoints && IsLine; ++j)
+ {
+ param = Intervs(i) + j*delta;
+ D0 (C, param, MiddlePoint);
+ V2 = (MiddlePoint.XYZ() - CurrentPoint.XYZ());
+ L2 = V2.Modulus ();
+ if (L2 > LTol)
+ {
+ const Standard_Real aAngle = V2.CrossMagnitude(V1)/(L1*L2);
+ IsLine = (aAngle < ATol);
}
}
- MiddleU += Du;
}
- if (IsLine) {
- //C'etait une droite (plusieurs poles alignes), Calcul termine :
- parameters.Append (lastu);
- points .Append (LastPoint);
+
+ if (IsLine)
+ {
+ parameters.Clear();
+ points .Clear();
+
+ PerformLinear(C);
return;
}
- else {
+ else
+ {
//c'etait une singularite on continue :
- Standard_Integer pointsLength=points.Length ();
- for (i = 2; i <= pointsLength; i++) {
- points .Remove (i);
- parameters.Remove (i);
- pointsLength--;
- }
- Du = Dusave;
+ //Du = Dusave;
+ EvaluateDu (C, param, MiddlePoint, Du, NotDone);
}
}
- else {
-
+ else
+ {
Du = (lastu-firstu)/2.1;
MiddleU = firstu + Du;
D0 (C, MiddleU, MiddlePoint);
- V1 = MiddlePoint.XYZ ();
- V1.Subtract (CurrentPoint.XYZ());
+ V1 = (MiddlePoint.XYZ() - CurrentPoint.XYZ());
L1 = V1.Modulus ();
- if (L1 < LTol) {
+ if (L1 < LTol)
+ {
// L1 < LTol C'est une courbe de longueur nulle, calcul termine :
// on renvoi un segment de 2 points (protection)
parameters.Append (lastu);
Standard_Boolean MorePoints = Standard_True;
Standard_Real U2 = firstu;
Standard_Real AngleMax = angularDeflection * 0.5; //car on prend le point milieu
-
+ Standard_Integer aIdx[2] = {Intervs.Lower(), Intervs.Lower()}; // Indexes of intervals of U1 and U2, used to handle non-uniform case.
+ Standard_Boolean isNeedToCheck = Standard_False;
gp_Pnt aPrevPoint = points.Last();
+ Standard_Integer MaxNbCorr = 100;
while (MorePoints) {
-
- U2 += Du;
+ aIdx[0] = getIntervalIdx(U1, Intervs, aIdx[0]);
+ U2 += Du;
if (U2 >= lastu) { //Bout de courbe
U2 = lastu;
}
else D0 (C, U2, CurrentPoint); //Point suivant
- Standard_Real Coef, ACoef = 0., FCoef = 0.;
- Standard_Boolean Correction, TooLarge, TooSmall;
+ Standard_Real Coef = 0.0, ACoef = 0., FCoef = 0.;
+ Standard_Boolean Correction, TooLarge;
TooLarge = Standard_False;
- TooSmall = Standard_False;
Correction = Standard_True;
-
- while (Correction) { //Ajustement Du
+ Standard_Integer nbcorr = 0;
+
+ while (Correction && (++nbcorr <= MaxNbCorr)) { //Ajustement Du
+ if (isNeedToCheck)
+ {
+ aIdx[1] = getIntervalIdx(U2, Intervs, aIdx[0]);
+ if (aIdx[1] > aIdx[0]) // Jump to another polynom.
+ {
+ if (Du > (Intervs(aIdx[0] + 1) - Intervs(aIdx[0]) ) * Us3) // Set Du to the smallest value and check deflection on it.
+ {
+ Du = (Intervs(aIdx[0] + 1) - Intervs(aIdx[0]) ) * Us3;
+ U2 = U1 + Du;
+ if (U2 > lastu)
+ U2 = lastu;
+ D0 (C, U2, CurrentPoint);
+ }
+ }
+ }
MiddleU = (U1+U2)*0.5; //Verif / au point milieu
D0 (C, MiddleU, MiddlePoint);
- V1 = CurrentPoint.XYZ (); //Critere de fleche
- V1.Subtract (aPrevPoint.XYZ());
- V2 = MiddlePoint.XYZ ();
- V2.Subtract (aPrevPoint.XYZ());
+ V1 = (CurrentPoint.XYZ() - aPrevPoint.XYZ()); //Critere de fleche
+ V2 = (MiddlePoint.XYZ() - aPrevPoint.XYZ());
L1 = V1.Modulus ();
- if (L1 > LTol) FCoef = V1.CrossMagnitude(V2)/(L1*curvatureDeflection);
- else FCoef = 0.0;
- V1 = CurrentPoint.XYZ (); //Critere d'angle
- V1.Subtract (MiddlePoint.XYZ ());
+ FCoef = (L1 > LTol) ?
+ V1.CrossMagnitude(V2)/(L1*curvatureDeflection) : 0.0;
+
+ V1 = (CurrentPoint.XYZ() - MiddlePoint.XYZ()); //Critere d'angle
L1 = V1.Modulus ();
L2 = V2.Modulus ();
- Standard_Real angg = V1.CrossMagnitude(V2)/(L1*L2);
- if (L1 > LTol && L2 > LTol) ACoef = angg/AngleMax;
- else ACoef = 0.0;
+ if (L1 > LTol && L2 > LTol)
+ {
+ Standard_Real angg = V1.CrossMagnitude(V2) / (L1 * L2);
+ ACoef = angg / AngleMax;
+ }
+ else
+ ACoef = 0.0;
- if (ACoef >= FCoef) Coef = ACoef; //On retient le plus penalisant
- else Coef = FCoef;
+ //On retient le plus penalisant
+ Coef = Max(ACoef, FCoef);
+ if (isNeedToCheck && Coef < 0.55)
+ {
+ isNeedToCheck = Standard_False;
+ Du = Dusave;
+ U2 = U1 + Du;
+ if (U2 > lastu)
+ U2 = lastu;
+ D0 (C, U2, CurrentPoint);
+ continue;
+ }
if (Coef <= 1.0) {
if (Abs (lastu-U2) < uTol) {
Correction = Standard_False;
}
else {
- if (Coef >= 0.55 || TooLarge) {
+ if (Coef >= 0.55 || TooLarge || nbcorr == MaxNbCorr) {
parameters.Append (U2);
points .Append (CurrentPoint);
aPrevPoint = CurrentPoint;
Correction = Standard_False;
- }
- else if (TooSmall) {
- Correction = Standard_False;
- aPrevPoint = CurrentPoint;
+ isNeedToCheck = Standard_True;
}
else {
- TooSmall = Standard_True;
//Standard_Real UUU2 = U2;
Du += Min((U2-U1)*(1.-Coef), Du*Us3);
U2 = U1 + Du;
- //if (U2 >= lastu) U2 = UUU2;
- if (U2 >= lastu) {
- parameters.Append (lastu);
- points .Append (LastPoint);
- MorePoints = Standard_False;
- Correction = Standard_False;
- }
- else D0 (C, U2, CurrentPoint);
+ if (U2 > lastu)
+ U2 = lastu;
+ D0 (C, U2, CurrentPoint);
}
}
}
else {
if (Coef >= 1.5) {
- U2 = MiddleU;
+ if (!aPrevPoint.IsEqual(points.Last(), Precision::Confusion()))
+ {
+ parameters.Append (U1);
+ points .Append (aPrevPoint);
+ }
+ U2 = 0.9*MiddleU + 0.1*U2;
Du = U2-U1;
- CurrentPoint = MiddlePoint;
+ D0 (C, U2, CurrentPoint);
}
else {
Du*=0.9;
// points.Remove (i+1);
// i--;
// }
-
if (i >= 2) {
MiddleU = parameters (i-1);
MiddleU = (lastu + MiddleU)*0.5;
i++;
}
}
+ //Additional check for intervals
+ Standard_Real LTol2 = LTol * LTol;
+ Standard_Integer MaxNbp = 10 * Nbp;
+ for(i = 1; i < Nbp; ++i)
+ {
+ U1 = parameters(i);
+ U2 = parameters(i + 1);
+ // Check maximal deflection on interval;
+ Standard_Real dmax = 0.;
+ Standard_Real umax = 0.;
+ Standard_Real amax = 0.;
+ EstimDefl(C, U1, U2, uTol, dmax, umax);
+ const gp_Pnt& P1 = points(i);
+ const gp_Pnt& P2 = points(i+1);
+ D0(C, umax, MiddlePoint);
+ amax = EstimAngl(P1, MiddlePoint, P2);
+ if(dmax > curvatureDeflection || amax > AngleMax)
+ {
+ if(umax - U1 > uTol && U2 - umax > uTol)
+ {
+ if (P1.SquareDistance(MiddlePoint) > LTol2 && P2.SquareDistance(MiddlePoint) > LTol2)
+ {
+ parameters.InsertAfter(i, umax);
+ points.InsertAfter(i, MiddlePoint);
+ ++Nbp;
+ --i; //To compensate ++i in loop header: i must point to first part of splitted interval
+ if(Nbp > MaxNbp)
+ {
+ break;
+ }
+ }
+ }
+ }
+ }
+ //
}
//check deviation
ComputeDeviation(C,aPnts,dmax,ufmax,ulmax,imax);
- di << "Max defl: " << dmax << " " << ufmax << " " << ulmax << " " << i << "\n";
+ di << "Max defl: " << dmax << " " << ufmax << " " << ulmax << " " << imax << "\n";
return 0;
}
//check deviation
ComputeDeviation(C,aPnts,dmax,ufmax,ulmax,imax);
- di << "Max defl: " << dmax << " " << ufmax << " " << ulmax << " " << i << "\n";
+ di << "Max defl: " << dmax << " " << ufmax << " " << ulmax << " " << imax << "\n";
return 0;
}
#define OPTIMISATION 1
-
#include <IntCurvesFace_Intersector.ixx>
-
-#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
+#include <Adaptor3d_HCurve.hxx>
+#include <Adaptor3d_HSurfaceTool.hxx>
#include <Bnd_BoundSortBox.hxx>
-
-#include <IntCurveSurface_IntersectionPoint.hxx>
-#include <gp_Lin.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopAbs.hxx>
-
-
-#include <IntCurveSurface_HInter.hxx>
+#include <Bnd_Box.hxx>
#include <BRepAdaptor_HSurface.hxx>
-#include <Geom_Line.hxx>
-#include <gp_Pnt2d.hxx>
#include <BRepClass_FaceClassifier.hxx>
-
+#include <BRepTopAdaptor_TopolTool.hxx>
+#include <Geom_Line.hxx>
#include <GeomAdaptor_Curve.hxx>
-
#include <GeomAdaptor_HCurve.hxx>
-#include <BRepAdaptor_HSurface.hxx>
-
-
-
-#include <Adaptor3d_HSurfaceTool.hxx>
+#include <gp_Lin.hxx>
+#include <gp_Pnt.hxx>
+#include <gp_Pnt2d.hxx>
+#include <IntCurvesFace_Intersector.hxx>
+#include <IntCurveSurface_HInter.hxx>
+#include <IntCurveSurface_IntersectionPoint.hxx>
+#include <IntCurveSurface_SequenceOfPnt.hxx>
#include <IntCurveSurface_TheHCurveTool.hxx>
-#include <Adaptor3d_HCurve.hxx>
-#include <Bnd_Box.hxx>
-#include <Intf_Tool.hxx>
-#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
-#include <IntCurveSurface_SequenceOfPnt.hxx>
-
-
-
+#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
+#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
+#include <Intf_Tool.hxx>
+#include <TopAbs.hxx>
+#include <TopoDS_Face.hxx>
+#include <BRep_Tool.hxx>
+#include <TopoDS.hxx>
+#include <Geom2dAPI_ProjectPointOnCurve.hxx>
//=======================================================================
//function : SurfaceType
//purpose :
//purpose :
//=======================================================================
IntCurvesFace_Intersector::IntCurvesFace_Intersector(const TopoDS_Face& Face,
- const Standard_Real aTol)
+ const Standard_Real aTol)
:
Tol(aTol),
done(Standard_False),
PtrOnBndBounding(NULL)
{
BRepAdaptor_Surface surface;
+ const Standard_Boolean aRestr = Standard_True;
face = Face;
- surface.Initialize(Face,Standard_True);
+ surface.Initialize(Face, aRestr);
Hsurface = new BRepAdaptor_HSurface(surface);
myTopolTool = new BRepTopAdaptor_TopolTool(Hsurface);
U1 = Hsurface->LastUParameter();
V0 = Hsurface->FirstVParameter();
V1 = Hsurface->LastVParameter();
- //modified by NIZNHY-PKV Fri Apr 06 07:30:47 2012f
- Standard_Boolean bFlag;
- //
+
+ Standard_Real aURes = Hsurface->UResolution(1.0);
+ Standard_Real aVRes = Hsurface->VResolution(1.0);
+
+ // Checking correlation between number of samples and length of the face along each axis
+ const Standard_Real aTresh = 100.0;
+ const Standard_Integer aMinSamples = 10;
+ const Standard_Integer aMaxSamples = 40;
+ const Standard_Integer aMaxSamples2 = aMaxSamples * aMaxSamples;
+ Standard_Real dU = (U1 - U0) / aURes;
+ Standard_Real dV = (V1 - V0) / aVRes;
+ nbsu = myTopolTool->NbSamplesU();
+ nbsv = myTopolTool->NbSamplesV();
+ if (nbsu > aMaxSamples) nbsu = aMaxSamples;
+ if (nbsv > aMaxSamples) nbsv = aMaxSamples;
+
+ if (Max(dU, dV) > Min(dU, dV) * aTresh)
{
- Standard_Real dU, dV, dA, dB, aTresh;
- bFlag=Standard_True;
- //
- aTresh=100.;
- dU=U1-U0;
- dV=V1-V0;
- dA=dU;
- dB=dV;
- if (dV>dU) {
- dA=dV;
- dB=dU;
+ nbsu = (Standard_Integer)(Sqrt(dU / dV) * aMaxSamples);
+ if (nbsu < aMinSamples) nbsu = aMinSamples;
+ nbsv = aMaxSamples2 / nbsu;
+ if (nbsv < aMinSamples)
+ {
+ nbsv = aMinSamples;
+ nbsu = aMaxSamples2 / aMinSamples;
}
- //
- if (dB < Precision::PConfusion() || dA > dB * aTresh) {
- bFlag=!bFlag;
- }
- }
- //
- if (bFlag) {
- nbsu = myTopolTool->NbSamplesU();
- nbsv = myTopolTool->NbSamplesV();
- if(nbsu>40) nbsu = 40;
- if(nbsv>40) nbsv = 40;
- PtrOnPolyhedron = (IntCurveSurface_ThePolyhedronOfHInter *)
- new IntCurveSurface_ThePolyhedronOfHInter(Hsurface,nbsu,nbsv,U0,V0,U1,V1);
}
- //
- /*
- nbsu = myTopolTool->NbSamplesU();
- nbsv = myTopolTool->NbSamplesV();
- if(nbsu>40) nbsu = 40;
- if(nbsv>40) nbsv = 40;
- PtrOnPolyhedron = (IntCurveSurface_ThePolyhedronOfHInter *)
- new IntCurveSurface_ThePolyhedronOfHInter(Hsurface,nbsu,nbsv,U0,V0,U1,V1);
- */
-
- //modified by NIZNHY-PKV Fri Apr 06 07:30:49 2012t
+ PtrOnPolyhedron = (IntCurveSurface_ThePolyhedronOfHInter *)
+ new IntCurveSurface_ThePolyhedronOfHInter(Hsurface,nbsu,nbsv,U0,V0,U1,V1);
}
}
//=======================================================================
const Standard_Real parinf,
const Standard_Real parsup)
{
- if(HICS.IsDone()) {
+ if(HICS.IsDone() && HICS.NbPoints() > 0) {
+ //Calculate tolerance for 2d classifier
+ Standard_Real mintol3d = BRep_Tool::Tolerance(face);
+ Standard_Real maxtol3d = mintol3d;
+ Standard_Real mintol2d = Tol, maxtol2d = Tol;
+ TopExp_Explorer anExp(face, TopAbs_EDGE);
+ for(; anExp.More(); anExp.Next())
+ {
+ Standard_Real curtol = BRep_Tool::Tolerance(TopoDS::Edge(anExp.Current()));
+ mintol3d = Min(mintol3d, curtol);
+ maxtol3d = Max(maxtol3d, curtol);
+ }
+ Standard_Real minres = Max(Hsurface->UResolution(mintol3d), Hsurface->VResolution(mintol3d));
+ Standard_Real maxres = Max(Hsurface->UResolution(maxtol3d), Hsurface->VResolution(maxtol3d));
+ mintol2d = Max(minres, Tol);
+ maxtol2d = Max(maxres, Tol);
+ //
+ Handle(BRepTopAdaptor_TopolTool) anAdditionalTool;
for(Standard_Integer index=HICS.NbPoints(); index>=1; index--) {
const IntCurveSurface_IntersectionPoint& HICSPointindex = HICS.Point(index);
gp_Pnt2d Puv(HICSPointindex.U(),HICSPointindex.V());
-
- TopAbs_State currentstate = myTopolTool->Classify(Puv,Tol);
+
+ //TopAbs_State currentstate = myTopolTool->Classify(Puv,Tol);
+ TopAbs_State currentstate = myTopolTool->Classify(Puv, mintol2d);
+ if(currentstate == TopAbs_OUT && maxtol2d > mintol2d) {
+ if(anAdditionalTool.IsNull())
+ {
+ anAdditionalTool = new BRepTopAdaptor_TopolTool(Hsurface);
+ }
+ currentstate = anAdditionalTool->Classify(Puv,maxtol2d);
+ if(currentstate == TopAbs_ON)
+ {
+ //Find out nearest edge and it's tolerance
+ anExp.Init(face, TopAbs_EDGE);
+ Standard_Real mindist = RealLast();
+ mintol2d = -1.;
+ for(; anExp.More(); anExp.Next())
+ {
+ TopoDS_Edge anE = TopoDS::Edge(anExp.Current());
+ Standard_Real curtol = BRep_Tool::Tolerance(anE);
+ Standard_Real tol2d = Max(Hsurface->UResolution(curtol), Hsurface->VResolution(curtol));
+ tol2d = Max(tol2d, Tol);
+ Standard_Real f, l;
+ Handle(Geom2d_Curve) aPC = BRep_Tool::CurveOnSurface(anE, face, f, l);
+ Geom2dAPI_ProjectPointOnCurve aProj(Puv, aPC, f, l);
+ if(aProj.NbPoints() > 0)
+ {
+ Standard_Real d = aProj.LowerDistance();
+ if(d <= tol2d)
+ {
+ //Nearest edge is found, state is really ON
+ break;
+ }
+ if(d < mindist && d <= maxtol2d)
+ {
+ mindist = d;
+ mintol2d = tol2d;
+ }
+ }
+ }
+ if(mintol2d > 0. && mindist > mintol2d)
+ {
+ currentstate = TopAbs_OUT;
+ }
+ }
+ }
if(currentstate==TopAbs_IN || currentstate==TopAbs_ON) {
- Standard_Real HICSW = HICSPointindex.W();
- if(HICSW >= parinf && HICSW <= parsup ) {
- Standard_Real U = HICSPointindex.U();
- Standard_Real V = HICSPointindex.V();
- Standard_Real W = HICSW;
- IntCurveSurface_TransitionOnCurve transition = HICSPointindex.Transition();
- gp_Pnt pnt = HICSPointindex.Pnt();
- // state = currentstate;
- // Modified by skv - Wed Sep 3 16:14:10 2003 OCC578 Begin
- Standard_Integer anIntState = (currentstate == TopAbs_IN) ? 0 : 1;
- // Modified by skv - Wed Sep 3 16:14:11 2003 OCC578 End
+ Standard_Real HICSW = HICSPointindex.W();
+ if(HICSW >= parinf && HICSW <= parsup ) {
+ Standard_Real U = HICSPointindex.U();
+ Standard_Real V = HICSPointindex.V();
+ Standard_Real W = HICSW;
+ IntCurveSurface_TransitionOnCurve transition = HICSPointindex.Transition();
+ gp_Pnt pnt = HICSPointindex.Pnt();
+ // state = currentstate;
+ // Modified by skv - Wed Sep 3 16:14:10 2003 OCC578 Begin
+ Standard_Integer anIntState = (currentstate == TopAbs_IN) ? 0 : 1;
+ // Modified by skv - Wed Sep 3 16:14:11 2003 OCC578 End
+
+ if(transition != IntCurveSurface_Tangent && face.Orientation()==TopAbs_REVERSED) {
+ if(transition == IntCurveSurface_In)
+ transition = IntCurveSurface_Out;
+ else
+ transition = IntCurveSurface_In;
+ }
+ //----- Insertion du point
+ if(nbpnt==0) {
+ IntCurveSurface_IntersectionPoint PPP(pnt,U,V,W,transition);
+ SeqPnt.Append(PPP);
+ // Modified by skv - Wed Sep 3 16:14:10 2003 OCC578 Begin
+ mySeqState.Append(anIntState);
+ // Modified by skv - Wed Sep 3 16:14:11 2003 OCC578 End
+ }
+ else {
+ Standard_Integer i = 1;
+ Standard_Integer b = nbpnt+1;
+ while(i<=nbpnt) {
+ const IntCurveSurface_IntersectionPoint& Pnti=SeqPnt.Value(i);
+ Standard_Real wi = Pnti.W();
+ if(wi >= W) { b=i; i=nbpnt; }
+ i++;
+ }
+ IntCurveSurface_IntersectionPoint PPP(pnt,U,V,W,transition);
+ // Modified by skv - Wed Sep 3 16:14:10 2003 OCC578 Begin
+ // if(b>nbpnt) { SeqPnt.Append(PPP); }
+ // else if(b>0) { SeqPnt.InsertBefore(b,PPP); }
+ if(b>nbpnt) {
+ SeqPnt.Append(PPP);
+ mySeqState.Append(anIntState);
+ } else if(b>0) {
+ SeqPnt.InsertBefore(b,PPP);
+ mySeqState.InsertBefore(b, anIntState);
+ }
+ // Modified by skv - Wed Sep 3 16:14:11 2003 OCC578 End
+ }
- if(transition != IntCurveSurface_Tangent && face.Orientation()==TopAbs_REVERSED) {
- if(transition == IntCurveSurface_In)
- transition = IntCurveSurface_Out;
- else
- transition = IntCurveSurface_In;
- }
- //----- Insertion du point
- if(nbpnt==0) {
- IntCurveSurface_IntersectionPoint PPP(pnt,U,V,W,transition);
- SeqPnt.Append(PPP);
- // Modified by skv - Wed Sep 3 16:14:10 2003 OCC578 Begin
- mySeqState.Append(anIntState);
- // Modified by skv - Wed Sep 3 16:14:11 2003 OCC578 End
- }
- else {
- Standard_Integer i = 1;
- Standard_Integer b = nbpnt+1;
- while(i<=nbpnt) {
- const IntCurveSurface_IntersectionPoint& Pnti=SeqPnt.Value(i);
- Standard_Real wi = Pnti.W();
- if(wi >= W) { b=i; i=nbpnt; }
- i++;
- }
- IntCurveSurface_IntersectionPoint PPP(pnt,U,V,W,transition);
- // Modified by skv - Wed Sep 3 16:14:10 2003 OCC578 Begin
-// if(b>nbpnt) { SeqPnt.Append(PPP); }
-// else if(b>0) { SeqPnt.InsertBefore(b,PPP); }
- if(b>nbpnt) {
- SeqPnt.Append(PPP);
- mySeqState.Append(anIntState);
- } else if(b>0) {
- SeqPnt.InsertBefore(b,PPP);
- mySeqState.InsertBefore(b, anIntState);
- }
- // Modified by skv - Wed Sep 3 16:14:11 2003 OCC578 End
- }
-
- nbpnt++;
- }
+ nbpnt++;
+ }
} //-- classifier state is IN or ON
} //-- Loop on Intersection points.
} //-- HICS.IsDone()
---Purpose:
-- Computes Line/Line intersection.
+ FindSolutions(me:out;
+ theRanges1 : out SequenceOfRanges from IntTools;
+ theRanges2 : out SequenceOfRanges from IntTools;
+ bSplit2 : out Boolean from Standard)
+ is protected;
+ ---Purpose:
+ -- Intermediate function
+
FindSolutions(me:out;
theR1, theR2 : Range from IntTools;
+ theBox2 : Box from Bnd;
theRanges1 : out SequenceOfRanges from IntTools;
theRanges2 : out SequenceOfRanges from IntTools)
- is protected;
+ is protected;
---Purpose:
-- Looking for the exact intersection ranges
MergeSolutions(me:out;
- theRanges1, theRanges2 : SequenceOfRanges from IntTools)
+ theRanges1 : SequenceOfRanges from IntTools;
+ theRanges2 : SequenceOfRanges from IntTools;
+ bSplit2 : Boolean from Standard)
is protected;
---Purpose:
-- Merges found solutions
FindParameters(myclass;
- theBAC : Curve from BRepAdaptor;
- aT1,aT2 : Real from Standard;
- theRes : Real from Standard;
- thePTol : Real from Standard;
- theCBox : Box from Bnd;
- aTB1,aTB2 : out Real from Standard)
+ theBAC : Curve from BRepAdaptor;
+ aT1, aT2 : Real from Standard;
+ theRes : Real from Standard;
+ thePTol : Real from Standard;
+ theResCoeff : Real from Standard;
+ theCBox : Box from Bnd;
+ aTB1, aTB2 : out Real from Standard)
returns Boolean from Standard
is protected;
---Purpose:
myTol : Real from Standard is protected;
myRes1 : Real from Standard is protected;
- myRes2 : Real from Standard is protected;
+ myRes2 : Real from Standard is protected;
+
+ myResCoeff1 : Real from Standard is protected;
+ myResCoeff2 : Real from Standard is protected;
myPTol1 : Real from Standard is protected;
myPTol2 : Real from Standard is protected;
#include <Bnd_Box.hxx>
#include <BndLib_Add3dCurve.hxx>
+#include <Geom_Circle.hxx>
+#include <Geom_Ellipse.hxx>
+#include <Geom_BezierCurve.hxx>
+#include <Geom_BSplineCurve.hxx>
+
#include <GeomAPI_ProjectPointOnCurve.hxx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Curve.hxx>
-#include <IntTools_Tools.hxx>
#include <IntTools_CommonPrt.hxx>
+#include <BOPCol_MapOfInteger.hxx>
static
void BndBuildBox(const BRepAdaptor_Curve& theBAC,
Standard_Real PointBoxDistance(const Bnd_Box& aB,
const gp_Pnt& aP);
static
- void SplitRangeOnSegments(const Standard_Real aT1,
- const Standard_Real aT2,
- const Standard_Real theResolution,
- const Standard_Integer theNbSeg,
- IntTools_SequenceOfRanges& theSegments);
+ Standard_Integer SplitRangeOnSegments(const Standard_Real aT1,
+ const Standard_Real aT2,
+ const Standard_Real theResolution,
+ const Standard_Integer theNbSeg,
+ IntTools_SequenceOfRanges& theSegments);
static
Standard_Integer DistPC(const Standard_Real aT1,
const Handle(Geom_Curve)& theC1,
Standard_Real& aT1max,
Standard_Real& aT2max,
const Standard_Boolean bMaxDist = Standard_True);
+static
+ Standard_Real ResolutionCoeff(const BRepAdaptor_Curve& theBAC,
+ const IntTools_Range& theRange);
+static
+ Standard_Real Resolution(const Handle(Geom_Curve)& theCurve,
+ const GeomAbs_CurveType theCurveType,
+ const Standard_Real theResCoeff,
+ const Standard_Real theR3D);
+static
+ Standard_Real CurveDeflection(const BRepAdaptor_Curve& theBAC,
+ const IntTools_Range& theRange);
+static
+ Standard_Integer IsClosed(const Handle(Geom_Curve)& theCurve,
+ const Standard_Real aT1,
+ const Standard_Real aT2,
+ const Standard_Real theTol,
+ const Standard_Real theRes);
static
Standard_Integer TypeToInteger(const GeomAbs_CurveType theCType);
if (iCT1 == iCT2) {
if (iCT1 != 0) {
//compute deflection
- Standard_Integer i;
- Standard_Real aDt, aT, aT1, aT2;
- gp_Vec aV1, aV2;
- gp_Pnt aP;
+ Standard_Real aC1, aC2;
//
- Standard_Real aC1(10.), aC2(10.);
- for (i = 0; i < 2; ++i) {
- Standard_Real &aC = !i ? aC2 : aC1;
- aC = 0;
- IntTools_Range aR = !i ? myRange2 : myRange1;
- const BRepAdaptor_Curve& aBAC = !i ? myCurve2 : myCurve1;
- aR.Range(aT1, aT2);
- aDt = (aT2 - aT1) / 10.;
- aT = aT1;
- aBAC.D1(aT, aP, aV1);
- while (aT < aT2) {
- aT += aDt;
- aBAC.D1(aT, aP, aV2);
- if (aV1.Magnitude() > gp::Resolution() &&
- aV2.Magnitude() > gp::Resolution()) {
- gp_Dir aD1(aV1), aD2(aV2);
- aC += aD1.Angle(aD2);
- }
- aV1 = aV2;
- }
- //
- if (aC < Precision::Confusion()) {
- break;
- }
- }
+ aC2 = CurveDeflection(myCurve2, myRange2);
+ aC1 = (aC2 > Precision::Confusion()) ?
+ CurveDeflection(myCurve1, myRange1) : 1.;
//
if (aC1 < aC2) {
--iCT1;
myTol2 = myCurve2.Tolerance();
myTol = myTol1 + myTol2;
//
- myRes1 = myCurve1.Resolution(myTol);
- myRes2 = myCurve2.Resolution(myTol);
- //
if (iCT1 != 0 || iCT2 != 0) {
Standard_Real f, l, aTM;
//
myGeom1 = BRep_Tool::Curve(myEdge1, f, l);
myGeom2 = BRep_Tool::Curve(myEdge2, f, l);
//
+ myResCoeff1 = ResolutionCoeff(myCurve1, myRange1);
+ myResCoeff2 = ResolutionCoeff(myCurve2, myRange2);
+ //
+ myRes1 = Resolution(myCurve1.Curve().Curve(), myCurve1.GetType(), myResCoeff1, myTol1);
+ myRes2 = Resolution(myCurve2.Curve().Curve(), myCurve2.GetType(), myResCoeff2, myTol2);
+ //
myPTol1 = 5.e-13;
aTM = Max(fabs(myRange1.First()), fabs(myRange1.Last()));
if (aTM > 999.) {
IntTools_SequenceOfRanges aRanges1, aRanges2;
//
//3.2. Find ranges containig solutions
- FindSolutions(myRange1, myRange2, aRanges1, aRanges2);
+ Standard_Boolean bSplit2;
+ FindSolutions(aRanges1, aRanges2, bSplit2);
//
//4. Merge solutions and save common parts
- MergeSolutions(aRanges1, aRanges2);
+ MergeSolutions(aRanges1, aRanges2, bSplit2);
+}
+
+//=======================================================================
+//function : FindSolutions
+//purpose :
+//=======================================================================
+void IntTools_EdgeEdge::FindSolutions(IntTools_SequenceOfRanges& theRanges1,
+ IntTools_SequenceOfRanges& theRanges2,
+ Standard_Boolean& bSplit2)
+{
+ Standard_Boolean bIsClosed2;
+ Standard_Real aT11, aT12, aT21, aT22;
+ Bnd_Box aB2;
+ //
+ bSplit2 = Standard_False;
+ myRange1.Range(aT11, aT12);
+ myRange2.Range(aT21, aT22);
+ //
+ bIsClosed2 = IsClosed(myGeom2, aT21, aT22, myTol2, myRes2);
+ //
+ if (bIsClosed2) {
+ Bnd_Box aB1;
+ BndBuildBox(myCurve1, aT11, aT12, myTol1, aB1);
+ //
+ gp_Pnt aP = myGeom2->Value(aT21);
+ bIsClosed2 = !aB1.IsOut(aP);
+ }
+ //
+ if (!bIsClosed2) {
+ BndBuildBox(myCurve2, aT21, aT22, myTol2, aB2);
+ FindSolutions(myRange1, myRange2, aB2, theRanges1, theRanges2);
+ return;
+ }
+ //
+ if (!CheckCoincidence(aT11, aT12, aT21, aT22, myTol, myRes1)) {
+ theRanges1.Append(myRange1);
+ theRanges2.Append(myRange2);
+ return;
+ }
+ //
+ Standard_Integer i, j, aNb1, aNb2;
+ IntTools_SequenceOfRanges aSegments1, aSegments2;
+ //
+ aNb1 = IsClosed(myGeom1, aT11, aT12, myTol1, myRes1) ? 2 : 1;
+ aNb2 = 2;
+ //
+ aNb1 = SplitRangeOnSegments(aT11, aT12, myRes1, aNb1, aSegments1);
+ aNb2 = SplitRangeOnSegments(aT21, aT22, myRes2, aNb2, aSegments2);
+ //
+ for (i = 1; i <= aNb1; ++i) {
+ const IntTools_Range& aR1 = aSegments1(i);
+ for (j = 1; j <= aNb2; ++j) {
+ const IntTools_Range& aR2 = aSegments2(j);
+ BndBuildBox(myCurve2, aR2.First(), aR2.Last(), myTol2, aB2);
+ FindSolutions(aR1, aR2, aB2, theRanges1, theRanges2);
+ }
+ }
+ //
+ bSplit2 = aNb2 > 1;
}
//=======================================================================
//=======================================================================
void IntTools_EdgeEdge::FindSolutions(const IntTools_Range& theR1,
const IntTools_Range& theR2,
- IntTools_SequenceOfRanges& theRanges1,
+ const Bnd_Box& theBox2,
+ IntTools_SequenceOfRanges& theRanges1,
IntTools_SequenceOfRanges& theRanges2)
{
Standard_Boolean bOut, bStop, bThin;
Standard_Real aT11, aT12, aT21, aT22;
Standard_Real aTB11, aTB12, aTB21, aTB22;
- Standard_Real aTol, aSmallStep1, aSmallStep2;
+ Standard_Real aSmallStep1, aSmallStep2;
Standard_Integer iCom;
Bnd_Box aB1, aB2;
//
theR1.Range(aT11, aT12);
theR2.Range(aT21, aT22);
//
- BndBuildBox(myCurve1, aT11, aT12, myTol1, aB1);
- BndBuildBox(myCurve2, aT21, aT22, myTol2, aB2);
- if (aB1.IsOut(aB2)) {
- //no intersection;
- return;
- }
+ aB2 = theBox2;
//
- bOut = Standard_False;
bThin = Standard_False;
bStop = Standard_False;
- aTol = 2*myTol;
iCom = 1;
//
do {
- bOut = !FindParameters(myCurve2, aT21, aT22, myRes2, myPTol2, aB1, aTB21, aTB22);
+ aTB11 = aT11;
+ aTB12 = aT12;
+ aTB21 = aT21;
+ aTB22 = aT22;
+ //
+ //1. Build box for first edge and find parameters
+ // of the second one in that box
+ BndBuildBox(myCurve1, aT11, aT12, myTol1, aB1);
+ bOut = aB1.IsOut(aB2);
if (bOut) {
break;
}
//
- bThin = (aTB22 - aTB21) < myRes2;
- if (bThin) {
- bOut = !FindParameters(myCurve1, aT11, aT12, myRes1, myPTol1, aB1, aTB11, aTB12);
+ bThin = ((aT12 - aT11) < myRes1) ||
+ (aB1.IsXThin(myTol) && aB1.IsYThin(myTol) && aB1.IsZThin(myTol));
+ //
+ bOut = !FindParameters(myCurve2, aTB21, aTB22, myRes2, myPTol2,
+ myResCoeff2, aB1, aT21, aT22);
+ if (bOut || bThin) {
break;
}
//
- BndBuildBox(myCurve2, aTB21, aTB22, myTol2, aB2);
- //
- bOut = !FindParameters(myCurve1, aT11, aT12, myRes1, myPTol1, aB2, aTB11, aTB12);
+ //2. Build box for second edge and find parameters
+ // of the first one in that box
+ BndBuildBox(myCurve2, aT21, aT22, myTol2, aB2);
+ bOut = aB1.IsOut(aB2);
if (bOut) {
break;
}
//
- bThin = ((aTB12 - aTB11) < myRes1) ||
- (aB2.IsXThin(aTol) && aB2.IsYThin(aTol) && aB2.IsZThin(aTol));
+ bThin = ((aT22 - aT21) < myRes2) ||
+ (aB2.IsXThin(myTol) && aB2.IsYThin(myTol) && aB2.IsZThin(myTol));
//
- if (!bThin) {
- aSmallStep1 = (aT12 - aT11) / 250.;
- aSmallStep2 = (aT22 - aT21) / 250.;
- //
- if (aSmallStep1 < myRes1) {
- aSmallStep1 = myRes1;
- }
- if (aSmallStep2 < myRes2) {
- aSmallStep2 = myRes2;
- }
- //
- if (((aTB11 - aT11) < aSmallStep1) && ((aT12 - aTB12) < aSmallStep1) &&
- ((aTB21 - aT21) < aSmallStep2) && ((aT22 - aTB22) < aSmallStep2)) {
- bStop = Standard_True;
- } else {
- BndBuildBox(myCurve1, aTB11, aTB12, myTol1, aB1);
- bOut = aB1.IsOut(aB2);
- if (bOut) {
- break;
- }
- }
+ bOut = !FindParameters(myCurve1, aTB11, aTB12, myRes1, myPTol1,
+ myResCoeff1, aB2, aT11, aT12);
+ //
+ if (bOut || bThin) {
+ break;
+ }
+ //
+ //3. Check if it makes sense to continue
+ aSmallStep1 = (aTB12 - aTB11) / 250.;
+ aSmallStep2 = (aTB22 - aTB21) / 250.;
+ //
+ if (aSmallStep1 < myRes1) {
+ aSmallStep1 = myRes1;
+ }
+ if (aSmallStep2 < myRes2) {
+ aSmallStep2 = myRes2;
+ }
+ //
+ if (((aT11 - aTB11) < aSmallStep1) && ((aTB12 - aT12) < aSmallStep1) &&
+ ((aT21 - aTB21) < aSmallStep2) && ((aTB22 - aT22) < aSmallStep2)) {
+ bStop = Standard_True;
}
//
- aT11 = aTB11;
- aT12 = aTB12;
- aT21 = aTB21;
- aT22 = aTB22;
- } while (!bThin && !bStop);
+ } while (!bStop);
//
if (bOut) {
//no intersection;
iCom = CheckCoincidence(aT11, aT12, aT21, aT22, myTol, myRes1);
if (!iCom) {
bThin = Standard_True;
- }
+ }
}
//
if (bThin) {
if (iCom != 0) {
//check intermediate points
- Standard_Real aT1, aT2, aDist;
- gp_Pnt aP1, aP2;
- //
- aT1 = IntTools_Tools::IntermediatePoint(aT11, aT12);
- aT2 = IntTools_Tools::IntermediatePoint(aT21, aT22);
+ Standard_Boolean bSol;
+ Standard_Real aT1;
+ gp_Pnt aP1;
+ GeomAPI_ProjectPointOnCurve aProjPC;
//
+ aT1 = (aT11 + aT12) * .5;
myGeom1->D0(aT1, aP1);
- myGeom2->D0(aT2, aP2);
//
- aDist = aP1.Distance(aP2);
- if (aDist > myTol) {
+ aProjPC.Init(myGeom2, aT21, aT22);
+ aProjPC.Perform(aP1);
+ //
+ if (aProjPC.NbPoints()) {
+ bSol = aProjPC.LowerDistance() <= myTol;
+ }
+ else {
+ Standard_Real aT2;
+ gp_Pnt aP2;
+ //
+ aT2 = (aT21 + aT22) * .5;
+ myGeom2->D0(aT2, aP2);
+ //
+ bSol = aP1.IsEqual(aP2, myTol);
+ }
+ //
+ if (!bSol) {
return;
}
}
IntTools_SequenceOfRanges aSegments1;
//
IntTools_Range aR2(aT21, aT22);
+ BndBuildBox(myCurve2, aT21, aT22, myTol2, aB2);
//
- SplitRangeOnSegments(aT11, aT12, myRes1, 3, aSegments1);
- aNb1 = aSegments1.Length();
+ aNb1 = SplitRangeOnSegments(aT11, aT12, myRes1, 3, aSegments1);
for (i = 1; i <= aNb1; ++i) {
const IntTools_Range& aR1 = aSegments1(i);
- FindSolutions(aR1, aR2, theRanges1, theRanges2);
+ FindSolutions(aR1, aR2, aB2, theRanges1, theRanges2);
}
}
const Standard_Real aT2,
const Standard_Real theRes,
const Standard_Real thePTol,
+ const Standard_Real theResCoeff,
const Bnd_Box& theCBox,
Standard_Real& aTB1,
Standard_Real& aTB2)
aCBx = theCBox;
aCBx.Enlarge(aTol);
//
+ const Handle(Geom_Curve)& aCurve = theBAC.Curve().Curve();
+ const GeomAbs_CurveType aCurveType = theBAC.GetType();
+ //
for (i = 0; i < 2; ++i) {
aTB = !i ? aT1 : aT2;
aT = !i ? aT2 : aTB1;
aDist = PointBoxDistance(theCBox, aP);
if (aDist > aTol) {
if (fabs(aDist - aDistP) < aDistTol) {
- aDt = theBAC.Resolution((++k)*aDist);
+ aDt = Resolution(aCurve, aCurveType, theResCoeff, (++k)*aDist);
} else {
k = 0;
- aDt = theBAC.Resolution(aDist);
+ aDt = Resolution(aCurve, aCurveType, theResCoeff, aDist);
}
aTB += aC*aDt;
} else {
//purpose :
//=======================================================================
void IntTools_EdgeEdge::MergeSolutions(const IntTools_SequenceOfRanges& theRanges1,
- const IntTools_SequenceOfRanges& theRanges2)
+ const IntTools_SequenceOfRanges& theRanges2,
+ const Standard_Boolean bSplit2)
{
+ Standard_Integer aNbCP = theRanges1.Length();
+ if (aNbCP == 0) {
+ return;
+ }
+ //
IntTools_Range aRi1, aRi2, aRj1, aRj2;
- Standard_Integer aNbCP, i, j;
+ Standard_Boolean bCond;
+ Standard_Integer i, j;
TopAbs_ShapeEnum aType;
- Standard_Real aTi11, aTi12, aTi21, aTi22,
- aTj11, aTj12, aTj21, aTj22;
+ Standard_Real aT11, aT12, aT21, aT22;
+ Standard_Real aTi11, aTi12, aTi21, aTi22;
+ Standard_Real aTj11, aTj12, aTj21, aTj22;
+ Standard_Real aRes1, aRes2, dTR1, dTR2;
+ BOPCol_MapOfInteger aMI;
+ //
+ aRes1 = Resolution(myCurve1.Curve().Curve(),
+ myCurve1.GetType(), myResCoeff1, myTol);
+ aRes2 = Resolution(myCurve2.Curve().Curve(),
+ myCurve2.GetType(), myResCoeff2, myTol);
//
- aNbCP = theRanges1.Length();
+ myRange1.Range(aT11, aT12);
+ myRange2.Range(aT21, aT22);
+ dTR1 = 20*aRes1;
+ dTR2 = 20*aRes2;
aType = TopAbs_VERTEX;
//
- for (i = 1; i <= aNbCP; ) {
+ for (i = 1; i <= aNbCP;) {
+ if (aMI.Contains(i)) {
+ ++i;
+ continue;
+ }
+ //
aRi1 = theRanges1(i);
aRi2 = theRanges2(i);
//
aRi1.Range(aTi11, aTi12);
aRi2.Range(aTi21, aTi22);
//
+ aMI.Add(i);
+ //
for (j = i+1; j <= aNbCP; ++j) {
+ if (aMI.Contains(j)) {
+ continue;
+ }
+ //
aRj1 = theRanges1(j);
aRj2 = theRanges2(j);
//
aRj1.Range(aTj11, aTj12);
aRj2.Range(aTj21, aTj22);
- if (fabs(aTi12 - aTj11) < 10*myRes1 ||
- fabs(aTi22 - aTj21) < 10*myRes2) {
+ //
+ bCond = (fabs(aTi12 - aTj11) < dTR1) ||
+ (bSplit2 && (fabs(aTj12 - aTi11) < dTR1));
+ if (bCond && bSplit2) {
+ bCond = (fabs((Max(aTi22, aTj22) - Min(aTi21, aTj21)) -
+ ((aTi22 - aTi21) + (aTj22 - aTj21))) < dTR2);
+ }
+ //
+ if (bCond) {
aTi11 = Min(aTi11, aTj11);
aTi12 = Max(aTi12, aTj12);
aTi21 = Min(aTi21, aTj21);
aTi22 = Max(aTi22, aTj22);
- } else {
+ aMI.Add(j);
+ }
+ else if (!bSplit2) {
+ i = j;
break;
}
}
- i = j;
//
- if (aTi11 == myRange1.First() && aTi12 == myRange1.Last() &&
- aTi21 == myRange2.First() && aTi22 == myRange2.Last()) {
+ if (((fabs(aT11 - aTi11) < myRes1) && (fabs(aT12 - aTi12) < myRes1)) ||
+ ((fabs(aT21 - aTi21) < myRes2) && (fabs(aT22 - aTi22) < myRes2))) {
aType = TopAbs_EDGE;
+ myCommonParts.Clear();
}
//
AddSolution(aTi11, aTi12, aTi21, aTi22, aType);
+ if (aType == TopAbs_EDGE) {
+ break;
+ }
+ //
+ if (bSplit2) {
+ ++i;
+ }
}
}
Standard_Real& aT2)
{
Standard_Integer i, aNbS, iErr;
- Standard_Real aDMin, aD, aCrit;
- Standard_Real aT1x, aT2x, aT1p, aT2p;
- GeomAPI_ProjectPointOnCurve aProj;
- IntTools_SequenceOfRanges aSeg1;
- //
- aT1 = IntTools_Tools::IntermediatePoint(aT11, aT12);
- aT2 = IntTools_Tools::IntermediatePoint(aT21, aT22);
+ Standard_Real aDMin, aD, aRes1, aSolCriteria, aTouchCriteria;
+ Standard_Real aT1A, aT1B, aT1Min, aT2Min;
+ Standard_Real aT1Im, aT2Im, aT1Touch;
+ GeomAPI_ProjectPointOnCurve aProjPC;
+ IntTools_SequenceOfRanges aRanges;
+ Standard_Boolean bTouch;
//
- aDMin = 100.;
- aD = 100.;
- aCrit = 0.;//1.e-16;
+ aDMin = Precision::Infinite();
+ aSolCriteria = 5.e-16;
+ aTouchCriteria = 5.e-13;
+ bTouch = Standard_False;
+ aT1Touch = aT11;
//
+ aRes1 = Resolution(myCurve1.Curve().Curve(),
+ myCurve1.GetType(), myResCoeff1, myTol);
aNbS = 10;
- SplitRangeOnSegments(aT11, aT12, 3*myRes1, aNbS, aSeg1);
- aNbS = aSeg1.Length();
+ aNbS = SplitRangeOnSegments(aT11, aT12, 3*aRes1, aNbS, aRanges);
+ //
+ aProjPC.Init(myGeom2, aT21, aT22);
+ //
+ aT1 = (aT11 + aT12) * 0.5;
+ iErr = DistPC(aT1, myGeom1, aSolCriteria, aProjPC, aD, aT2, -1);
+ if (iErr == 1) {
+ aT2 = (aT21 + aT22) * 0.5;
+ }
+ //
+ aT1Im = aT1;
+ aT2Im = aT2;
//
- aProj.Init(myGeom2, aT21, aT22);
for (i = 1; i <= aNbS; ++i) {
- const IntTools_Range& aR1 = aSeg1(i);
- aR1.Range(aT1x, aT2x);
+ const IntTools_Range& aR1 = aRanges(i);
+ aR1.Range(aT1A, aT1B);
//
- iErr = FindDistPC(aT1x, aT2x, myGeom1, aCrit, myPTol1,
- aProj, aD, aT1p, aT2p, Standard_False);
- if (iErr != 1 && aD < aDMin) {
- aT1 = aT1p;
- aT2 = aT2p;
- aDMin = aD;
- if (aDMin <= aCrit) {
- break;
+ aD = myTol;
+ iErr = FindDistPC(aT1A, aT1B, myGeom1, aSolCriteria, myPTol1,
+ aProjPC, aD, aT1Min, aT2Min, Standard_False);
+ if (iErr != 1) {
+ if (aD < aDMin) {
+ aT1 = aT1Min;
+ aT2 = aT2Min;
+ aDMin = aD;
+ }
+ //
+ if (aD < aTouchCriteria) {
+ if (bTouch) {
+ aT1A = (aT1Touch + aT1Min) * 0.5;
+ iErr = DistPC(aT1A, myGeom1, aTouchCriteria,
+ aProjPC, aD, aT2Min, -1);
+ if (aD > aTouchCriteria) {
+ aT1 = aT1Im;
+ aT2 = aT2Im;
+ break;
+ }
+ }
+ else {
+ aT1Touch = aT1Min;
+ bTouch = Standard_True;
+ }
}
}
}
//
if (((anAngle1 < anAngleCriteria) || ((M_PI - anAngle1) < anAngleCriteria)) ||
((anAngle2 < anAngleCriteria) || ((M_PI - anAngle2) < anAngleCriteria))) {
- GeomAPI_ProjectPointOnCurve aProj;
+ GeomAPI_ProjectPointOnCurve aProjPC;
Standard_Integer iErr;
- Standard_Real aD, aT1p, aT2p;
+ Standard_Real aD, aT1Min, aT2Min;
//
- aD = 100.;
- aProj.Init(myGeom2, aT21, aT22);
- iErr = FindDistPC(aT11, aT12, myGeom1, myTol, myRes1, aProj, aD, aT1p, aT2p, Standard_False);
+ aD = Precision::Infinite();
+ aProjPC.Init(myGeom2, aT21, aT22);
+ iErr = FindDistPC(aT11, aT12, myGeom1, myTol, myRes1,
+ aProjPC, aD, aT1Min, aT2Min, Standard_False);
bRet = (iErr == 2);
}
}
Standard_Integer iErr, aNb, aNb1, i;
Standard_Real aT1A, aT1B, aT1max, aT2max, aDmax;
GeomAPI_ProjectPointOnCurve aProjPC;
- IntTools_SequenceOfRanges aSeg1;
+ IntTools_SequenceOfRanges aRanges;
//
iErr = 0;
aDmax = -1.;
//
// 1. Express evaluation
aNb = 10; // Number of intervals on the curve #1
- SplitRangeOnSegments(aT11, aT12, theCurveRes1, aNb, aSeg1);
- aNb1 = aSeg1.Length();
+ aNb1 = SplitRangeOnSegments(aT11, aT12, theCurveRes1, aNb, aRanges);
for (i = 1; i < aNb1; ++i) {
- const IntTools_Range& aR1 = aSeg1(i);
+ const IntTools_Range& aR1 = aRanges(i);
aR1.Range(aT1A, aT1B);
//
iErr = DistPC(aT1B, myGeom1, theCriteria, aProjPC, aDmax, aT2max);
}
}
//
- // if the ranges in aSeg1 are less than theCurveRes1,
+ // if the ranges in aRanges are less than theCurveRes1,
// there is no need to do step 2 (deep evaluation)
if (aNb1 < aNb) {
return iErr;
//
// 2. Deep evaluation
for (i = 2; i < aNb1; ++i) {
- const IntTools_Range& aR1 = aSeg1(i);
+ const IntTools_Range& aR1 = aRanges(i);
aR1.Range(aT1A, aT1B);
//
iErr = FindDistPC(aT1A, aT1B, myGeom1, theCriteria, theCurveRes1,
aB = aT1B;
//
// check bounds
- iErr = DistPC(aA, theC1, theCriteria, theProjPC, aYP, aT2P, aDmax, aT1max, aT2max, iC);
+ iErr = DistPC(aA, theC1, theCriteria, theProjPC,
+ aYP, aT2P, aDmax, aT1max, aT2max, iC);
if (iErr == 2) {
return iErr;
}
//
- iErr = DistPC(aB, theC1, theCriteria, theProjPC, aYL, aT2L, aDmax, aT1max, aT2max, iC);
+ iErr = DistPC(aB, theC1, theCriteria, theProjPC,
+ aYL, aT2L, aDmax, aT1max, aT2max, iC);
if (iErr == 2) {
return iErr;
}
aXP = aA + (aB - aA)*aGS;
aXL = aB - (aB - aA)*aGS;
//
- iErr = DistPC(aXP, theC1, theCriteria, theProjPC, aYP, aT2P, aDmax, aT1max, aT2max, iC);
+ iErr = DistPC(aXP, theC1, theCriteria, theProjPC,
+ aYP, aT2P, aDmax, aT1max, aT2max, iC);
if (iErr) {
return iErr;
}
//
- iErr = DistPC(aXL, theC1, theCriteria, theProjPC, aYL, aT2L, aDmax, aT1max, aT2max, iC);
+ iErr = DistPC(aXL, theC1, theCriteria, theProjPC,
+ aYL, aT2L, aDmax, aT1max, aT2max, iC);
if (iErr) {
return iErr;
}
aXL = aXP;
aYL = aYP;
aXP = aA + (aB - aA)*aGS;
- iErr = DistPC(aXP, theC1, theCriteria, theProjPC, aYP, aT2P, aDmax, aT1max, aT2max, iC);
- if (iErr) {
- return iErr;
- }
+ iErr = DistPC(aXP, theC1, theCriteria, theProjPC,
+ aYP, aT2P, aDmax, aT1max, aT2max, iC);
}
else {
aB = aXP;
aXP = aXL;
aYP = aYL;
aXL = aB - (aB - aA)*aGS;
- iErr = DistPC(aXL, theC1, theCriteria, theProjPC, aYL, aT2L, aDmax, aT1max, aT2max, iC);
- if (iErr) {
- return iErr;
+ iErr = DistPC(aXL, theC1, theCriteria, theProjPC,
+ aYL, aT2L, aDmax, aT1max, aT2max, iC);
+ }
+ //
+ if (iErr) {
+ if ((iErr == 2) && !bMaxDist) {
+ aXP = (aA + aB) * 0.5;
+ DistPC(aXP, theC1, theCriteria, theProjPC,
+ aYP, aT2P, aDmax, aT1max, aT2max, iC);
}
+ return iErr;
}
//
if ((aB - aA) < theEps) {
Standard_Integer iErr;
//
iErr = DistPC(aT1, theC1, theCriteria, theProjPC, aD, aT2, iC);
- if (iErr) {
+ if (iErr == 1) {
return iErr;
}
//
//function : SplitRangeOnSegments
//purpose :
//=======================================================================
-void SplitRangeOnSegments(const Standard_Real aT1,
- const Standard_Real aT2,
- const Standard_Real theResolution,
- const Standard_Integer theNbSeg,
- IntTools_SequenceOfRanges& theSegments)
+Standard_Integer SplitRangeOnSegments(const Standard_Real aT1,
+ const Standard_Real aT2,
+ const Standard_Real theResolution,
+ const Standard_Integer theNbSeg,
+ IntTools_SequenceOfRanges& theSegments)
{
Standard_Real aDiff = aT2 - aT1;
- if (aDiff < theResolution) {
+ if (aDiff < theResolution || theNbSeg == 1) {
theSegments.Append(IntTools_Range(aT1, aT2));
- return;
+ return 1;
}
//
Standard_Real aDt, aT1x, aT2x, aSeg;
//
IntTools_Range aR(aT1x, aT2);
theSegments.Append(aR);
+ //
+ return aNbSegments;
}
//=======================================================================
case GeomAbs_Line:
iRet=0;
break;
- case GeomAbs_Circle:
+ case GeomAbs_Hyperbola:
+ case GeomAbs_Parabola:
iRet=1;
break;
+ case GeomAbs_Circle:
case GeomAbs_Ellipse:
- case GeomAbs_Hyperbola:
- case GeomAbs_Parabola:
iRet=2;
break;
case GeomAbs_BezierCurve:
return iRet;
}
+//=======================================================================
+//function : ResolutionCoeff
+//purpose :
+//=======================================================================
+Standard_Real ResolutionCoeff(const BRepAdaptor_Curve& theBAC,
+ const IntTools_Range& theRange)
+{
+ Standard_Real aResCoeff;
+ //
+ const Handle(Geom_Curve)& aCurve = theBAC.Curve().Curve();
+ const GeomAbs_CurveType aCurveType = theBAC.GetType();
+ //
+ switch (aCurveType) {
+ case GeomAbs_Circle :
+ aResCoeff = 1. / (2 * (*((Handle(Geom_Circle)*)&aCurve))->Circ().Radius());
+ break;
+ case GeomAbs_Ellipse :
+ aResCoeff = 1. / (*((Handle(Geom_Ellipse)*)&aCurve))->MajorRadius();
+ break;
+ case GeomAbs_Hyperbola :
+ case GeomAbs_Parabola :
+ case GeomAbs_OtherCurve :{
+ Standard_Real k, kMin, aDist, aDt, aT1, aT2, aT;
+ Standard_Integer aNbP, i;
+ gp_Pnt aP1, aP2;
+ //
+ aNbP = 30;
+ theRange.Range(aT1, aT2);
+ aDt = (aT2 - aT1) / aNbP;
+ aT = aT1;
+ kMin = 10.;
+ //
+ theBAC.D0(aT1, aP1);
+ for (i = 1; i <= aNbP; ++i) {
+ aT += aDt;
+ theBAC.D0(aT, aP2);
+ aDist = aP1.Distance(aP2);
+ k = aDt / aDist;
+ if (k < kMin) {
+ kMin = k;
+ }
+ aP1 = aP2;
+ }
+ //
+ aResCoeff = kMin;
+ break;
+ }
+ default:
+ aResCoeff = 0.;
+ break;
+ }
+ //
+ return aResCoeff;
+}
+
+//=======================================================================
+//function : Resolution
+//purpose :
+//=======================================================================
+Standard_Real Resolution(const Handle(Geom_Curve)& theCurve,
+ const GeomAbs_CurveType theCurveType,
+ const Standard_Real theResCoeff,
+ const Standard_Real theR3D)
+{
+ Standard_Real aRes;
+ //
+ switch (theCurveType) {
+ case GeomAbs_Line :
+ aRes = theR3D;
+ break;
+ case GeomAbs_Circle: {
+ Standard_Real aDt = theResCoeff * theR3D;
+ aRes = (aDt <= 1.) ? 2*ASin(aDt) : 2*M_PI;
+ break;
+ }
+ case GeomAbs_BezierCurve:
+ (*((Handle(Geom_BezierCurve)*)&theCurve))->Resolution(theR3D, aRes);
+ break;
+ case GeomAbs_BSplineCurve:
+ (*((Handle(Geom_BSplineCurve)*)&theCurve))->Resolution(theR3D, aRes);
+ break;
+ default:
+ aRes = theResCoeff * theR3D;
+ break;
+ }
+ //
+ return aRes;
+}
+
+//=======================================================================
+//function : CurveDeflection
+//purpose :
+//=======================================================================
+Standard_Real CurveDeflection(const BRepAdaptor_Curve& theBAC,
+ const IntTools_Range& theRange)
+{
+ Standard_Real aDt, aT, aT1, aT2, aDefl;
+ Standard_Integer i, aNbP;
+ gp_Vec aV1, aV2;
+ gp_Pnt aP;
+ //
+ aDefl = 0;
+ aNbP = 10;
+ theRange.Range(aT1, aT2);
+ aDt = (aT2 - aT1) / aNbP;
+ aT = aT1;
+ //
+ theBAC.D1(aT1, aP, aV1);
+ for (i = 1; i <= aNbP; ++i) {
+ aT += aDt;
+ theBAC.D1(aT, aP, aV2);
+ if (aV1.Magnitude() > gp::Resolution() &&
+ aV2.Magnitude() > gp::Resolution()) {
+ gp_Dir aD1(aV1), aD2(aV2);
+ aDefl += aD1.Angle(aD2);
+ }
+ aV1 = aV2;
+ }
+ //
+ return aDefl;
+}
+
+//=======================================================================
+//function : IsClosed
+//purpose :
+//=======================================================================
+Standard_Integer IsClosed(const Handle(Geom_Curve)& theCurve,
+ const Standard_Real aT1,
+ const Standard_Real aT2,
+ const Standard_Real theTol,
+ const Standard_Real theRes)
+{
+ Standard_Boolean bClosed;
+ Standard_Real aD;
+ gp_Pnt aP1, aP2;
+ //
+ bClosed = Standard_False;
+ if (Abs(aT1 - aT2) < theRes) {
+ return bClosed;
+ }
+ //
+ theCurve->D0(aT1, aP1);
+ theCurve->D0(aT2, aP2);
+ //
+ aD = aP1.Distance(aP2);
+ bClosed = aD < theTol;
+ //
+ return bClosed;
+}
myTol(0.),
myRes1(0.),
myRes2(0.),
+ myResCoeff1(0.),
+ myResCoeff2(0.),
myPTol1(0.),
myPTol2(0.),
myRange1(0., 0.),
myTol(0.),
myRes1(0.),
myRes2(0.),
+ myResCoeff1(0.),
+ myResCoeff2(0.),
myPTol1(0.),
myPTol2(0.),
myRange1(0., 0.),
myTol(0.),
myRes1(0.),
myRes2(0.),
+ myResCoeff1(0.),
+ myResCoeff2(0.),
myPTol1(0.),
myPTol2(0.),
myRange1(aT11, aT12),
ExtraU = Tol2d.X();
ExtraV = Tol2d.Y();
// }
- if (Abs(mySolution.X()-Inf.X()) < Tol2d.X()) mySolution.SetX(Inf.X());
- if (Abs(mySolution.X()-Sup.X()) < Tol2d.X()) mySolution.SetX(Sup.X());
- if (Abs(mySolution.Y()-Inf.Y()) < Tol2d.Y()) mySolution.SetY(Inf.Y());
- if (Abs(mySolution.Y()-Sup.Y()) < Tol2d.Y()) mySolution.SetY(Sup.Y());
- if (mySolution.X() < Inf.X() - ExtraU ||
+ if (mySolution.X() > Inf.X() - Tol2d.X() && mySolution.X() < Inf.X()) mySolution.SetX(Inf.X());
+ if (mySolution.X() > Sup.X() && mySolution.X() < Sup.X() + Tol2d.X()) mySolution.SetX(Sup.X());
+ if (mySolution.Y() > Inf.Y() - Tol2d.Y() && mySolution.Y() < Inf.Y()) mySolution.SetY(Inf.Y());
+ if (mySolution.Y() > Sup.Y() && mySolution.Y() < Sup.Y() + Tol2d.Y()) mySolution.SetY(Sup.Y());
+ if (mySolution.X() < Inf.X() - ExtraU ||
mySolution.X() > Sup.X() + ExtraU ||
- mySolution.Y() < Inf.Y() - ExtraV ||
+ mySolution.Y() < Inf.Y() - ExtraV ||
mySolution.Y() > Sup.Y() + ExtraV) myDone = Standard_False;
else if (FuncTol > 0) {
math_Vector X(1,2,0.), FVal(1,2,0.);
continue;
if((edge.Orientation() == TopAbs_FORWARD && dire.Contains(edge))
- || (edge.Orientation() == TopAbs_REVERSED && reve.Contains(edge)))
- nbbe++;
+ || (edge.Orientation() == TopAbs_REVERSED && reve.Contains(edge)))
+ nbbe++;
else if((edge.Orientation() == TopAbs_FORWARD && reve.Contains(edge))
- || (edge.Orientation() == TopAbs_REVERSED && dire.Contains(edge)))
- nbe++;
+ || (edge.Orientation() == TopAbs_REVERSED && dire.Contains(edge)))
+ nbe++;
if(dire.Contains(edge)) dire.Remove(edge);
else
- if(reve.Contains(edge)) reve.Remove(edge);
- else {
- if(edge.Orientation() == TopAbs_FORWARD) dtemp.Add(edge);
- if(edge.Orientation() == TopAbs_REVERSED) rtemp.Add(edge);
- }
+ if(reve.Contains(edge)) reve.Remove(edge);
+ else {
+ if(edge.Orientation() == TopAbs_FORWARD) dtemp.Add(edge);
+ if(edge.Orientation() == TopAbs_REVERSED) rtemp.Add(edge);
+ }
}
if(!nbbe && !nbe && dtemp.IsEmpty() && rtemp.IsEmpty())
continue;
// Addition of face to shell. In the dependance of orientation faces in the shell
// added face can be reversed.
-
+
if((nbe != 0 || nbbe != 0) || j == 1) {
if(nbbe != 0) {
- F1.Reverse();
- for(TopTools_MapIteratorOfMapOfShape ite(dtemp); ite.More(); ite.Next())
- reve.Add(ite.Key());
- for(TopTools_MapIteratorOfMapOfShape ite1(rtemp); ite1.More(); ite1.Next())
- dire.Add(ite1.Key());
- done = Standard_True;
+ F1.Reverse();
+ for(TopTools_MapIteratorOfMapOfShape ite(dtemp); ite.More(); ite.Next())
+ reve.Add(ite.Key());
+ for(TopTools_MapIteratorOfMapOfShape ite1(rtemp); ite1.More(); ite1.Next())
+ dire.Add(ite1.Key());
+ done = Standard_True;
}
else {
- for(TopTools_MapIteratorOfMapOfShape ite(dtemp); ite.More(); ite.Next())
- dire.Add(ite.Key());
- for(TopTools_MapIteratorOfMapOfShape ite1(rtemp); ite1.More(); ite1.Next())
- reve.Add(ite1.Key());
+ for(TopTools_MapIteratorOfMapOfShape ite(dtemp); ite.More(); ite.Next())
+ dire.Add(ite.Key());
+ for(TopTools_MapIteratorOfMapOfShape ite1(rtemp); ite1.More(); ite1.Next())
+ reve.Add(ite1.Key());
}
j++;
B.Add(nshell,F1);
Lface.Remove(i);
// if closed shell is obtained it adds to sequence of shells and new shell begin to construct.
- if(isMultiConnex && BRep_Tool::IsClosed(nshell)) {
+ if(isMultiConnex && BRep_Tool::IsClosed (nshell)) {
aSeqShells.Append(nshell);
TopoDS_Shell nshellnext;
B.MakeShell(nshellnext);
myShell = shell;
myShape = shell;
Standard_Integer aNumMultShell =0;
- for (TopoDS_Iterator iter(shell); iter.More(); iter.Next())
- Lface.Append(iter.Value());
+ Standard_Integer nbF = 0;
+ TopTools_MapOfShape aMapAdded;
+ for (TopoDS_Iterator iter(shell); iter.More(); iter.Next(),nbF++)
+ {
+ if(aMapAdded.Add(iter.Value()))
+ Lface.Append(iter.Value());
+ }
+ if(Lface.Length() < nbF)
+ done = Standard_True;
+
TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces;
TopExp::MapShapesAndAncestors(myShell,TopAbs_EDGE,TopAbs_FACE,aMapEdgeFaces);
TopTools_MapOfShape aMapMultiConnectEdges;
#include <BRepClass3d_SolidClassifier.hxx>
#include <Precision.hxx>
#include <TopoDS_Shape.hxx>
-#include <ShapeBuild_ReShape.hxx>
+#include <ShapeBuild_ReShape.hxx>
#include <TopoDS_Iterator.hxx>
#include <TopoDS.hxx>
#include <ShapeExtend.hxx>
}
}
for(TopTools_MapIteratorOfMapOfShape aIterHoles(aMapHoles);aIterHoles.More(); aIterHoles.Next())
- aMapShellHoles.UnBind(aIterHoles.Key());
-
-}
+ aMapShellHoles.UnBind (aIterHoles.Key());
+
+ }
//=======================================================================
//function : CreateSolids
//purpose :
BRep_Builder aB;
aB.MakeCompSolid(aCompSolid);
isDone = (aShape.ShapeType() != TopAbs_COMPSOLID || isDone);
+ Standard_Integer nbSol = 0;
+
for(TopTools_ListIteratorOfListOfShape lItSh(lshells);lItSh.More(); lItSh.Next()) {
if(ShellSolid.Contains(lItSh.Value())) {
- for(TopExp_Explorer aExpSol(ShellSolid.FindFromKey(lItSh.Value()),TopAbs_SOLID);aExpSol.More(); aExpSol.Next())
+ const TopoDS_Shape& aShape = ShellSolid.FindFromKey(lItSh.Value());
+ TopExp_Explorer aExpSol(aShape, TopAbs_SOLID);
+
+ for(;aExpSol.More(); aExpSol.Next())
+ {
aB.Add(aCompSolid,aExpSol.Current());
- ShellSolid.ChangeFromKey(lItSh.Value()) = aCompSolid;
+ nbSol++;
+ }
+
+ }
+ }
+ if(nbSol >1)
+ {
+ for(TopTools_ListIteratorOfListOfShape lItSh1(lshells);lItSh1.More(); lItSh1.Next())
+ {
+ if(ShellSolid.Contains(lItSh1.Value()))
+ ShellSolid.ChangeFromKey(lItSh1.Value()) = aCompSolid;
}
}
+
}
for(Standard_Integer kk =1 ; kk <= ShellSolid.Extent();kk++)
if(!aMapSolids.Contains(ShellSolid.FindFromIndex(kk)))
if(isClosed || myCreateOpenSolidMode) {
if(BRep_Tool::IsClosed(tmpShape)) {
- TopoDS_Iterator itersh(tmpShape);
- TopoDS_Shell aShell;
- if(itersh.More() && itersh.Value().ShapeType() == TopAbs_SHELL)
- aShell = TopoDS::Shell(itersh.Value());
- if(!aShell.IsNull()) {
- TopoDS_Solid aSol = SolidFromShell(aShell);
- if(ShapeExtend::DecodeStatus(myStatus,ShapeExtend_DONE2)) {
- SendWarning (Message_Msg ("FixAdvSolid.FixOrientation.MSG20"));// Orientaion of shell was corrected.
- Context()->Replace(tmpShape,aSol);
- tmpShape = aSol;
- }
+ TopoDS_Iterator itersh(tmpShape);
+ TopoDS_Shell aShell;
+ if(itersh.More() && itersh.Value().ShapeType() == TopAbs_SHELL)
+ aShell = TopoDS::Shell(itersh.Value());
+ if(!aShell.IsNull()) {
+ TopoDS_Solid aSol = SolidFromShell(aShell);
+ if(ShapeExtend::DecodeStatus(myStatus,ShapeExtend_DONE2)) {
+ SendWarning (Message_Msg ("FixAdvSolid.FixOrientation.MSG20"));// Orientaion of shell was corrected.
+ Context()->Replace(tmpShape,aSol);
+ tmpShape = aSol;
}
}
+ }
mySolid = TopoDS::Solid(tmpShape);
}
else {
+ status = Standard_True;
+ myStatus |= ShapeExtend::EncodeStatus ( ShapeExtend_DONE3 );
TopoDS_Iterator aIt(tmpShape,Standard_False);
Context()->Replace(tmpShape,aIt.Value());
SendFail (Message_Msg ("FixAdvSolid.FixShell.MSG10")); // Solid can not be created from open shell.
math_Recipes.hxx
math_GaussPoints.hxx
math_Kronrod.cxx
+math_Vector.hxx
+math_Vector.cxx
+math_IntegerVector.hxx
+math_IntegerVector.cxx
+math_SingleTab.hxx
+math_GlobOptMin.hxx
+math_GlobOptMin.cxx
exception SingularMatrix inherits Failure;
- class Vector;
- class IntegerVector;
+ imported Vector;
+ imported IntegerVector;
class Matrix;
deferred class Function;
deferred class FunctionWithDerivative;
deferred class MultipleVarFunctionWithHessian;
deferred class FunctionSet;
deferred class FunctionSetWithDerivatives;
+ imported GlobOptMin;
class IntegerRandom;
class Gauss;
class GaussLeastSquare;
Array1OfValueAndWeight from math,
CompareOfValueAndWeight from math);
- generic class SingleTab;
- generic class DoubleTab;
-
- --- Instantiate classes:
- class SingleTabOfReal instantiates SingleTab(Real);
- class SingleTabOfInteger instantiates SingleTab(Integer);
- class DoubleTabOfReal instantiates DoubleTab(Real);
+ class DoubleTab;
--- Gauss Points
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
-generic class DoubleTab from math (Item as any)
+class DoubleTab from math
uses Address from Standard
is
Create(LowerRow, UpperRow, LowerCol, UpperCol: Integer)
returns DoubleTab;
- Create(Tab : Item; LowerRow, UpperRow, LowerCol, UpperCol: Integer)
+ Create(Tab : Address; LowerRow, UpperRow, LowerCol, UpperCol: Integer)
returns DoubleTab;
- Init(me : in out; InitValue: Item) is static;
+ Init(me : in out; InitValue: Real) is static;
Create(Other: DoubleTab)
returns DoubleTab;
---C++: alias operator()
---C++: return &
---C++: inline
- returns Item
+ returns Real
is static;
Addr : Address;
AddrBuf : Address[32];
-Buf : Item[512];
+Buf : Real[512];
isAddrAllocated: Boolean;
isAllocated : Boolean;
LowR : Integer;
--- /dev/null
+// Copyright (c) 1997-1999 Matra Datavision
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+// Lpa, le 7/02/92
+#include <math_DoubleTab.ixx>
+
+#include <math_Memory.hxx>
+#include <Standard_OutOfRange.hxx>
+#include <Standard_Failure.hxx>
+#include <Standard_Integer.hxx>
+
+// macro to get size of C array
+#define CARRAY_LENGTH(arr) (int)(sizeof(arr)/sizeof(arr[0]))
+
+void math_DoubleTab::Allocate()
+{
+ Standard_Integer RowNumber = UppR - LowR + 1;
+ Standard_Integer ColNumber = UppC - LowC + 1;
+
+ Standard_Real** TheAddr = !isAddrAllocated? (Standard_Real**)&AddrBuf :
+ (Standard_Real**) Standard::Allocate(RowNumber * sizeof(Standard_Real*));
+ Standard_Real* Address;
+ if(isAllocated)
+ Address = (Standard_Real*) Standard::Allocate(RowNumber * ColNumber * sizeof(Standard_Real));
+ else
+ Address = (Standard_Real*) Addr;
+ Address -= LowC;
+
+ for (Standard_Integer Index = 0; Index < RowNumber; Index++) {
+ TheAddr[Index] = Address;
+ Address += ColNumber;
+ }
+
+ TheAddr -= LowR;
+ Addr = (Standard_Address) TheAddr;
+}
+
+math_DoubleTab::math_DoubleTab(const Standard_Integer LowerRow,
+ const Standard_Integer UpperRow,
+ const Standard_Integer LowerCol,
+ const Standard_Integer UpperCol) :
+ Addr(Buf),
+ isAddrAllocated(UpperRow - LowerRow + 1 > CARRAY_LENGTH(AddrBuf)),
+ isAllocated((UpperRow - LowerRow + 1) * (UpperCol - LowerCol + 1) > CARRAY_LENGTH(Buf)),
+ LowR(LowerRow),
+ UppR(UpperRow),
+ LowC(LowerCol),
+ UppC(UpperCol)
+{
+ Allocate();
+}
+
+math_DoubleTab::math_DoubleTab(const Standard_Address Tab,
+ const Standard_Integer LowerRow,
+ const Standard_Integer UpperRow,
+ const Standard_Integer LowerCol,
+ const Standard_Integer UpperCol) :
+ Addr(Tab),
+ isAddrAllocated(UpperRow - LowerRow + 1 > CARRAY_LENGTH(AddrBuf)),
+ isAllocated(Standard_False),
+ LowR(LowerRow),
+ UppR(UpperRow),
+ LowC(LowerCol),
+ UppC(UpperCol)
+{
+ Allocate();
+}
+
+void math_DoubleTab::Init(const Standard_Real InitValue)
+{
+ for (Standard_Integer i = LowR; i <= UppR; i++) {
+ for (Standard_Integer j = LowC; j <= UppC; j++) {
+ ((Standard_Real**) Addr)[i][j] = InitValue;
+ }
+ }
+}
+
+math_DoubleTab::math_DoubleTab(const math_DoubleTab& Other) :
+ Addr(Buf),
+ isAddrAllocated(Other.UppR - Other.LowR + 1 > CARRAY_LENGTH(AddrBuf)),
+ isAllocated((Other.UppR - Other.LowR + 1) *
+ (Other.UppC - Other.LowC + 1) > CARRAY_LENGTH(Buf)),
+ LowR(Other.LowR),
+ UppR(Other.UppR),
+ LowC(Other.LowC),
+ UppC(Other.UppC)
+{
+ Allocate();
+
+ Standard_Address target = (Standard_Address) &Value(LowR,LowC);
+ Standard_Address source = (Standard_Address) &Other.Value(LowR,LowC);
+
+ memmove(target,source,
+ (int)((UppR - LowR + 1) * (UppC - LowC + 1) * sizeof(Standard_Real)));
+
+}
+
+void math_DoubleTab::Free()
+{
+ // free the data
+ if(isAllocated) {
+ Standard_Address it = (Standard_Address)&Value(LowR,LowC);
+ Standard::Free(it);
+ }
+ // free the pointers
+ if(isAddrAllocated) {
+ Standard_Address it = (Standard_Address)(((Standard_Real**)Addr) + LowR);
+ Standard::Free (it);
+ }
+ Addr = 0;
+}
+
+void math_DoubleTab::SetLowerRow(const Standard_Integer LowerRow)
+{
+ Standard_Real** TheAddr = (Standard_Real**)Addr;
+ Addr = (Standard_Address) (TheAddr + LowR - LowerRow);
+ UppR = UppR - LowR + LowerRow;
+ LowR = LowerRow;
+}
+
+void math_DoubleTab::SetLowerCol(const Standard_Integer LowerCol)
+{
+ Standard_Real** TheAddr = (Standard_Real**) Addr;
+ for (Standard_Integer Index = LowR; Index <= UppR; Index++) {
+ TheAddr[Index] = TheAddr[Index] + LowC - LowerCol;
+ }
+
+ UppC = UppC - LowC + LowerCol;
+ LowC = LowerCol;
+}
+
#include <math_Memory.hxx>
#include <Standard_OutOfRange.hxx>
-inline Item& math_DoubleTab::Value (const Standard_Integer RowIndex,
+inline Standard_Real& math_DoubleTab::Value (const Standard_Integer RowIndex,
const Standard_Integer ColIndex) const
{
- return ((Item**)Addr)[RowIndex][ColIndex];
+ return ((Standard_Real**)Addr)[RowIndex][ColIndex];
}
{
memmove((void*)(& Other.Value(Other.LowR,Other.LowC)),
(void*) (& Value(LowR,LowC)),
- (int)((UppR - LowR + 1) * (UppC - LowC + 1) * sizeof(Item)));
+ (int)((UppR - LowR + 1) * (UppC - LowC + 1) * sizeof(Standard_Real)));
}
--- /dev/null
+// Created on: 2014-01-20
+// Created by: Alexaner Malyshev
+// Copyright (c) 2014-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement
+
+#include <math_GlobOptMin.hxx>
+
+#include <math_BFGS.hxx>
+#include <math_Matrix.hxx>
+#include <math_MultipleVarFunctionWithGradient.hxx>
+#include <math_MultipleVarFunctionWithHessian.hxx>
+#include <math_NewtonMinimum.hxx>
+#include <math_Powell.hxx>
+#include <Standard_Integer.hxx>
+#include <Standard_Real.hxx>
+#include <Precision.hxx>
+
+
+//=======================================================================
+//function : math_GlobOptMin
+//purpose : Constructor
+//=======================================================================
+math_GlobOptMin::math_GlobOptMin(math_MultipleVarFunction* theFunc,
+ const math_Vector& theA,
+ const math_Vector& theB,
+ const Standard_Real theC,
+ const Standard_Real theDiscretizationTol,
+ const Standard_Real theSameTol)
+: myN(theFunc->NbVariables()),
+ myA(1, myN),
+ myB(1, myN),
+ myGlobA(1, myN),
+ myGlobB(1, myN),
+ myX(1, myN),
+ myTmp(1, myN),
+ myV(1, myN),
+ myMaxV(1, myN),
+ myExpandCoeff(1, myN)
+{
+ Standard_Integer i;
+
+ myFunc = theFunc;
+ myC = theC;
+ myZ = -1;
+ mySolCount = 0;
+
+ for(i = 1; i <= myN; i++)
+ {
+ myGlobA(i) = theA(i);
+ myGlobB(i) = theB(i);
+
+ myA(i) = theA(i);
+ myB(i) = theB(i);
+ }
+
+ for(i = 1; i <= myN; i++)
+ {
+ myMaxV(i) = (myB(i) - myA(i)) / 3.0;
+ }
+
+ myExpandCoeff(1) = 1.0;
+ for(i = 2; i <= myN; i++)
+ {
+ myExpandCoeff(i) = (myB(i) - myA(i)) / (myB(i - 1) - myA(i - 1));
+ }
+
+ myTol = theDiscretizationTol;
+ mySameTol = theSameTol;
+
+ myDone = Standard_False;
+}
+
+//=======================================================================
+//function : SetGlobalParams
+//purpose : Set params without memory allocation.
+//=======================================================================
+void math_GlobOptMin::SetGlobalParams(math_MultipleVarFunction* theFunc,
+ const math_Vector& theA,
+ const math_Vector& theB,
+ const Standard_Real theC,
+ const Standard_Real theDiscretizationTol,
+ const Standard_Real theSameTol)
+{
+ Standard_Integer i;
+
+ myFunc = theFunc;
+ myC = theC;
+ myZ = -1;
+ mySolCount = 0;
+
+ for(i = 1; i <= myN; i++)
+ {
+ myGlobA(i) = theA(i);
+ myGlobB(i) = theB(i);
+
+ myA(i) = theA(i);
+ myB(i) = theB(i);
+ }
+
+ for(i = 1; i <= myN; i++)
+ {
+ myMaxV(i) = (myB(i) - myA(i)) / 3.0;
+ }
+
+ myExpandCoeff(1) = 1.0;
+ for(i = 2; i <= myN; i++)
+ {
+ myExpandCoeff(i) = (myB(i) - myA(i)) / (myB(i - 1) - myA(i - 1));
+ }
+
+ myTol = theDiscretizationTol;
+ mySameTol = theSameTol;
+
+ myDone = Standard_False;
+}
+
+//=======================================================================
+//function : SetLocalParams
+//purpose : Set params without memory allocation.
+//=======================================================================
+void math_GlobOptMin::SetLocalParams(const math_Vector& theLocalA,
+ const math_Vector& theLocalB)
+{
+ Standard_Integer i;
+
+ myZ = -1;
+ mySolCount = 0;
+
+ for(i = 1; i <= myN; i++)
+ {
+ myA(i) = theLocalA(i);
+ myB(i) = theLocalB(i);
+ }
+
+ for(i = 1; i <= myN; i++)
+ {
+ myMaxV(i) = (myB(i) - myA(i)) / 3.0;
+ }
+
+ myExpandCoeff(1) = 1.0;
+ for(i = 2; i <= myN; i++)
+ {
+ myExpandCoeff(i) = (myB(i) - myA(i)) / (myB(i - 1) - myA(i - 1));
+ }
+
+ myDone = Standard_False;
+}
+
+//=======================================================================
+//function : SetTol
+//purpose : Set algorithm tolerances.
+//=======================================================================
+void math_GlobOptMin::SetTol(const Standard_Real theDiscretizationTol,
+ const Standard_Real theSameTol)
+{
+ myTol = theDiscretizationTol;
+ mySameTol = theSameTol;
+}
+
+//=======================================================================
+//function : GetTol
+//purpose : Get algorithm tolerances.
+//=======================================================================
+void math_GlobOptMin::GetTol(Standard_Real& theDiscretizationTol,
+ Standard_Real& theSameTol)
+{
+ theDiscretizationTol = myTol;
+ theSameTol = mySameTol;
+}
+
+//=======================================================================
+//function : ~math_GlobOptMin
+//purpose :
+//=======================================================================
+math_GlobOptMin::~math_GlobOptMin()
+{
+}
+
+//=======================================================================
+//function : Perform
+//purpose : Compute Global extremum point
+//=======================================================================
+// In this algo indexes started from 1, not from 0.
+void math_GlobOptMin::Perform()
+{
+ Standard_Integer i;
+
+ // Compute parameters range
+ Standard_Real minLength = RealLast();
+ Standard_Real maxLength = RealFirst();
+ for(i = 1; i <= myN; i++)
+ {
+ Standard_Real currentLength = myB(i) - myA(i);
+ if (currentLength < minLength)
+ minLength = currentLength;
+ if (currentLength > maxLength)
+ maxLength = currentLength;
+ }
+
+ if (minLength < Precision::PConfusion())
+ {
+ #ifdef OCCT_DEBUG
+ cout << "math_GlobOptMin::Perform(): Degenerated parameters space" << endl;
+ #endif
+
+ return;
+ }
+
+ // Compute initial values for myF, myY, myC.
+ computeInitialValues();
+
+ myE1 = minLength * myTol;
+ myE2 = maxLength * myTol;
+ if (myC > 1.0)
+ myE3 = - maxLength * myTol / 4.0;
+ else
+ myE3 = - maxLength * myTol * myC / 4.0;
+
+ computeGlobalExtremum(myN);
+
+ myDone = Standard_True;
+}
+
+//=======================================================================
+//function : computeLocalExtremum
+//purpose :
+//=======================================================================
+Standard_Boolean math_GlobOptMin::computeLocalExtremum(const math_Vector& thePnt,
+ Standard_Real& theVal,
+ math_Vector& theOutPnt)
+{
+ Standard_Integer i;
+
+ //Newton method
+ if (dynamic_cast<math_MultipleVarFunctionWithHessian*>(myFunc))
+ {
+ math_MultipleVarFunctionWithHessian* myTmp =
+ dynamic_cast<math_MultipleVarFunctionWithHessian*> (myFunc);
+
+ math_NewtonMinimum newtonMinimum(*myTmp);
+ newtonMinimum.Perform(*myTmp, thePnt);
+
+ if (newtonMinimum.IsDone())
+ {
+ newtonMinimum.Location(theOutPnt);
+ theVal = newtonMinimum.Minimum();
+ }
+ else return Standard_False;
+ } else
+
+ // BFGS method used.
+ if (dynamic_cast<math_MultipleVarFunctionWithGradient*>(myFunc))
+ {
+ math_MultipleVarFunctionWithGradient* myTmp =
+ dynamic_cast<math_MultipleVarFunctionWithGradient*> (myFunc);
+ math_BFGS bfgs(*myTmp);
+ bfgs.Perform(*myTmp, thePnt);
+ if (bfgs.IsDone())
+ {
+ bfgs.Location(theOutPnt);
+ theVal = bfgs.Minimum();
+ }
+ else return Standard_False;
+ } else
+
+ // Powell method used.
+ if (dynamic_cast<math_MultipleVarFunction*>(myFunc))
+ {
+ math_Matrix m(1, myN, 1, myN, 0.0);
+ for(i = 1; i <= myN; i++)
+ m(1, 1) = 1.0;
+
+ math_Powell powell(*myFunc, 1e-10);
+ powell.Perform(*myFunc, thePnt, m);
+
+ if (powell.IsDone())
+ {
+ powell.Location(theOutPnt);
+ theVal = powell.Minimum();
+ }
+ else return Standard_False;
+ }
+
+ if (isInside(theOutPnt))
+ return Standard_True;
+ else
+ return Standard_False;
+}
+
+//=======================================================================
+//function : computeInitialValues
+//purpose :
+//=======================================================================
+void math_GlobOptMin::computeInitialValues()
+{
+ Standard_Integer i;
+ math_Vector aCurrPnt(1, myN);
+ math_Vector aBestPnt(1, myN);
+ math_Vector aParamStep(1, myN);
+ Standard_Real aCurrVal = RealLast();
+ Standard_Real aBestVal = RealLast();
+
+ // Check functional value in midpoint, low and upp point border and
+ // in each point try to perform local optimization.
+ aBestPnt = (myA + myB) * 0.5;
+ myFunc->Value(aBestPnt, aBestVal);
+
+ for(i = 1; i <= 3; i++)
+ {
+ aCurrPnt = myA + (myB - myA) * (i - 1) / 2.0;
+
+ if(computeLocalExtremum(aCurrPnt, aCurrVal, aCurrPnt))
+ {
+ // Local Extremum finds better solution than current point.
+ if (aCurrVal < aBestVal)
+ {
+ aBestVal = aCurrVal;
+ aBestPnt = aCurrPnt;
+ }
+ }
+ }
+
+ myF = aBestVal;
+ myY.Clear();
+ for(i = 1; i <= myN; i++)
+ myY.Append(aBestPnt(i));
+ mySolCount++;
+
+ // Lipschitz const approximation
+ Standard_Real aLipConst = 0.0, aPrevValDiag, aPrevValProj;
+ Standard_Integer aPntNb = 13;
+ myFunc->Value(myA, aPrevValDiag);
+ aPrevValProj = aPrevValDiag;
+ Standard_Real aStep = (myB - myA).Norm() / aPntNb;
+ aParamStep = (myB - myA) / aPntNb;
+ for(i = 1; i <= aPntNb; i++)
+ {
+ aCurrPnt = myA + aParamStep * i;
+
+ // Walk over diagonal.
+ myFunc->Value(aCurrPnt, aCurrVal);
+ aLipConst = Max (Abs(aCurrVal - aPrevValDiag), aLipConst);
+ aPrevValDiag = aCurrVal;
+
+ // Walk over diag in projected space aPnt(1) = myA(1) = const.
+ aCurrPnt(1) = myA(1);
+ myFunc->Value(aCurrPnt, aCurrVal);
+ aLipConst = Max (Abs(aCurrVal - aPrevValProj), aLipConst);
+ aPrevValProj = aCurrVal;
+ }
+
+ aLipConst *= Sqrt(myN) / aStep;
+
+ if (aLipConst < myC * 0.1)
+ {
+ myC = Max(aLipConst * 0.1, 0.01);
+ }
+ else if (aLipConst > myC * 10)
+ {
+ myC = Min(myC * 2, 30.0);
+ }
+}
+
+//=======================================================================
+//function : ComputeGlobalExtremum
+//purpose :
+//=======================================================================
+void math_GlobOptMin::computeGlobalExtremum(Standard_Integer j)
+{
+ Standard_Integer i;
+ Standard_Real d; // Functional in moved point.
+ Standard_Real val = RealLast(); // Local extrema computed in moved point.
+ Standard_Real aStepBestValue = RealLast();
+ Standard_Real aRealStep = 0.0;
+ math_Vector aStepBestPoint(1, myN);
+ Standard_Boolean isInside = Standard_False;
+ Standard_Boolean isReached = Standard_False;
+ Standard_Real r;
+
+ for(myX(j) = myA(j) + myE1;
+ (myX(j) < myB(j) + myE1) && (!isReached);
+ myX(j) += myV(j))
+ {
+ if (myX(j) > myB(j))
+ {
+ myX(j) = myB(j);
+ isReached = Standard_True;
+ }
+
+ if (j == 1)
+ {
+ isInside = Standard_False;
+ myFunc->Value(myX, d);
+ r = (d + myZ * myC * aRealStep - myF) * myZ;
+ if(r > myE3)
+ {
+ isInside = computeLocalExtremum(myX, val, myTmp);
+ }
+ aStepBestValue = (isInside && (val < d))? val : d;
+ aStepBestPoint = (isInside && (val < d))? myTmp : myX;
+
+ // Solutions are close to each other.
+ if (Abs(aStepBestValue - myF) < mySameTol * 0.01)
+ {
+ if (!isStored(aStepBestPoint))
+ {
+ if ((aStepBestValue - myF) * myZ > 0.0)
+ myF = aStepBestValue;
+ for(i = 1; i <= myN; i++)
+ myY.Append(aStepBestPoint(i));
+ mySolCount++;
+ }
+ }
+
+ // New best solution.
+ if ((aStepBestValue - myF) * myZ > mySameTol * 0.01)
+ {
+ mySolCount = 0;
+ myF = aStepBestValue;
+ myY.Clear();
+ for(i = 1; i <= myN; i++)
+ myY.Append(aStepBestPoint(i));
+ mySolCount++;
+ }
+
+ aRealStep = myE2 + Abs(myF - d) / myC;
+ myV(1) = Min(aRealStep, myMaxV(1));
+ }
+ else
+ {
+ myV(j) = RealLast() / 2.0;
+ computeGlobalExtremum(j - 1);
+
+ // Nullify steps on lower dimensions.
+ for(i = 1; i < j; i++)
+ myV(i) = 0.0;
+ }
+ // Compute step in (j + 1) dimension according to scale.
+ if (j < myN)
+ {
+ Standard_Real aUpperDimStep = myV(j) * myExpandCoeff(j + 1);
+ if (myV(j + 1) > aUpperDimStep)
+ {
+ if (aUpperDimStep > myMaxV(j + 1)) // Case of too big step.
+ myV(j + 1) = myMaxV(j + 1);
+ else
+ myV(j + 1) = aUpperDimStep;
+ }
+ }
+ }
+}
+
+//=======================================================================
+//function : IsInside
+//purpose :
+//=======================================================================
+Standard_Boolean math_GlobOptMin::isInside(const math_Vector& thePnt)
+{
+ Standard_Integer i;
+
+ for(i = 1; i <= myN; i++)
+ {
+ if (thePnt(i) < myGlobA(i) || thePnt(i) > myGlobB(i))
+ return Standard_False;
+ }
+
+ return Standard_True;
+}
+//=======================================================================
+//function : IsStored
+//purpose :
+//=======================================================================
+Standard_Boolean math_GlobOptMin::isStored(const math_Vector& thePnt)
+{
+ Standard_Integer i,j;
+ Standard_Boolean isSame = Standard_True;
+
+ for(i = 0; i < mySolCount; i++)
+ {
+ isSame = Standard_True;
+ for(j = 1; j <= myN; j++)
+ {
+ if ((Abs(thePnt(j) - myY(i * myN + j))) > (myB(j) - myA(j)) * mySameTol)
+ {
+ isSame = Standard_False;
+ break;
+ }
+ }
+ if (isSame == Standard_True)
+ return Standard_True;
+
+ }
+ return Standard_False;
+}
+
+//=======================================================================
+//function : NbExtrema
+//purpose :
+//=======================================================================
+Standard_Integer math_GlobOptMin::NbExtrema()
+{
+ return mySolCount;
+}
+
+//=======================================================================
+//function : GetF
+//purpose :
+//=======================================================================
+Standard_Real math_GlobOptMin::GetF()
+{
+ return myF;
+}
+
+//=======================================================================
+//function : IsDone
+//purpose :
+//=======================================================================
+Standard_Boolean math_GlobOptMin::isDone()
+{
+ return myDone;
+}
+
+//=======================================================================
+//function : Points
+//purpose :
+//=======================================================================
+void math_GlobOptMin::Points(const Standard_Integer theIndex, math_Vector& theSol)
+{
+ Standard_Integer j;
+
+ for(j = 1; j <= myN; j++)
+ theSol(j) = myY((theIndex - 1) * myN + j);
+}
--- /dev/null
+// Created on: 2014-01-20
+// Created by: Alexaner Malyshev
+// Copyright (c) 2014-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _math_GlobOptMin_HeaderFile
+#define _math_GlobOptMin_HeaderFile
+
+#include <math_MultipleVarFunction.hxx>
+#include <NCollection_Sequence.hxx>
+#include <Standard_Type.hxx>
+
+//! This class represents Evtushenko's algorithm of global optimization based on nonuniform mesh.<br>
+//! Article: Yu. Evtushenko. Numerical methods for finding global extreme (case of a non-uniform mesh). <br>
+//! U.S.S.R. Comput. Maths. Math. Phys., Vol. 11, N 6, pp. 38-54.
+
+class math_GlobOptMin
+{
+public:
+
+ Standard_EXPORT math_GlobOptMin(math_MultipleVarFunction* theFunc,
+ const math_Vector& theA,
+ const math_Vector& theB,
+ const Standard_Real theC = 9,
+ const Standard_Real theDiscretizationTol = 1.0e-2,
+ const Standard_Real theSameTol = 1.0e-7);
+
+ Standard_EXPORT void SetGlobalParams(math_MultipleVarFunction* theFunc,
+ const math_Vector& theA,
+ const math_Vector& theB,
+ const Standard_Real theC = 9,
+ const Standard_Real theDiscretizationTol = 1.0e-2,
+ const Standard_Real theSameTol = 1.0e-7);
+
+ Standard_EXPORT void SetLocalParams(const math_Vector& theLocalA,
+ const math_Vector& theLocalB);
+
+ Standard_EXPORT void SetTol(const Standard_Real theDiscretizationTol,
+ const Standard_Real theSameTol);
+
+ Standard_EXPORT void GetTol(Standard_Real& theDiscretizationTol,
+ Standard_Real& theSameTol);
+
+ Standard_EXPORT ~math_GlobOptMin();
+
+ Standard_EXPORT void Perform();
+
+ //! Get best functional value.
+ Standard_EXPORT Standard_Real GetF();
+
+ //! Return count of global extremas.
+ Standard_EXPORT Standard_Integer NbExtrema();
+
+ //! Return solution i, 1 <= i <= NbExtrema.
+ Standard_EXPORT void Points(const Standard_Integer theIndex, math_Vector& theSol);
+
+ Standard_Boolean isDone();
+
+private:
+
+ math_GlobOptMin & operator = (const math_GlobOptMin & theOther);
+
+ Standard_Boolean computeLocalExtremum(const math_Vector& thePnt, Standard_Real& theVal, math_Vector& theOutPnt);
+
+ void computeGlobalExtremum(Standard_Integer theIndex);
+
+ //! Computes starting value / approximation:
+ // myF - initial best value.
+ // myY - initial best point.
+ // myC - approximation of Lipschitz constant.
+ // to imporve convergence speed.
+ void computeInitialValues();
+
+ //! Check that myA <= pnt <= myB
+ Standard_Boolean isInside(const math_Vector& thePnt);
+
+ Standard_Boolean isStored(const math_Vector &thePnt);
+
+ // Input.
+ math_MultipleVarFunction* myFunc;
+ Standard_Integer myN;
+ math_Vector myA; // Left border on current C2 interval.
+ math_Vector myB; // Right border on current C2 interval.
+ math_Vector myGlobA; // Global left border.
+ math_Vector myGlobB; // Global right border.
+ Standard_Real myTol; // Discretization tolerance, default 1.0e-2.
+ Standard_Real mySameTol; // points with ||p1 - p2|| < mySameTol is equal,
+ // function values |val1 - val2| * 0.01 < mySameTol is equal,
+ // default value is 1.0e-7.
+ Standard_Real myC; //Lipschitz constant, default 9
+
+ // Output.
+ Standard_Boolean myDone;
+ NCollection_Sequence<Standard_Real> myY;// Current solutions.
+ Standard_Integer mySolCount; // Count of solutions.
+
+ // Algorithm data.
+ Standard_Real myZ;
+ Standard_Real myE1; // Border coeff.
+ Standard_Real myE2; // Minimum step size.
+ Standard_Real myE3; // Local extrema starting parameter.
+
+ math_Vector myX; // Current modified solution.
+ math_Vector myTmp; // Current modified solution.
+ math_Vector myV; // Steps array.
+ math_Vector myMaxV; // Max Steps array.
+ math_Vector myExpandCoeff; // Define expand coefficient between neighboring indiced dimensions.
+ Standard_Real myF; // Current value of Global optimum.
+};
+
+const Handle(Standard_Type)& TYPE(math_GlobOptMin);
+
+#endif
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
-//#ifndef DEB
#define No_Standard_RangeError
#define No_Standard_OutOfRange
#define No_Standard_DimensionError
-//#endif
-#include <math_IntegerVector.ixx>
+#include <math_IntegerVector.hxx>
#include <Standard_DimensionError.hxx>
#include <Standard_RangeError.hxx>
-
-
-math_IntegerVector::math_IntegerVector(const Standard_Integer First,
- const Standard_Integer Last):
- FirstIndex(First),
- LastIndex(Last),
- Array(First, Last) {
-
- Standard_RangeError_Raise_if(First > Last, " ");
+math_IntegerVector::math_IntegerVector(const Standard_Integer theFirst, const Standard_Integer theLast) :
+ FirstIndex(theFirst),
+ LastIndex(theLast),
+ Array(theFirst, theLast)
+{
+ Standard_RangeError_Raise_if(theFirst > theLast, " ");
}
-math_IntegerVector::math_IntegerVector(const Standard_Integer First,
- const Standard_Integer Last,
- const Standard_Integer InitialValue):
- FirstIndex(First),
- LastIndex(Last),
- Array(First, Last) {
-
- Standard_RangeError_Raise_if(First > Last, " ");
- Array.Init(InitialValue);
+math_IntegerVector::math_IntegerVector(const Standard_Integer theFirst,
+ const Standard_Integer theLast,
+ const Standard_Integer theInitialValue) :
+ FirstIndex(theFirst),
+ LastIndex(theLast),
+ Array(theFirst, theLast)
+{
+ Standard_RangeError_Raise_if(theFirst > theLast, " ");
+ Array.Init(theInitialValue);
}
-
-math_IntegerVector::math_IntegerVector(const Standard_Address Tab,
- const Standard_Integer First,
- const Standard_Integer Last) :
- FirstIndex(First),
- LastIndex(Last),
- Array(*((const Standard_Integer *)Tab),
- First, Last)
+math_IntegerVector::math_IntegerVector(const Standard_Address theTab,
+ const Standard_Integer theFirst,
+ const Standard_Integer theLast) :
+ FirstIndex(theFirst),
+ LastIndex(theLast),
+ Array(theTab, theFirst, theLast)
{
- Standard_RangeError_Raise_if(First > Last, " ");
+ Standard_RangeError_Raise_if(theFirst > theLast, " ");
}
-
-void math_IntegerVector::Init(const Standard_Integer InitialValue)
+void math_IntegerVector::Init(const Standard_Integer theInitialValue)
{
- Array.Init(InitialValue);
+ Array.Init(theInitialValue);
}
-
-math_IntegerVector::math_IntegerVector(const math_IntegerVector& Other):
-
- FirstIndex(Other.FirstIndex),
- LastIndex(Other.LastIndex),
- Array(Other.Array) {}
-
-
-
-void math_IntegerVector::SetFirst(const Standard_Integer First) {
-
- Array.SetLower(First);
- LastIndex = LastIndex - FirstIndex + First;
- FirstIndex = First;
+math_IntegerVector::math_IntegerVector(const math_IntegerVector& theOther) :
+ FirstIndex(theOther.FirstIndex),
+ LastIndex(theOther.LastIndex),
+ Array(theOther.Array)
+{
}
+void math_IntegerVector::SetFirst(const Standard_Integer theFirst)
+{
+ Array.SetLower(theFirst);
+ LastIndex = LastIndex - FirstIndex + theFirst;
+ FirstIndex = theFirst;
+}
-Standard_Real math_IntegerVector::Norm() const {
+Standard_Real math_IntegerVector::Norm() const
+{
Standard_Real Result = 0;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
Result = Result + Array(Index) * Array(Index);
}
return Sqrt(Result);
}
-
-Standard_Real math_IntegerVector::Norm2() const {
+Standard_Real math_IntegerVector::Norm2() const
+{
Standard_Real Result = 0;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
Result = Result + Array(Index) * Array(Index);
}
return Result;
}
-
-Standard_Integer math_IntegerVector::Max() const {
+Standard_Integer math_IntegerVector::Max() const
+{
Standard_Integer I=0;
Standard_Real X = RealFirst();
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- if(Array(Index) > X) {
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ if(Array(Index) > X)
+ {
X = Array(Index);
I = Index;
}
return I;
}
-
-Standard_Integer math_IntegerVector::Min() const {
+Standard_Integer math_IntegerVector::Min() const
+{
Standard_Integer I=0;
Standard_Real X = RealLast();
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- if(Array(Index) < X) {
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ if(Array(Index) < X)
+ {
X = Array(Index);
I = Index;
}
return I;
}
-
-void math_IntegerVector::Invert() {
-
+void math_IntegerVector::Invert()
+{
Standard_Integer J;
Standard_Integer Temp;
-
- for(Standard_Integer Index = FirstIndex;
- Index <= FirstIndex + Length() / 2 ; Index++) {
- J = LastIndex + FirstIndex - Index;
- Temp = Array(Index);
- Array(Index) = Array(J);
- Array(J) = Temp;
+
+ for(Standard_Integer Index = FirstIndex; Index <= FirstIndex + Length() / 2 ; Index++)
+ {
+ J = LastIndex + FirstIndex - Index;
+ Temp = Array(Index);
+ Array(Index) = Array(J);
+ Array(J) = Temp;
}
}
-
-math_IntegerVector math_IntegerVector::Inverse() const {
-
+math_IntegerVector math_IntegerVector::Inverse() const
+{
math_IntegerVector Result = *this;
Result.Invert();
return Result;
}
+void math_IntegerVector::Set(const Standard_Integer theI1,
+ const Standard_Integer theI2,
+ const math_IntegerVector &theV)
+{
+ Standard_DimensionError_Raise_if((theI1 < FirstIndex) || (theI2 > LastIndex) ||
+ (theI1 > theI2) || (theI2 - theI1 + 1 != theV.Length()), " ");
-void math_IntegerVector::Set(const Standard_Integer I1,
- const Standard_Integer I2,
- const math_IntegerVector &V) {
-
- Standard_DimensionError_Raise_if((I1 < FirstIndex) ||
- (I2 > LastIndex) ||
- (I1 > I2) ||
- (I2 - I1 + 1 != V.Length()), " ");
-
- Standard_Integer I = V.Lower();
- for(Standard_Integer Index = I1; Index <= I2; Index++) {
- Array(Index) = V.Array(I);
+ Standard_Integer I = theV.Lower();
+ for(Standard_Integer Index = theI1; Index <= theI2; Index++)
+ {
+ Array(Index) = theV.Array(I);
I++;
}
}
-
-void math_IntegerVector::Multiply(const Standard_Integer Right) {
-
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Array(Index) = Array(Index) * Right;
+void math_IntegerVector::Multiply(const Standard_Integer theRight)
+{
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Array(Index) = Array(Index) * theRight;
}
}
+void math_IntegerVector::Add(const math_IntegerVector& theRight)
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), " ");
-void math_IntegerVector::Add(const math_IntegerVector& Right) {
-
- Standard_DimensionError_Raise_if(Length() != Right.Length(), " ");
-
- Standard_Integer I = Right.FirstIndex;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Array(Index) = Array(Index) + Right.Array(I);
+ Standard_Integer I = theRight.FirstIndex;
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Array(Index) = Array(Index) + theRight.Array(I);
I++;
}
-}
-
+}
-void math_IntegerVector::Subtract(const math_IntegerVector& Right) {
-
- Standard_DimensionError_Raise_if(Length() != Right.Length(), " ");
- Standard_Integer I = Right.FirstIndex;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Array(Index) = Array(Index) - Right.Array(I);
+void math_IntegerVector::Subtract(const math_IntegerVector& theRight)
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), " ");
+ Standard_Integer I = theRight.FirstIndex;
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Array(Index) = Array(Index) - theRight.Array(I);
I++;
}
-}
-
-
-math_IntegerVector math_IntegerVector::Slice(const Standard_Integer I1,
- const Standard_Integer I2) const {
-
- Standard_DimensionError_Raise_if((I1 < FirstIndex) || (I1 > LastIndex) ||
- (I2 < FirstIndex) || (I2 > LastIndex),
- " ");
+}
- if(I2 >= I1) {
- math_IntegerVector Result(I1, I2);
- for(Standard_Integer Index = I1; Index <= I2; Index++) {
+math_IntegerVector math_IntegerVector::Slice(const Standard_Integer theI1,
+ const Standard_Integer theI2) const
+{
+ Standard_DimensionError_Raise_if((theI1 < FirstIndex) || (theI1 > LastIndex) ||
+ (theI2 < FirstIndex) || (theI2 > LastIndex), " ");
+
+ if(theI2 >= theI1)
+ {
+ math_IntegerVector Result(theI1, theI2);
+ for(Standard_Integer Index = theI1; Index <= theI2; Index++)
+ {
Result.Array(Index) = Array(Index);
- }
- return Result;
+ }
+ return Result;
}
- else {
- math_IntegerVector Result(I2, I1);
- for(Standard_Integer Index = I1; Index >= I2; Index--) {
+ else
+ {
+ math_IntegerVector Result(theI2, theI1);
+ for(Standard_Integer Index = theI1; Index >= theI2; Index--)
+ {
Result.Array(Index) = Array(Index);
}
return Result;
- }
+ }
}
-Standard_Integer math_IntegerVector::Multiplied (const math_IntegerVector& Right) const {
-
+Standard_Integer math_IntegerVector::Multiplied (const math_IntegerVector& theRight) const
+{
Standard_Integer Result = 0;
-
- Standard_DimensionError_Raise_if(Length() != Right.Length(), " ");
- Standard_Integer I = Right.FirstIndex;
- for(Standard_Integer Index = 0; Index < Length(); Index++) {
- Result = Result + Array(Index) * Right.Array(I);
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), " ");
+
+ Standard_Integer I = theRight.FirstIndex;
+ for(Standard_Integer Index = 0; Index < Length(); Index++)
+ {
+ Result = Result + Array(Index) * theRight.Array(I);
I++;
}
return Result;
-}
-
+}
-math_IntegerVector math_IntegerVector::Multiplied (const Standard_Integer Right)const {
-
+math_IntegerVector math_IntegerVector::Multiplied (const Standard_Integer theRight)const
+{
math_IntegerVector Result(FirstIndex, LastIndex);
-
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Result.Array(Index) = Array(Index) * Right;
+
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) * theRight;
}
return Result;
-}
-
-math_IntegerVector math_IntegerVector::TMultiplied (const Standard_Integer Right)const {
-
+}
+
+math_IntegerVector math_IntegerVector::TMultiplied (const Standard_Integer theRight) const
+{
math_IntegerVector Result(FirstIndex, LastIndex);
-
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Result.Array(Index) = Array(Index) * Right;
+
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) * theRight;
}
return Result;
-}
-
+}
+
+math_IntegerVector math_IntegerVector::Added (const math_IntegerVector& theRight) const
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), " ");
-math_IntegerVector math_IntegerVector::Added (const math_IntegerVector& Right) const {
-
- Standard_DimensionError_Raise_if(Length() != Right.Length(), " ");
-
math_IntegerVector Result(FirstIndex, LastIndex);
-
- Standard_Integer I = Right.FirstIndex;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Result.Array(Index) = Array(Index) + Right.Array(I);
+
+ Standard_Integer I = theRight.FirstIndex;
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) + theRight.Array(I);
I++;
}
return Result;
-}
-
+}
-
-math_IntegerVector math_IntegerVector::Opposite() {
-
+math_IntegerVector math_IntegerVector::Opposite()
+{
math_IntegerVector Result(FirstIndex, LastIndex);
-
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
+
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
Result.Array(Index) = - Array(Index);
}
return Result;
-}
-
+}
+
+math_IntegerVector math_IntegerVector::Subtracted (const math_IntegerVector& theRight) const
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), " ");
-math_IntegerVector math_IntegerVector::Subtracted (const math_IntegerVector& Right) const {
-
- Standard_DimensionError_Raise_if(Length() != Right.Length(), " ");
-
math_IntegerVector Result(FirstIndex, LastIndex);
-
- Standard_Integer I = Right.FirstIndex;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Result.Array(Index) = Array(Index) - Right.Array(I);
+
+ Standard_Integer I = theRight.FirstIndex;
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) - theRight.Array(I);
I++;
}
return Result;
-}
-
-void math_IntegerVector::Add (const math_IntegerVector& Left,
- const math_IntegerVector& Right) {
-
- Standard_DimensionError_Raise_if((Length() != Right.Length()) ||
- (Right.Length() != Left.Length()), " ");
-
- Standard_Integer I = Left.FirstIndex;
- Standard_Integer J = Right.FirstIndex;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Array(Index) = Left.Array(I) + Right.Array(J);
+}
+
+void math_IntegerVector::Add (const math_IntegerVector& theLeft, const math_IntegerVector& theRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theRight.Length()) ||
+ (theRight.Length() != theLeft.Length()), " ");
+
+ Standard_Integer I = theLeft.FirstIndex;
+ Standard_Integer J = theRight.FirstIndex;
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Array(Index) = theLeft.Array(I) + theRight.Array(J);
I++;
J++;
}
-}
-
-
-void math_IntegerVector::Subtract (const math_IntegerVector& Left,
- const math_IntegerVector& Right) {
-
- Standard_DimensionError_Raise_if((Length() != Right.Length()) ||
- (Right.Length() != Left.Length()), " ");
-
- Standard_Integer I = Left.FirstIndex;
- Standard_Integer J = Right.FirstIndex;
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- Array(Index) = Left.Array(I) - Right.Array(J);
+}
+
+void math_IntegerVector::Subtract (const math_IntegerVector& theLeft,
+ const math_IntegerVector& theRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theRight.Length()) ||
+ (theRight.Length() != theLeft.Length()), " ");
+
+ Standard_Integer I = theLeft.FirstIndex;
+ Standard_Integer J = theRight.FirstIndex;
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ Array(Index) = theLeft.Array(I) - theRight.Array(J);
I++;
J++;
}
-}
-
+}
-void math_IntegerVector::Multiply(const Standard_Integer Left,
- const math_IntegerVector& Right)
+void math_IntegerVector::Multiply(const Standard_Integer theLeft, const math_IntegerVector& theRight)
{
- Standard_DimensionError_Raise_if((Length() != Right.Length()),
- " ");
- for(Standard_Integer I = FirstIndex; I <= LastIndex; I++) {
- Array(I) = Left * Right.Array(I);
+ Standard_DimensionError_Raise_if((Length() != theRight.Length()), " ");
+ for(Standard_Integer I = FirstIndex; I <= LastIndex; I++)
+ {
+ Array(I) = theLeft * theRight.Array(I);
}
}
+math_IntegerVector& math_IntegerVector::Initialized(const math_IntegerVector& theOther)
+{
+ Standard_DimensionError_Raise_if(Length() != theOther.Length(), " ");
-math_IntegerVector& math_IntegerVector::Initialized (const math_IntegerVector& Other) {
-
- Standard_DimensionError_Raise_if(Length() != Other.Length(), " ");
-
- (Other.Array).Copy(Array);
+ (theOther.Array).Copy(Array);
return *this;
}
-
-
-void math_IntegerVector::Dump(Standard_OStream& o) const
+void math_IntegerVector::Dump(Standard_OStream& theO) const
{
- o << "math_IntegerVector of Range = " << Length() << "\n";
- for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++) {
- o << "math_IntegerVector(" << Index << ") = " << Array(Index) << "\n";
- }
+ theO << "math_IntegerVector of Range = " << Length() << "\n";
+ for(Standard_Integer Index = FirstIndex; Index <= LastIndex; Index++)
+ {
+ theO << "math_IntegerVector(" << Index << ") = " << Array(Index) << "\n";
+ }
}
-
-
-
-
-
--- /dev/null
+// Copyright (c) 1997-1999 Matra Datavision
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _math_IntegerVector_HeaderFile
+#define _math_IntegerVector_HeaderFile
+
+#include <math_SingleTab.hxx>
+
+class Standard_DimensionError;
+class Standard_DivideByZero;
+class Standard_RangeError;
+class math_Matrix;
+
+//! This class implements the real IntegerVector abstract data type.
+//! IntegerVectors can have an arbitrary range which must be define at
+//! the declaration and cannot be changed after this declaration.
+//! Example:
+//! @code
+//! math_IntegerVector V1(-3, 5); // an IntegerVector with range [-3..5]
+//! @endcode
+//!
+//! IntegerVector is copied through assignement :
+//! @code
+//! math_IntegerVector V2( 1, 9);
+//! ....
+//! V2 = V1;
+//! V1(1) = 2.0; // the IntegerVector V2 will not be modified.
+//! @endcode
+//!
+//! The Exception RangeError is raised when trying to access outside
+//! the range of an IntegerVector :
+//! @code
+//! V1(11) = 0 // --> will raise RangeError;
+//! @endcode
+//!
+//! The Exception DimensionError is raised when the dimensions of two
+//! IntegerVectors are not compatible :
+//! @code
+//! math_IntegerVector V3(1, 2);
+//! V3 = V1; // --> will raise DimensionError;
+//! V1.Add(V3) // --> will raise DimensionError;
+//! @endcode
+class math_IntegerVector
+{
+public:
+
+ DEFINE_STANDARD_ALLOC
+
+ //! contructs an IntegerVector in the range [Lower..Upper]
+ Standard_EXPORT math_IntegerVector(const Standard_Integer theFirst, const Standard_Integer theLast);
+
+ //! contructs an IntegerVector in the range [Lower..Upper]
+ //! with all the elements set to theInitialValue.
+ Standard_EXPORT math_IntegerVector(const Standard_Integer theFirst, const Standard_Integer theLast, const Standard_Integer theInitialValue);
+
+ //! Initialize an IntegerVector with all the elements
+ //! set to theInitialValue.
+ Standard_EXPORT void Init(const Standard_Integer theInitialValue);
+
+ //! constructs an IntegerVector in the range [Lower..Upper]
+ //! which share the "c array" theTab.
+ Standard_EXPORT math_IntegerVector(const Standard_Address theTab, const Standard_Integer theFirst, const Standard_Integer theLast);
+
+ //! constructs a copy for initialization.
+ //! An exception is raised if the lengths of the IntegerVectors
+ //! are different.
+ Standard_EXPORT math_IntegerVector(const math_IntegerVector& theOther);
+
+ //! returns the length of an IntegerVector
+ inline Standard_Integer Length() const
+ {
+ return LastIndex - FirstIndex +1;
+ }
+
+ //! returns the value of the Lower index of an IntegerVector.
+ inline Standard_Integer Lower() const
+ {
+ return FirstIndex;
+ }
+
+ //! returns the value of the Upper index of an IntegerVector.
+ inline Standard_Integer Upper() const
+ {
+ return LastIndex;
+ }
+
+ //! returns the value of the norm of an IntegerVector.
+ Standard_EXPORT Standard_Real Norm() const;
+
+ //! returns the value of the square of the norm of an IntegerVector.
+ Standard_EXPORT Standard_Real Norm2() const;
+
+ //! returns the value of the Index of the maximum element of an IntegerVector.
+ Standard_EXPORT Standard_Integer Max() const;
+
+ //! returns the value of the Index of the minimum element of an IntegerVector.
+ Standard_EXPORT Standard_Integer Min() const;
+
+ //! inverses an IntegerVector.
+ Standard_EXPORT void Invert();
+
+ //! returns the inverse IntegerVector of an IntegerVector.
+ Standard_EXPORT math_IntegerVector Inverse() const;
+
+ //! sets an IntegerVector from "theI1" to "theI2" to the IntegerVector "theV";
+ //! An exception is raised if "theI1" is less than "LowerIndex" or "theI2" is greater than "UpperIndex" or "theI1" is greater than "theI2".
+ //! An exception is raised if "theI2-theI1+1" is different from the Length of "theV".
+ Standard_EXPORT void Set(const Standard_Integer theI1, const Standard_Integer theI2, const math_IntegerVector& theV);
+
+ //! slices the values of the IntegerVector between "theI1" and "theI2":
+ //! Example: [2, 1, 2, 3, 4, 5] becomes [2, 4, 3, 2, 1, 5] between 2 and 5.
+ //! An exception is raised if "theI1" is less than "LowerIndex" or "theI2" is greater than "UpperIndex".
+ Standard_EXPORT math_IntegerVector Slice(const Standard_Integer theI1, const Standard_Integer theI2) const;
+
+ //! returns the product of an IntegerVector by an integer value.
+ Standard_EXPORT void Multiply(const Standard_Integer theRight);
+
+ void operator *=(const Standard_Integer theRight)
+ {
+ Multiply(theRight);
+ }
+
+ //! returns the product of an IntegerVector by an integer value.
+ Standard_EXPORT math_IntegerVector Multiplied(const Standard_Integer theRight) const;
+
+ math_IntegerVector operator*(const Standard_Integer theRight) const
+ {
+ return Multiplied(theRight);
+ }
+
+ //! returns the product of a vector and a real value.
+ Standard_EXPORT math_IntegerVector TMultiplied(const Standard_Integer theRight) const;
+
+ friend inline math_IntegerVector operator* (const Standard_Integer theLeft, const math_IntegerVector& theRight)
+ {
+ return theRight.Multiplied(theLeft);
+ }
+
+ //! adds the IntegerVector "theRight" to an IntegerVector.
+ //! An exception is raised if the IntegerVectors have not the same length.
+ //! An exception is raised if the lengths are not equal.
+ Standard_EXPORT void Add(const math_IntegerVector& theRight);
+
+ void operator +=(const math_IntegerVector& theRight)
+ {
+ Add(theRight);
+ }
+
+ //! adds the IntegerVector "theRight" to an IntegerVector.
+ //! An exception is raised if the IntegerVectors have not the same length.
+ //! An exception is raised if the lengths are not equal.
+ Standard_EXPORT math_IntegerVector Added(const math_IntegerVector& theRight) const;
+
+ math_IntegerVector operator+(const math_IntegerVector& theRight) const
+ {
+ return Added(theRight);
+ }
+
+ //! sets an IntegerVector to the sum of the IntegerVector
+ //! "theLeft" and the IntegerVector "theRight".
+ //! An exception is raised if the lengths are different.
+ Standard_EXPORT void Add(const math_IntegerVector& theLeft, const math_IntegerVector& theRight);
+
+ //! sets an IntegerVector to the substraction of "theRight" from "theLeft".
+ //! An exception is raised if the IntegerVectors have not the same length.
+ Standard_EXPORT void Subtract(const math_IntegerVector& theLeft, const math_IntegerVector& theRight);
+
+ //! accesses (in read or write mode) the value of index theNum of an IntegerVector.
+ inline Standard_Integer& Value(const Standard_Integer theNum) const
+ {
+ Standard_RangeError_Raise_if(theNum < FirstIndex || theNum > LastIndex, " ");
+ return Array(theNum);
+ }
+
+ Standard_EXPORT Standard_Integer& operator()(const Standard_Integer theNum) const
+ {
+ return Value(theNum);
+ }
+
+ //! Initialises an IntegerVector by copying "theOther".
+ //! An exception is raised if the Lengths are different.
+ Standard_EXPORT math_IntegerVector& Initialized(const math_IntegerVector& theOther);
+
+ math_IntegerVector& operator=(const math_IntegerVector& theOther)
+ {
+ return Initialized(theOther);
+ }
+
+ //! returns the inner product of 2 IntegerVectors.
+ //! An exception is raised if the lengths are not equal.
+ Standard_EXPORT Standard_Integer Multiplied(const math_IntegerVector& theRight) const;
+
+ Standard_Integer operator*(const math_IntegerVector& theRight) const
+ {
+ return Multiplied(theRight);
+ }
+
+ //! returns the opposite of an IntegerVector.
+ Standard_EXPORT math_IntegerVector Opposite();
+
+ math_IntegerVector operator-()
+ {
+ return Opposite();
+ }
+
+ //! returns the subtraction of "theRight" from "me".
+ //! An exception is raised if the IntegerVectors have not the same length.
+ Standard_EXPORT void Subtract(const math_IntegerVector& theRight);
+
+ void operator-=(const math_IntegerVector& theRight)
+ {
+ Subtract(theRight);
+ }
+
+ //! returns the subtraction of "theRight" from "me".
+ //! An exception is raised if the IntegerVectors have not the same length.
+ Standard_EXPORT math_IntegerVector Subtracted(const math_IntegerVector& theRight) const;
+
+ math_IntegerVector operator-(const math_IntegerVector& theRight) const
+ {
+ return Subtracted(theRight);
+ }
+
+ //! returns the multiplication of an integer by an IntegerVector.
+ Standard_EXPORT void Multiply(const Standard_Integer theLeft,const math_IntegerVector& theRight);
+
+ //! Prints on the stream theO information on the current state of the object.
+ //! Is used to redefine the operator <<.
+ Standard_EXPORT void Dump(Standard_OStream& theO) const;
+
+ friend inline Standard_OStream& operator<<(Standard_OStream& theO, const math_IntegerVector& theVec)
+ {
+ theVec.Dump(theO);
+ return theO;
+ }
+
+protected:
+
+ //! is used internally to set the Lower value of the IntegerVector.
+ void SetFirst(const Standard_Integer theFirst);
+
+private:
+
+ Standard_Integer FirstIndex;
+ Standard_Integer LastIndex;
+ math_SingleTab<Standard_Integer> Array;
+};
+
+#endif
+
uses Vector from math,
- DoubleTabOfReal from math,
+ DoubleTab from math,
OStream from Standard
raises DimensionError from Standard, RangeError from Standard,
UpperRowIndex: Integer;
LowerColIndex: Integer;
UpperColIndex: Integer;
-Array: DoubleTabOfReal;
+Array: DoubleTab;
friends
class Vector from math
UpperRowIndex(UpperRow),
LowerColIndex(LowerCol),
UpperColIndex(UpperCol),
- Array(*((const Standard_Real *)Tab),
- LowerRow, UpperRow,
- LowerCol, UpperCol)
+ Array(Tab, LowerRow, UpperRow, LowerCol, UpperCol)
{
Standard_RangeError_Raise_if((LowerRow > UpperRow) ||
uses Vector from math
is
+ Delete(me:out) is virtual;
+ ---C++: alias "Standard_EXPORT virtual ~math_MultipleVarFunction(){Delete();}"
NbVariables(me)
---Purpose:
#include <math_MultipleVarFunction.ixx>
Standard_Integer math_MultipleVarFunction::GetStateNumber() { return 0; }
+
+void math_MultipleVarFunction::Delete()
+{}
is
- Delete(me:out) is virtual;
+ Delete(me:out) is redefined virtual;
---C++: alias "Standard_EXPORT virtual ~math_MultipleVarFunctionWithGradient(){Delete();}"
NbVariables(me)
is
+ Delete(me:out) is redefined virtual;
+ ---C++: alias "Standard_EXPORT virtual ~math_MultipleVarFunctionWithHessian(){Delete();}"
+
NbVariables(me)
---Purpose: returns the number of variables of the function.
// commercial license or contractual agreement.
#include <math_MultipleVarFunctionWithHessian.ixx>
+
+void math_MultipleVarFunctionWithHessian::Delete()
+{}
}
LU.Solve(TheGradient, TheStep);
- *suivant = *precedent - TheStep;
-
-
- // Gestion de la convergence
-
- F.Value(*suivant, TheMinimum);
+ Standard_Boolean hasProblem = Standard_False;
+ do
+ {
+ *suivant = *precedent - TheStep;
+
+ // Gestion de la convergence
+ hasProblem = !(F.Value(*suivant, TheMinimum));
+
+ if (hasProblem)
+ {
+ TheStep /= 2.0;
+ }
+ } while (hasProblem);
if (IsConverged()) { NbConv++; }
else { NbConv=0; }
--- /dev/null
+// Copyright (c) 1997-1999 Matra Datavision
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _math_SingleTab_HeaderFile
+#define _math_SingleTab_HeaderFile
+
+#include <math_Memory.hxx>
+#include <Standard_OutOfRange.hxx>
+#include <Standard_Failure.hxx>
+
+static const Standard_Integer aLengthOfBuf = 512;
+
+template<class T> class math_SingleTab
+{
+public:
+
+ DEFINE_STANDARD_ALLOC
+
+ math_SingleTab(const Standard_Integer LowerIndex, const Standard_Integer UpperIndex) :
+ Addr(Buf),
+ isAllocated(UpperIndex - LowerIndex + 1 > aLengthOfBuf),
+ First(LowerIndex), Last(UpperIndex)
+ {
+ T* TheAddr = !isAllocated? Buf :
+ (T*) Standard::Allocate((Last-First+1) * sizeof(T));
+ Addr = (Standard_Address) (TheAddr - First);
+ }
+
+ math_SingleTab(const Standard_Address Tab, const Standard_Integer LowerIndex, const Standard_Integer UpperIndex) :
+ Addr((void*)((const T*)Tab - LowerIndex)),
+ isAllocated(Standard_False),
+ First(LowerIndex), Last(UpperIndex)
+ {
+ }
+
+ void Init(const T InitValue)
+ {
+ for(Standard_Integer i = First; i<= Last; i++)
+ {
+ ((T*)Addr)[i] = InitValue;
+ }
+ }
+
+ math_SingleTab(const math_SingleTab& Other) :
+ isAllocated(Other.Last - Other.First + 1 > aLengthOfBuf),
+ First(Other.First),
+ Last(Other.Last)
+ {
+ T* TheAddr = !isAllocated? Buf : (T*) Standard::Allocate((Last-First+1) * sizeof(T));
+ Addr = (Standard_Address) (TheAddr - First);
+ T* TheOtherAddr = (T*) Other.Addr;
+ memmove((void*) TheAddr, (const void*) (TheOtherAddr + First), (size_t)(Last - First + 1) * sizeof(T));
+ }
+
+ inline void Copy(math_SingleTab& Other) const
+ {
+ memmove((void*) (((T*)Other.Addr) + Other.First),
+ (const void*) (((T*)Addr) + First),
+ (size_t)(Last - First + 1) * sizeof(T));
+ }
+
+ void SetLower(const Standard_Integer LowerIndex)
+ {
+ T* TheAddr = (T*) Addr;
+ Addr = (Standard_Address) (TheAddr + First - LowerIndex);
+ Last = Last - First + LowerIndex;
+ First = LowerIndex;
+ }
+
+ inline T& Value(const Standard_Integer Index) const
+ {
+ return ((T*)Addr)[Index];
+ }
+
+ T& operator()(const Standard_Integer Index) const
+ {
+ return Value(Index);
+ }
+
+ void Free()
+ {
+ if(isAllocated)
+ {
+ Standard_Address it = (Standard_Address)&((T*)Addr)[First];
+ Standard::Free(it);
+ Addr = 0;
+ }
+ }
+
+ ~math_SingleTab()
+ {
+ Free();
+ }
+
+private:
+
+ Standard_Address Addr;
+ T Buf[aLengthOfBuf];
+ Standard_Boolean isAllocated;
+ Standard_Integer First;
+ Standard_Integer Last;
+};
+
+#endif
#include <stdio.h>
-#include <math_Vector.ixx>
+#include <math_Vector.hxx>
#include <math_Matrix.hxx>
#include <Standard_DimensionError.hxx>
#include <Standard_RangeError.hxx>
#include <Standard_NullValue.hxx>
-
-math_Vector::math_Vector(const Standard_Integer Lower,
- const Standard_Integer Upper):
-
- LowerIndex(Lower),
- UpperIndex(Upper),
- Array(Lower,Upper) {
- Standard_RangeError_Raise_if(Lower > Upper, "");
- }
-
-math_Vector::math_Vector(const Standard_Integer Lower,
- const Standard_Integer Upper,
- const Standard_Real InitialValue):
-
- LowerIndex(Lower),
- UpperIndex(Upper),
- Array(Lower,Upper)
+math_Vector::math_Vector(const Standard_Integer theLower, const Standard_Integer theUpper) :
+ LowerIndex(theLower),
+ UpperIndex(theUpper),
+ Array(theLower,theUpper)
{
- Standard_RangeError_Raise_if(Lower > Upper, "");
- Array.Init(InitialValue);
+ Standard_RangeError_Raise_if(theLower > theUpper, "");
}
-math_Vector::math_Vector(const Standard_Address Tab,
- const Standard_Integer Lower,
- const Standard_Integer Upper) :
-
- LowerIndex(Lower),
- UpperIndex(Upper),
- Array(*((const Standard_Real *)Tab), Lower,Upper)
+math_Vector::math_Vector(const Standard_Integer theLower,
+ const Standard_Integer theUpper,
+ const Standard_Real theInitialValue):
+ LowerIndex(theLower),
+ UpperIndex(theUpper),
+ Array(theLower,theUpper)
{
- Standard_RangeError_Raise_if((Lower > Upper) , "");
+ Standard_RangeError_Raise_if(theLower > theUpper, "");
+ Array.Init(theInitialValue);
}
-void math_Vector::Init(const Standard_Real InitialValue) {
- Array.Init(InitialValue);
+math_Vector::math_Vector(const Standard_Address theTab,
+ const Standard_Integer theLower,
+ const Standard_Integer theUpper) :
+ LowerIndex(theLower),
+ UpperIndex(theUpper),
+ Array(theTab, theLower,theUpper)
+{
+ Standard_RangeError_Raise_if((theLower > theUpper) , "");
}
-math_Vector::math_Vector(const math_Vector& Other):
-
-LowerIndex(Other.LowerIndex),
-UpperIndex(Other.UpperIndex),
-Array(Other.Array) {}
-
-
-void math_Vector::SetLower(const Standard_Integer Lower) {
+void math_Vector::Init(const Standard_Real theInitialValue)
+{
+ Array.Init(theInitialValue);
+}
- Array.SetLower(Lower);
- UpperIndex = UpperIndex - LowerIndex + Lower;
- LowerIndex = Lower;
+math_Vector::math_Vector(const math_Vector& theOther) :
+ LowerIndex(theOther.LowerIndex),
+ UpperIndex(theOther.UpperIndex),
+ Array(theOther.Array)
+{
}
-Standard_Real math_Vector::Norm() const {
+void math_Vector::SetLower(const Standard_Integer theLower)
+{
+ Array.SetLower(theLower);
+ UpperIndex = UpperIndex - LowerIndex + theLower;
+ LowerIndex = theLower;
+}
+Standard_Real math_Vector::Norm() const
+{
Standard_Real Result = 0;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
Result = Result + Array(Index) * Array(Index);
}
return Sqrt(Result);
}
-Standard_Real math_Vector::Norm2() const {
-
+Standard_Real math_Vector::Norm2() const
+{
Standard_Real Result = 0;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
Result = Result + Array(Index) * Array(Index);
}
return Result;
}
-Standard_Integer math_Vector::Max() const {
-
+Standard_Integer math_Vector::Max() const
+{
Standard_Integer I=0;
Standard_Real X = RealFirst();
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- if(Array(Index) > X) {
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ if(Array(Index) > X)
+ {
X = Array(Index);
I = Index;
}
return I;
}
-Standard_Integer math_Vector::Min() const {
-
+Standard_Integer math_Vector::Min() const
+{
Standard_Integer I=0;
Standard_Real X = RealLast();
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- if(Array(Index) < X) {
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ if(Array(Index) < X)
+ {
X = Array(Index);
I = Index;
}
return I;
}
-void math_Vector::Set(const Standard_Integer I1,
- const Standard_Integer I2,
- const math_Vector &V) {
+void math_Vector::Set(const Standard_Integer theI1,
+ const Standard_Integer theI2,
+ const math_Vector &theV)
+{
+ Standard_RangeError_Raise_if((theI1 < LowerIndex) || (theI2 > UpperIndex) ||
+ (theI1 > theI2) || (theI2 - theI1 + 1 != theV.Length()), "");
- Standard_RangeError_Raise_if((I1 < LowerIndex) ||
- (I2 > UpperIndex) ||
- (I1 > I2) ||
- (I2 - I1 + 1 != V.Length()), "");
-
- Standard_Integer I = V.Lower();
- for(Standard_Integer Index = I1; Index <= I2; Index++) {
- Array(Index) = V.Array(I);
+ Standard_Integer I = theV.Lower();
+ for(Standard_Integer Index = theI1; Index <= theI2; Index++)
+ {
+ Array(Index) = theV.Array(I);
I++;
}
}
-void math_Vector::Normalize() {
-
+void math_Vector::Normalize()
+{
Standard_Real Result = Norm();
Standard_NullValue_Raise_if((Result <= RealEpsilon()), "");
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
Array(Index) = Array(Index) / Result;
}
}
-math_Vector math_Vector::Normalized() const {
-
+math_Vector math_Vector::Normalized() const
+{
math_Vector Result = *this;
Result.Normalize();
return Result;
}
-void math_Vector::Invert() {
+void math_Vector::Invert()
+{
Standard_Integer J;
Standard_Real Temp;
- for(Standard_Integer Index = LowerIndex;
-// Index <= LowerIndex + (Length()) >> 1 ; Index++) {
- Index <= (LowerIndex + Length()) >> 1 ; Index++) {
+ for(Standard_Integer Index = LowerIndex; Index <= (LowerIndex + Length()) >> 1 ; Index++)
+ {
J = UpperIndex + LowerIndex - Index;
Temp = Array(Index);
Array(Index) = Array(J);
}
}
-math_Vector math_Vector::Inverse() const {
+math_Vector math_Vector::Inverse() const
+{
math_Vector Result = *this;
Result.Invert();
return Result;
}
-math_Vector math_Vector::Multiplied(const Standard_Real Right) const{
-
+math_Vector math_Vector::Multiplied(const Standard_Real theRight) const
+{
math_Vector Result (LowerIndex, UpperIndex);
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Result.Array(Index) = Array(Index) * Right;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) * theRight;
}
return Result;
}
-math_Vector math_Vector::TMultiplied(const Standard_Real Right) const{
-
+math_Vector math_Vector::TMultiplied(const Standard_Real theRight) const
+{
math_Vector Result (LowerIndex, UpperIndex);
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Result.Array(Index) = Array(Index) * Right;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) * theRight;
}
return Result;
}
-
-void math_Vector::Multiply(const Standard_Real Right) {
-
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Array(Index) = Array(Index) * Right;
+void math_Vector::Multiply(const Standard_Real theRight)
+{
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Array(Index) = Array(Index) * theRight;
}
}
+void math_Vector::Divide(const Standard_Real theRight)
+{
+ Standard_DivideByZero_Raise_if(Abs(theRight) <= RealEpsilon(), "");
-void math_Vector::Divide(const Standard_Real Right) {
-
- Standard_DivideByZero_Raise_if(Abs(Right) <= RealEpsilon(), "");
-
- for(Standard_Integer Index =LowerIndex; Index <=UpperIndex; Index++) {
- Array(Index) = Array(Index) / Right;
+ for(Standard_Integer Index =LowerIndex; Index <=UpperIndex; Index++)
+ {
+ Array(Index) = Array(Index) / theRight;
}
}
-
-math_Vector math_Vector::Divided (const Standard_Real Right) const {
-
- Standard_DivideByZero_Raise_if(Abs(Right) <= RealEpsilon(), "");
- math_Vector temp = Multiplied(1./Right);
+math_Vector math_Vector::Divided (const Standard_Real theRight) const
+{
+ Standard_DivideByZero_Raise_if(Abs(theRight) <= RealEpsilon(), "");
+ math_Vector temp = Multiplied(1./theRight);
return temp;
}
+void math_Vector::Add(const math_Vector& theRight)
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), "");
-void math_Vector::Add(const math_Vector& Right) {
-
- Standard_DimensionError_Raise_if(Length() != Right.Length(), "");
-
- Standard_Integer I = Right.LowerIndex;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Array(Index) = Array(Index) + Right.Array(I);
+ Standard_Integer I = theRight.LowerIndex;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Array(Index) = Array(Index) + theRight.Array(I);
I++;
}
-}
-
-math_Vector math_Vector::Added(const math_Vector& Right) const{
+}
- Standard_DimensionError_Raise_if(Length() != Right.Length(), "");
+math_Vector math_Vector::Added(const math_Vector& theRight) const
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), "");
math_Vector Result(LowerIndex, UpperIndex);
-
- Standard_Integer I = Right.LowerIndex;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Result.Array(Index) = Array(Index) + Right.Array(I);
+
+ Standard_Integer I = theRight.LowerIndex;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) + theRight.Array(I);
I++;
}
return Result;
-}
-
-
-
-void math_Vector::Subtract(const math_Vector& Right) {
+}
- Standard_DimensionError_Raise_if(Length() != Right.Length(), "");
+void math_Vector::Subtract(const math_Vector& theRight)
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), "");
- Standard_Integer I = Right.LowerIndex;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Array(Index) = Array(Index) - Right.Array(I);
+ Standard_Integer I = theRight.LowerIndex;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Array(Index) = Array(Index) - theRight.Array(I);
I++;
}
-}
-
+}
-math_Vector math_Vector::Subtracted (const math_Vector& Right) const {
+math_Vector math_Vector::Subtracted (const math_Vector& theRight) const
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), "");
- Standard_DimensionError_Raise_if(Length() != Right.Length(), "");
-
math_Vector Result(LowerIndex, UpperIndex);
-
- Standard_Integer I = Right.LowerIndex;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Result.Array(Index) = Array(Index) - Right.Array(I);
+
+ Standard_Integer I = theRight.LowerIndex;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Result.Array(Index) = Array(Index) - theRight.Array(I);
I++;
}
return Result;
-}
-
+}
-math_Vector math_Vector::Slice(const Standard_Integer I1,
- const Standard_Integer I2) const
+math_Vector math_Vector::Slice(const Standard_Integer theI1, const Standard_Integer theI2) const
{
-
- Standard_RangeError_Raise_if((I1 < LowerIndex) ||
- (I1 > UpperIndex) ||
- (I2 < LowerIndex) ||
- (I2 > UpperIndex) , "");
-
+ Standard_RangeError_Raise_if((theI1 < LowerIndex) || (theI1 > UpperIndex) || (theI2 < LowerIndex) || (theI2 > UpperIndex) , "");
- if(I2 >= I1) {
- math_Vector Result(I1, I2);
- for(Standard_Integer Index = I1; Index <= I2; Index++) {
+ if(theI2 >= theI1)
+ {
+ math_Vector Result(theI1, theI2);
+ for(Standard_Integer Index = theI1; Index <= theI2; Index++)
+ {
Result.Array(Index) = Array(Index);
- }
- return Result;
+ }
+ return Result;
}
- else {
- math_Vector Result(I2, I1);
- for(Standard_Integer Index = I1; Index >= I2; Index--) {
+ else
+ {
+ math_Vector Result(theI2, theI1);
+ for(Standard_Integer Index = theI1; Index >= theI2; Index--)
+ {
Result.Array(Index) = Array(Index);
}
return Result;
- }
+ }
}
+void math_Vector::Add (const math_Vector& theLeft, const math_Vector& theRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theRight.Length()) || (theRight.Length() != theLeft.Length()), "");
-void math_Vector::Add (const math_Vector& Left, const math_Vector& Right) {
-
- Standard_DimensionError_Raise_if((Length() != Right.Length()) ||
- (Right.Length() != Left.Length()), "");
-
-
- Standard_Integer I = Left.LowerIndex;
- Standard_Integer J = Right.LowerIndex;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Array(Index) = Left.Array(I) + Right.Array(J);
+ Standard_Integer I = theLeft.LowerIndex;
+ Standard_Integer J = theRight.LowerIndex;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Array(Index) = theLeft.Array(I) + theRight.Array(J);
I++;
J++;
}
-}
-
-void math_Vector::Subtract (const math_Vector& Left,
- const math_Vector& Right) {
-
- Standard_DimensionError_Raise_if((Length() != Right.Length()) ||
- (Right.Length() != Left.Length()), "");
-
- Standard_Integer I = Left.LowerIndex;
- Standard_Integer J = Right.LowerIndex;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Array(Index) = Left.Array(I) - Right.Array(J);
+}
+
+void math_Vector::Subtract (const math_Vector& theLeft, const math_Vector& theRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theRight.Length()) || (theRight.Length() != theLeft.Length()), "");
+
+ Standard_Integer I = theLeft.LowerIndex;
+ Standard_Integer J = theRight.LowerIndex;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Array(Index) = theLeft.Array(I) - theRight.Array(J);
I++;
J++;
}
-}
-
-void math_Vector::Multiply(const math_Matrix& Left,
- const math_Vector& Right) {
+}
- Standard_DimensionError_Raise_if((Length() != Left.RowNumber()) ||
- (Left.ColNumber() != Right.Length()),
- "");
+void math_Vector::Multiply(const math_Matrix& theLeft, const math_Vector& theRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theLeft.RowNumber()) ||
+ (theLeft.ColNumber() != theRight.Length()), "");
Standard_Integer Index = LowerIndex;
- for(Standard_Integer I = Left.LowerRowIndex; I <= Left.UpperRowIndex; I++) {
+ for(Standard_Integer I = theLeft.LowerRowIndex; I <= theLeft.UpperRowIndex; I++)
+ {
Array(Index) = 0.0;
- Standard_Integer K = Right.LowerIndex;
- for(Standard_Integer J = Left.LowerColIndex; J <= Left.UpperColIndex; J++) {
- Array(Index) = Array(Index) + Left.Array(I, J) * Right.Array(K);
+ Standard_Integer K = theRight.LowerIndex;
+ for(Standard_Integer J = theLeft.LowerColIndex; J <= theLeft.UpperColIndex; J++)
+ {
+ Array(Index) = Array(Index) + theLeft.Array(I, J) * theRight.Array(K);
K++;
}
Index++;
}
-}
-
-void math_Vector::Multiply(const math_Vector& Left,
- const math_Matrix& Right) {
+}
- Standard_DimensionError_Raise_if((Length() != Right.ColNumber()) ||
- (Left.Length() != Right.RowNumber()),
- "");
+void math_Vector::Multiply(const math_Vector& theLeft, const math_Matrix& theRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theRight.ColNumber()) ||
+ (theLeft.Length() != theRight.RowNumber()), "");
Standard_Integer Index = LowerIndex;
- for(Standard_Integer J = Right.LowerColIndex; J <= Right.UpperColIndex; J++) {
+ for(Standard_Integer J = theRight.LowerColIndex; J <= theRight.UpperColIndex; J++)
+ {
Array(Index) = 0.0;
- Standard_Integer K = Left.LowerIndex;
- for(Standard_Integer I = Right.LowerRowIndex; I <= Right.UpperRowIndex; I++) {
- Array(Index) = Array(Index) + Left.Array(K) * Right.Array(I, J);
+ Standard_Integer K = theLeft.LowerIndex;
+ for(Standard_Integer I = theRight.LowerRowIndex; I <= theRight.UpperRowIndex; I++)
+ {
+ Array(Index) = Array(Index) + theLeft.Array(K) * theRight.Array(I, J);
K++;
}
Index++;
}
-}
-
-void math_Vector::TMultiply(const math_Matrix& TLeft,
- const math_Vector& Right) {
+}
- Standard_DimensionError_Raise_if((Length() != TLeft.ColNumber()) ||
- (TLeft.RowNumber() != Right.Length()),
- "");
+void math_Vector::TMultiply(const math_Matrix& theTLeft, const math_Vector& theRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theTLeft.ColNumber()) ||
+ (theTLeft.RowNumber() != theRight.Length()), "");
Standard_Integer Index = LowerIndex;
- for(Standard_Integer I = TLeft.LowerColIndex; I <= TLeft.UpperColIndex; I++) {
+ for(Standard_Integer I = theTLeft.LowerColIndex; I <= theTLeft.UpperColIndex; I++)
+ {
Array(Index) = 0.0;
- Standard_Integer K = Right.LowerIndex;
- for(Standard_Integer J = TLeft.LowerRowIndex; J <= TLeft.UpperRowIndex; J++) {
- Array(Index) = Array(Index) + TLeft.Array(J, I) * Right.Array(K);
+ Standard_Integer K = theRight.LowerIndex;
+ for(Standard_Integer J = theTLeft.LowerRowIndex; J <= theTLeft.UpperRowIndex; J++)
+ {
+ Array(Index) = Array(Index) + theTLeft.Array(J, I) * theRight.Array(K);
K++;
}
Index++;
}
-}
-
-void math_Vector::TMultiply(const math_Vector& Left,
- const math_Matrix& TRight) {
+}
- Standard_DimensionError_Raise_if((Length() != TRight.RowNumber()) ||
- (Left.Length() != TRight.ColNumber()),
- "");
+void math_Vector::TMultiply(const math_Vector& theLeft, const math_Matrix& theTRight)
+{
+ Standard_DimensionError_Raise_if((Length() != theTRight.RowNumber()) ||
+ (theLeft.Length() != theTRight.ColNumber()), "");
Standard_Integer Index = LowerIndex;
- for(Standard_Integer J = TRight.LowerRowIndex; J <= TRight.UpperRowIndex; J++) {
+ for(Standard_Integer J = theTRight.LowerRowIndex; J <= theTRight.UpperRowIndex; J++)
+ {
Array(Index) = 0.0;
- Standard_Integer K = Left.LowerIndex;
- for(Standard_Integer I = TRight.LowerColIndex;
- I <= TRight.UpperColIndex; I++) {
- Array(Index) = Array(Index) + Left.Array(K) * TRight.Array(J, I);
- K++;
+ Standard_Integer K = theLeft.LowerIndex;
+ for(Standard_Integer I = theTRight.LowerColIndex;
+ I <= theTRight.UpperColIndex; I++)
+ {
+ Array(Index) = Array(Index) + theLeft.Array(K) * theTRight.Array(J, I);
+ K++;
}
Index++;
}
-}
-
-
-
+}
-Standard_Real math_Vector::Multiplied(const math_Vector& Right) const{
+Standard_Real math_Vector::Multiplied(const math_Vector& theRight) const
+{
Standard_Real Result = 0;
- Standard_DimensionError_Raise_if(Length() != Right.Length(), "");
+ Standard_DimensionError_Raise_if(Length() != theRight.Length(), "");
- Standard_Integer I = Right.LowerIndex;
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
- Result = Result + Array(Index) * Right.Array(I);
+ Standard_Integer I = theRight.LowerIndex;
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ Result = Result + Array(Index) * theRight.Array(I);
I++;
}
return Result;
-}
+}
-math_Vector math_Vector::Opposite() {
+math_Vector math_Vector::Opposite()
+{
math_Vector Result(LowerIndex, UpperIndex);
- for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++) {
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
Result.Array(Index) = - Array(Index);
}
return Result;
-}
-
-math_Vector math_Vector::Multiplied(const math_Matrix& Right)const {
- Standard_DimensionError_Raise_if(Length() != Right.RowNumber(), "");
-
- math_Vector Result(Right.LowerColIndex, Right.UpperColIndex);
- for(Standard_Integer J2 = Right.LowerColIndex;
- J2 <= Right.UpperColIndex; J2++) {
- Array(J2) = 0.0;
- Standard_Integer I2 = Right.LowerRowIndex;
- for(Standard_Integer I = LowerIndex; I <= UpperIndex; I++) {
- Result.Array(J2) = Result.Array(J2) + Array(I) *
- Right.Array(I2, J2);
- I2++;
- }
+}
+
+math_Vector math_Vector::Multiplied(const math_Matrix& theRight)const
+{
+ Standard_DimensionError_Raise_if(Length() != theRight.RowNumber(), "");
+
+ math_Vector Result(theRight.LowerColIndex, theRight.UpperColIndex);
+ for(Standard_Integer J2 = theRight.LowerColIndex; J2 <= theRight.UpperColIndex; J2++)
+ {
+ Array(J2) = 0.0;
+ Standard_Integer theI2 = theRight.LowerRowIndex;
+ for(Standard_Integer I = LowerIndex; I <= UpperIndex; I++)
+ {
+ Result.Array(J2) = Result.Array(J2) + Array(I) * theRight.Array(theI2, J2);
+ theI2++;
+ }
}
return Result;
-}
-
+}
-void math_Vector::Multiply(const Standard_Real Left,
- const math_Vector& Right)
+void math_Vector::Multiply(const Standard_Real theLeft, const math_Vector& theRight)
{
- Standard_DimensionError_Raise_if((Length() != Right.Length()),
- "");
- for(Standard_Integer I = LowerIndex; I <= UpperIndex; I++) {
- Array(I) = Left * Right.Array(I);
+ Standard_DimensionError_Raise_if((Length() != theRight.Length()), "");
+ for(Standard_Integer I = LowerIndex; I <= UpperIndex; I++)
+ {
+ Array(I) = theLeft * theRight.Array(I);
}
}
+math_Vector& math_Vector::Initialized(const math_Vector& theOther)
+{
+ Standard_DimensionError_Raise_if(Length() != theOther.Length(), "");
-math_Vector& math_Vector::Initialized(const math_Vector& Other) {
-
- Standard_DimensionError_Raise_if(Length() != Other.Length(), "");
-
- (Other.Array).Copy(Array);
+ (theOther.Array).Copy(Array);
return *this;
}
-
-
-void math_Vector::Dump(Standard_OStream& o) const
+void math_Vector::Dump(Standard_OStream& theO) const
{
- o << "math_Vector of Length = " << Length() << "\n";
- for(Standard_Integer Index = LowerIndex;
- Index <= UpperIndex; Index++) {
- o << "math_Vector(" << Index << ") = " << Array(Index) << "\n";
+ theO << "math_Vector of Length = " << Length() << "\n";
+ for(Standard_Integer Index = LowerIndex; Index <= UpperIndex; Index++)
+ {
+ theO << "math_Vector(" << Index << ") = " << Array(Index) << "\n";
}
}
+
--- /dev/null
+// Copyright (c) 1997-1999 Matra Datavision
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _math_Vector_HeaderFile
+#define _math_Vector_HeaderFile
+
+#include <math_SingleTab.hxx>
+
+class Standard_DimensionError;
+class Standard_DivideByZero;
+class Standard_RangeError;
+class Standard_NullValue;
+class math_Matrix;
+
+//! This class implements the real vector abstract data type.
+//! Vectors can have an arbitrary range which must be defined at
+//! the declaration and cannot be changed after this declaration.
+//! @code
+//! math_Vector V1(-3, 5); // a vector with range [-3..5]
+//! @endcode
+//!
+//! Vector are copied through assignement :
+//! @code
+//! math_Vector V2( 1, 9);
+//! ....
+//! V2 = V1;
+//! V1(1) = 2.0; // the vector V2 will not be modified.
+//! @endcode
+//!
+//! The Exception RangeError is raised when trying to access outside
+//! the range of a vector :
+//! @code
+//! V1(11) = 0.0 // --> will raise RangeError;
+//! @endcode
+//!
+//! The Exception DimensionError is raised when the dimensions of two
+//! vectors are not compatible :
+//! @code
+//! math_Vector V3(1, 2);
+//! V3 = V1; // --> will raise DimensionError;
+//! V1.Add(V3) // --> will raise DimensionError;
+//! @endcode
+class math_Vector
+{
+public:
+
+ DEFINE_STANDARD_ALLOC
+
+ //! Contructs a non-initialized vector in the range [theLower..theUpper]
+ //! "theLower" and "theUpper" are the indexes of the lower and upper bounds of the constructed vector.
+ Standard_EXPORT math_Vector(const Standard_Integer theLower, const Standard_Integer theUpper);
+
+ //! Contructs a vector in the range [theLower..theUpper]
+ //! whose values are all initialized with the value "theInitialValue"
+ Standard_EXPORT math_Vector(const Standard_Integer theLower, const Standard_Integer theUpper, const Standard_Real theInitialValue);
+
+ //! Constructs a vector in the range [theLower..theUpper]
+ //! with the "c array" theTab.
+ Standard_EXPORT math_Vector(const Standard_Address theTab, const Standard_Integer theLower, const Standard_Integer theUpper);
+
+ //! Initialize all the elements of a vector with "theInitialValue".
+ Standard_EXPORT void Init(const Standard_Real theInitialValue);
+
+ //! Constructs a copy for initialization.
+ //! An exception is raised if the lengths of the vectors are different.
+ Standard_EXPORT math_Vector(const math_Vector& theOther);
+
+ //! Returns the length of a vector
+ inline Standard_Integer Length() const
+ {
+ return UpperIndex - LowerIndex +1;
+ }
+
+ //! Returns the value of the theLower index of a vector.
+ inline Standard_Integer Lower() const
+ {
+ return LowerIndex;
+ }
+
+ //! Returns the value of the theUpper index of a vector.
+ inline Standard_Integer Upper() const
+ {
+ return UpperIndex;
+ }
+
+ //! Returns the value or the square of the norm of this vector.
+ Standard_EXPORT Standard_Real Norm() const;
+
+ //! Returns the value of the square of the norm of a vector.
+ Standard_EXPORT Standard_Real Norm2() const;
+
+ //! Returns the value of the "Index" of the maximum element of a vector.
+ Standard_EXPORT Standard_Integer Max() const;
+
+ //! Returns the value of the "Index" of the minimum element of a vector.
+ Standard_EXPORT Standard_Integer Min() const;
+
+ //! Normalizes this vector (the norm of the result
+ //! is equal to 1.0) and assigns the result to this vector
+ //! Exceptions
+ //! Standard_NullValue if this vector is null (i.e. if its norm is
+ //! less than or equal to Standard_Real::RealEpsilon().
+ Standard_EXPORT void Normalize();
+
+ //! Normalizes this vector (the norm of the result
+ //! is equal to 1.0) and creates a new vector
+ //! Exceptions
+ //! Standard_NullValue if this vector is null (i.e. if its norm is
+ //! less than or equal to Standard_Real::RealEpsilon().
+ Standard_EXPORT math_Vector Normalized() const;
+
+ //! Inverts this vector and assigns the result to this vector.
+ Standard_EXPORT void Invert();
+
+ //! Inverts this vector and creates a new vector.
+ Standard_EXPORT math_Vector Inverse() const;
+
+ //! sets a vector from "theI1" to "theI2" to the vector "theV";
+ //! An exception is raised if "theI1" is less than "LowerIndex" or "theI2" is greater than "UpperIndex" or "theI1" is greater than "theI2".
+ //! An exception is raised if "theI2-theI1+1" is different from the "Length" of "theV".
+ Standard_EXPORT void Set(const Standard_Integer theI1, const Standard_Integer theI2, const math_Vector& theV);
+
+ //!Creates a new vector by inverting the values of this vector
+ //! between indexes "theI1" and "theI2".
+ //! If the values of this vector were (1., 2., 3., 4.,5., 6.),
+ //! by slicing it between indexes 2 and 5 the values
+ //! of the resulting vector are (1., 5., 4., 3., 2., 6.)
+ Standard_EXPORT math_Vector Slice(const Standard_Integer theI1, const Standard_Integer theI2) const;
+
+ //! returns the product of a vector and a real value.
+ Standard_EXPORT void Multiply(const Standard_Real theRight);
+
+ void operator *=(const Standard_Real theRight)
+ {
+ Multiply(theRight);
+ }
+
+ //! returns the product of a vector and a real value.
+ Standard_EXPORT math_Vector Multiplied(const Standard_Real theRight) const;
+
+ math_Vector operator*(const Standard_Real theRight) const
+ {
+ return Multiplied(theRight);
+ }
+
+ //! returns the product of a vector and a real value.
+ Standard_EXPORT math_Vector TMultiplied(const Standard_Real theRight) const;
+
+ friend inline math_Vector operator* (const Standard_Real theLeft, const math_Vector& theRight)
+ {
+ return theRight.Multiplied(theLeft);
+ }
+
+ //! divides a vector by the value "theRight".
+ //! An exception is raised if "theRight" = 0.
+ Standard_EXPORT void Divide(const Standard_Real theRight);
+
+ void operator /=(const Standard_Real theRight)
+ {
+ Divide(theRight);
+ }
+
+ //! divides a vector by the value "theRight".
+ //! An exception is raised if "theRight" = 0.
+ Standard_EXPORT math_Vector Divided(const Standard_Real theRight) const;
+
+ math_Vector operator/(const Standard_Real theRight) const
+ {
+ return Divided(theRight);
+ }
+
+ //! adds the vector "theRight" to a vector.
+ //! An exception is raised if the vectors have not the same length.
+ //! Warning
+ //! In order to avoid time-consuming copying of vectors, it
+ //! is preferable to use operator += or the function Add whenever possible.
+ Standard_EXPORT void Add(const math_Vector& theRight);
+
+ void operator +=(const math_Vector& theRight)
+ {
+ Add(theRight);
+ }
+
+ //! adds the vector theRight to a vector.
+ //! An exception is raised if the vectors have not the same length.
+ //! An exception is raised if the lengths are not equal.
+ Standard_EXPORT math_Vector Added(const math_Vector& theRight) const;
+
+ math_Vector operator+(const math_Vector& theRight) const
+ {
+ return Added(theRight);
+ }
+
+ //! sets a vector to the product of the vector "theLeft"
+ //! with the matrix "theRight".
+ Standard_EXPORT void Multiply(const math_Vector& theLeft, const math_Matrix& theRight);
+
+ //!sets a vector to the product of the matrix "theLeft"
+ //! with the vector "theRight".
+ Standard_EXPORT void Multiply(const math_Matrix& theLeft, const math_Vector& theRight);
+
+ //! sets a vector to the product of the transpose
+ //! of the matrix "theTLeft" by the vector "theRight".
+ Standard_EXPORT void TMultiply(const math_Matrix& theTLeft, const math_Vector& theRight);
+
+ //! sets a vector to the product of the vector
+ //! "theLeft" by the transpose of the matrix "theTRight".
+ Standard_EXPORT void TMultiply(const math_Vector& theLeft, const math_Matrix& theTRight);
+
+ //! sets a vector to the sum of the vector "theLeft"
+ //! and the vector "theRight".
+ //! An exception is raised if the lengths are different.
+ Standard_EXPORT void Add(const math_Vector& theLeft, const math_Vector& theRight);
+
+ //! sets a vector to the Subtraction of the
+ //! vector theRight from the vector theLeft.
+ //! An exception is raised if the vectors have not the same length.
+ //! Warning
+ //! In order to avoid time-consuming copying of vectors, it
+ //! is preferable to use operator -= or the function
+ //! Subtract whenever possible.
+ Standard_EXPORT void Subtract(const math_Vector& theLeft,const math_Vector& theRight);
+
+ //! accesses (in read or write mode) the value of index "theNum" of a vector.
+ inline Standard_Real& Value(const Standard_Integer theNum) const
+ {
+ Standard_RangeError_Raise_if(theNum < LowerIndex || theNum > UpperIndex, " ");
+ return Array(theNum);
+ }
+
+ Standard_Real& operator()(const Standard_Integer theNum) const
+ {
+ return Value(theNum);
+ }
+
+ //! Initialises a vector by copying "theOther".
+ //! An exception is raised if the Lengths are differents.
+ Standard_EXPORT math_Vector& Initialized(const math_Vector& theOther);
+
+ math_Vector& operator=(const math_Vector& theOther)
+ {
+ return Initialized(theOther);
+ }
+
+ //! returns the inner product of 2 vectors.
+ //! An exception is raised if the lengths are not equal.
+ Standard_EXPORT Standard_Real Multiplied(const math_Vector& theRight) const;
+ Standard_Real operator*(const math_Vector& theRight) const
+ {
+ return Multiplied(theRight);
+ }
+
+ //! returns the product of a vector by a matrix.
+ Standard_EXPORT math_Vector Multiplied(const math_Matrix& theRight) const;
+
+ math_Vector operator*(const math_Matrix& theRight) const
+ {
+ return Multiplied(theRight);
+ }
+
+ //! returns the opposite of a vector.
+ Standard_EXPORT math_Vector Opposite();
+
+ math_Vector operator-()
+ {
+ return Opposite();
+ }
+
+ //! returns the subtraction of "theRight" from "me".
+ //! An exception is raised if the vectors have not the same length.
+ Standard_EXPORT void Subtract(const math_Vector& theRight);
+
+ void operator-=(const math_Vector& theRight)
+ {
+ Subtract(theRight);
+ }
+
+ //! returns the subtraction of "theRight" from "me".
+ //! An exception is raised if the vectors have not the same length.
+ Standard_EXPORT math_Vector Subtracted(const math_Vector& theRight) const;
+
+ math_Vector operator-(const math_Vector& theRight) const
+ {
+ return Subtracted(theRight);
+ }
+
+ //! returns the multiplication of a real by a vector.
+ //! "me" = "theLeft" * "theRight"
+ Standard_EXPORT void Multiply(const Standard_Real theLeft,const math_Vector& theRight);
+
+ //! Prints information on the current state of the object.
+ //! Is used to redefine the operator <<.
+ Standard_EXPORT void Dump(Standard_OStream& theO) const;
+
+ friend inline Standard_OStream& operator<<(Standard_OStream& theO, const math_Vector& theVec)
+ {
+ theVec.Dump(theO);
+ return theO;
+ }
+
+ friend class math_Matrix;
+
+protected:
+
+ //! Is used internally to set the "theLower" value of the vector.
+ void SetLower(const Standard_Integer theLower);
+
+private:
+
+ Standard_Integer LowerIndex;
+ Standard_Integer UpperIndex;
+ math_SingleTab<Standard_Real> Array;
+};
+
+#endif